Skip to content

Commit 1af5bf0

Browse files
committed
Add unit tests for time_limit
1 parent 6441719 commit 1af5bf0

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

tests/test_timed.py

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

0 commit comments

Comments
 (0)