diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2014-06-25 21:11:21 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2014-06-25 21:11:21 (GMT) |
commit | 87f16f892c4a5e96b9e9db3953b1cfc3db51b8f6 (patch) | |
tree | a49014c71bf8383f565e44116159c5a123125b4a /Lib | |
parent | 36820b6e084658423a038c77d6f61cc44fc7654a (diff) | |
download | cpython-87f16f892c4a5e96b9e9db3953b1cfc3db51b8f6.zip cpython-87f16f892c4a5e96b9e9db3953b1cfc3db51b8f6.tar.gz cpython-87f16f892c4a5e96b9e9db3953b1cfc3db51b8f6.tar.bz2 |
Issue #21163, asyncio: Fix some "Task was destroyed but it is pending!" logs in tests
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/test/test_asyncio/test_locks.py | 1 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_queues.py | 27 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_tasks.py | 10 |
3 files changed, 22 insertions, 16 deletions
diff --git a/Lib/test/test_asyncio/test_locks.py b/Lib/test/test_asyncio/test_locks.py index 9d50a71..8ad1486 100644 --- a/Lib/test/test_asyncio/test_locks.py +++ b/Lib/test/test_asyncio/test_locks.py @@ -783,6 +783,7 @@ class SemaphoreTests(test_utils.TestCase): # cleanup locked semaphore sem.release() + self.loop.run_until_complete(t4) def test_acquire_cancel(self): sem = asyncio.Semaphore(loop=self.loop) diff --git a/Lib/test/test_asyncio/test_queues.py b/Lib/test/test_asyncio/test_queues.py index 32c90f4..3d4ac51 100644 --- a/Lib/test/test_asyncio/test_queues.py +++ b/Lib/test/test_asyncio/test_queues.py @@ -362,16 +362,21 @@ class QueuePutTests(_QueueTestBase): def test_put_cancelled_race(self): q = asyncio.Queue(loop=self.loop, maxsize=1) - asyncio.Task(q.put('a'), loop=self.loop) - asyncio.Task(q.put('c'), loop=self.loop) - t = asyncio.Task(q.put('b'), loop=self.loop) + put_a = asyncio.Task(q.put('a'), loop=self.loop) + put_b = asyncio.Task(q.put('b'), loop=self.loop) + put_c = asyncio.Task(q.put('X'), loop=self.loop) test_utils.run_briefly(self.loop) - t.cancel() + self.assertTrue(put_a.done()) + self.assertFalse(put_b.done()) + + put_c.cancel() test_utils.run_briefly(self.loop) - self.assertTrue(t.done()) + self.assertTrue(put_c.done()) self.assertEqual(q.get_nowait(), 'a') - self.assertEqual(q.get_nowait(), 'c') + self.assertEqual(q.get_nowait(), 'b') + + self.loop.run_until_complete(put_b) def test_put_with_waiting_getters(self): q = asyncio.Queue(loop=self.loop) @@ -431,18 +436,20 @@ class JoinableQueueTests(_QueueTestBase): @asyncio.coroutine def test(): - for _ in range(2): - asyncio.Task(worker(), loop=self.loop) + tasks = [asyncio.Task(worker(), loop=self.loop) + for index in range(2)] yield from q.join() + return tasks - self.loop.run_until_complete(test()) + tasks = self.loop.run_until_complete(test()) self.assertEqual(sum(range(100)), accumulator) # close running generators running = False - for i in range(2): + for i in range(len(tasks)): q.put_nowait(0) + self.loop.run_until_complete(asyncio.wait(tasks, loop=self.loop)) def test_join_empty_queue(self): q = asyncio.JoinableQueue(loop=self.loop) diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py index 7851745..3a23d72 100644 --- a/Lib/test/test_asyncio/test_tasks.py +++ b/Lib/test/test_asyncio/test_tasks.py @@ -1763,16 +1763,14 @@ class CoroutineGatherTests(GatherTestsBase, test_utils.TestCase): gen2 = coro() fut = asyncio.gather(gen1, gen2) self.assertIs(fut._loop, self.one_loop) - gen1.close() - gen2.close() + self.one_loop.run_until_complete(fut) self.set_event_loop(self.other_loop, cleanup=False) gen3 = coro() gen4 = coro() - fut = asyncio.gather(gen3, gen4, loop=self.other_loop) - self.assertIs(fut._loop, self.other_loop) - gen3.close() - gen4.close() + fut2 = asyncio.gather(gen3, gen4, loop=self.other_loop) + self.assertIs(fut2._loop, self.other_loop) + self.other_loop.run_until_complete(fut2) def test_duplicate_coroutines(self): @asyncio.coroutine |