blob: e46bd374cf4d02df0ab85f1701bc70022bac32b2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
import math
import time
from unittest import TestCase
from snekbox.utils.timed import time_limit
class TimedTests(TestCase):
def test_sleep(self):
"""Test that a sleep can be interrupted."""
_finished = False
start = time.perf_counter()
with self.assertRaises(TimeoutError):
with time_limit(1):
time.sleep(2)
_finished = True
end = time.perf_counter()
self.assertLess(end - start, 2)
self.assertFalse(_finished)
def test_iter(self):
"""Test that a long-running built-in function can be interrupted."""
_result = 0
start = time.perf_counter()
with self.assertRaises(TimeoutError):
with time_limit(1):
_result = math.factorial(2**30)
end = time.perf_counter()
self.assertEqual(_result, 0)
self.assertLess(end - start, 2)
|