summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_asyncio/test_tasks.py
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-06-17 23:36:32 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-06-17 23:36:32 (GMT)
commitc73701de7292b7de0fee5b7f82a610d7515c18a4 (patch)
tree18db9589cbd8880f4b1ac411bf675de788740e34 /Lib/test/test_asyncio/test_tasks.py
parentd6f02fc649d2e248f2e7b418771371db2b6637a2 (diff)
downloadcpython-c73701de7292b7de0fee5b7f82a610d7515c18a4.zip
cpython-c73701de7292b7de0fee5b7f82a610d7515c18a4.tar.gz
cpython-c73701de7292b7de0fee5b7f82a610d7515c18a4.tar.bz2
asyncio: Refactor tests: add a base TestCase class
Diffstat (limited to 'Lib/test/test_asyncio/test_tasks.py')
-rw-r--r--Lib/test/test_asyncio/test_tasks.py105
1 files changed, 36 insertions, 69 deletions
diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py
index dcc8123..0ed2f94 100644
--- a/Lib/test/test_asyncio/test_tasks.py
+++ b/Lib/test/test_asyncio/test_tasks.py
@@ -30,15 +30,10 @@ class Dummy:
pass
-class TaskTests(unittest.TestCase):
+class TaskTests(test_utils.TestCase):
def setUp(self):
- self.loop = test_utils.TestLoop()
- asyncio.set_event_loop(None)
-
- def tearDown(self):
- self.loop.close()
- gc.collect()
+ self.loop = self.new_test_loop()
def test_task_class(self):
@asyncio.coroutine
@@ -51,6 +46,7 @@ class TaskTests(unittest.TestCase):
self.assertIs(t._loop, self.loop)
loop = asyncio.new_event_loop()
+ self.set_event_loop(loop)
t = asyncio.Task(notmuch(), loop=loop)
self.assertIs(t._loop, loop)
loop.close()
@@ -66,6 +62,7 @@ class TaskTests(unittest.TestCase):
self.assertIs(t._loop, self.loop)
loop = asyncio.new_event_loop()
+ self.set_event_loop(loop)
t = asyncio.async(notmuch(), loop=loop)
self.assertIs(t._loop, loop)
loop.close()
@@ -81,6 +78,7 @@ class TaskTests(unittest.TestCase):
self.assertIs(f, f_orig)
loop = asyncio.new_event_loop()
+ self.set_event_loop(loop)
with self.assertRaises(ValueError):
f = asyncio.async(f_orig, loop=loop)
@@ -102,6 +100,7 @@ class TaskTests(unittest.TestCase):
self.assertIs(t, t_orig)
loop = asyncio.new_event_loop()
+ self.set_event_loop(loop)
with self.assertRaises(ValueError):
t = asyncio.async(t_orig, loop=loop)
@@ -220,8 +219,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(10.0, when)
yield 0
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
@asyncio.coroutine
def task():
@@ -346,7 +344,7 @@ class TaskTests(unittest.TestCase):
def test_cancel_current_task(self):
loop = asyncio.new_event_loop()
- self.addCleanup(loop.close)
+ self.set_event_loop(loop)
@asyncio.coroutine
def task():
@@ -374,8 +372,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.3, when)
yield 0.1
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
x = 0
waiters = []
@@ -410,8 +407,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.1, when)
when = yield 0.1
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
foo_running = None
@@ -436,8 +432,7 @@ class TaskTests(unittest.TestCase):
self.assertEqual(foo_running, False)
def test_wait_for_blocking(self):
- loop = test_utils.TestLoop()
- self.addCleanup(loop.close)
+ loop = self.new_test_loop()
@asyncio.coroutine
def coro():
@@ -457,8 +452,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.01, when)
yield 0.01
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
@asyncio.coroutine
def foo():
@@ -486,8 +480,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.15, when)
yield 0.15
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.Task(asyncio.sleep(0.1, loop=loop), loop=loop)
b = asyncio.Task(asyncio.sleep(0.15, loop=loop), loop=loop)
@@ -517,8 +510,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.015, when)
yield 0.015
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.Task(asyncio.sleep(0.01, loop=loop), loop=loop)
b = asyncio.Task(asyncio.sleep(0.015, loop=loop), loop=loop)
@@ -531,11 +523,8 @@ class TaskTests(unittest.TestCase):
return 42
asyncio.set_event_loop(loop)
- try:
- res = loop.run_until_complete(
- asyncio.Task(foo(), loop=loop))
- finally:
- asyncio.set_event_loop(None)
+ res = loop.run_until_complete(
+ asyncio.Task(foo(), loop=loop))
self.assertEqual(res, 42)
@@ -573,8 +562,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.1, when)
yield 0.1
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.Task(asyncio.sleep(10.0, loop=loop), loop=loop)
b = asyncio.Task(asyncio.sleep(0.1, loop=loop), loop=loop)
@@ -629,8 +617,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(10.0, when)
yield 0
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
# first_exception, task already has exception
a = asyncio.Task(asyncio.sleep(10.0, loop=loop), loop=loop)
@@ -663,8 +650,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.01, when)
yield 0.01
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
# first_exception, exception during waiting
a = asyncio.Task(asyncio.sleep(10.0, loop=loop), loop=loop)
@@ -696,8 +682,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.15, when)
yield 0.15
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.Task(asyncio.sleep(0.1, loop=loop), loop=loop)
@@ -733,8 +718,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.11, when)
yield 0.11
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.Task(asyncio.sleep(0.1, loop=loop), loop=loop)
b = asyncio.Task(asyncio.sleep(0.15, loop=loop), loop=loop)
@@ -764,8 +748,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.1, when)
yield 0.1
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.Task(asyncio.sleep(0.1, loop=loop), loop=loop)
b = asyncio.Task(asyncio.sleep(0.15, loop=loop), loop=loop)
@@ -789,8 +772,7 @@ class TaskTests(unittest.TestCase):
yield 0.01
yield 0
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
completed = set()
time_shifted = False
@@ -833,8 +815,7 @@ class TaskTests(unittest.TestCase):
yield 0
yield 0.1
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.sleep(0.1, 'a', loop=loop)
b = asyncio.sleep(0.15, 'b', loop=loop)
@@ -870,8 +851,7 @@ class TaskTests(unittest.TestCase):
yield 0
yield 0.01
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.sleep(0.01, 'a', loop=loop)
@@ -890,8 +870,7 @@ class TaskTests(unittest.TestCase):
yield 0.05
yield 0
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.sleep(0.05, 'a', loop=loop)
b = asyncio.sleep(0.10, 'b', loop=loop)
@@ -916,8 +895,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.05, when)
yield 0.05
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
a = asyncio.sleep(0.05, 'a', loop=loop)
b = asyncio.sleep(0.05, 'b', loop=loop)
@@ -958,8 +936,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(0.1, when)
yield 0.05
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
@asyncio.coroutine
def sleeper(dt, arg):
@@ -980,8 +957,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(10.0, when)
yield 0
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
t = asyncio.Task(asyncio.sleep(10.0, 'yeah', loop=loop),
loop=loop)
@@ -1012,8 +988,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(5000, when)
yield 0.1
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
@asyncio.coroutine
def sleep(dt):
@@ -1123,8 +1098,7 @@ class TaskTests(unittest.TestCase):
self.assertAlmostEqual(10.0, when)
yield 0
- loop = test_utils.TestLoop(gen)
- self.addCleanup(loop.close)
+ loop = self.new_test_loop(gen)
@asyncio.coroutine
def sleeper():
@@ -1536,12 +1510,9 @@ class TaskTests(unittest.TestCase):
class GatherTestsBase:
def setUp(self):
- self.one_loop = test_utils.TestLoop()
- self.other_loop = test_utils.TestLoop()
-
- def tearDown(self):
- self.one_loop.close()
- self.other_loop.close()
+ self.one_loop = self.new_test_loop()
+ self.other_loop = self.new_test_loop()
+ self.set_event_loop(self.one_loop, cleanup=False)
def _run_loop(self, loop):
while loop._ready:
@@ -1633,7 +1604,7 @@ class GatherTestsBase:
self.assertEqual(stdout.rstrip(), b'False')
-class FutureGatherTests(GatherTestsBase, unittest.TestCase):
+class FutureGatherTests(GatherTestsBase, test_utils.TestCase):
def wrap_futures(self, *futures):
return futures
@@ -1717,16 +1688,12 @@ class FutureGatherTests(GatherTestsBase, unittest.TestCase):
cb.assert_called_once_with(fut)
-class CoroutineGatherTests(GatherTestsBase, unittest.TestCase):
+class CoroutineGatherTests(GatherTestsBase, test_utils.TestCase):
def setUp(self):
super().setUp()
asyncio.set_event_loop(self.one_loop)
- def tearDown(self):
- asyncio.set_event_loop(None)
- super().tearDown()
-
def wrap_futures(self, *futures):
coros = []
for fut in futures: