diff options
Diffstat (limited to 'Lib/test/test_asyncio/test_queues.py')
-rw-r--r-- | Lib/test/test_asyncio/test_queues.py | 166 |
1 files changed, 81 insertions, 85 deletions
diff --git a/Lib/test/test_asyncio/test_queues.py b/Lib/test/test_asyncio/test_queues.py index 8af4ee7..a06ed50 100644 --- a/Lib/test/test_asyncio/test_queues.py +++ b/Lib/test/test_asyncio/test_queues.py @@ -3,11 +3,7 @@ import unittest import unittest.mock -from asyncio import events -from asyncio import futures -from asyncio import locks -from asyncio import queues -from asyncio import tasks +import asyncio from asyncio import test_utils @@ -15,7 +11,7 @@ class _QueueTestBase(unittest.TestCase): def setUp(self): self.loop = test_utils.TestLoop() - events.set_event_loop(None) + asyncio.set_event_loop(None) def tearDown(self): self.loop.close() @@ -39,57 +35,57 @@ class QueueBasicTests(_QueueTestBase): loop = test_utils.TestLoop(gen) self.addCleanup(loop.close) - q = queues.Queue(loop=loop) + q = asyncio.Queue(loop=loop) self.assertTrue(fn(q).startswith('<Queue'), fn(q)) id_is_present = hex(id(q)) in fn(q) self.assertEqual(expect_id, id_is_present) - @tasks.coroutine + @asyncio.coroutine def add_getter(): - q = queues.Queue(loop=loop) + q = asyncio.Queue(loop=loop) # Start a task that waits to get. - tasks.Task(q.get(), loop=loop) + asyncio.Task(q.get(), loop=loop) # Let it start waiting. - yield from tasks.sleep(0.1, loop=loop) + yield from asyncio.sleep(0.1, loop=loop) self.assertTrue('_getters[1]' in fn(q)) # resume q.get coroutine to finish generator q.put_nowait(0) loop.run_until_complete(add_getter()) - @tasks.coroutine + @asyncio.coroutine def add_putter(): - q = queues.Queue(maxsize=1, loop=loop) + q = asyncio.Queue(maxsize=1, loop=loop) q.put_nowait(1) # Start a task that waits to put. - tasks.Task(q.put(2), loop=loop) + asyncio.Task(q.put(2), loop=loop) # Let it start waiting. - yield from tasks.sleep(0.1, loop=loop) + yield from asyncio.sleep(0.1, loop=loop) self.assertTrue('_putters[1]' in fn(q)) # resume q.put coroutine to finish generator q.get_nowait() loop.run_until_complete(add_putter()) - q = queues.Queue(loop=loop) + q = asyncio.Queue(loop=loop) q.put_nowait(1) self.assertTrue('_queue=[1]' in fn(q)) def test_ctor_loop(self): loop = unittest.mock.Mock() - q = queues.Queue(loop=loop) + q = asyncio.Queue(loop=loop) self.assertIs(q._loop, loop) - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) self.assertIs(q._loop, self.loop) def test_ctor_noloop(self): try: - events.set_event_loop(self.loop) - q = queues.Queue() + asyncio.set_event_loop(self.loop) + q = asyncio.Queue() self.assertIs(q._loop, self.loop) finally: - events.set_event_loop(None) + asyncio.set_event_loop(None) def test_repr(self): self._test_repr_or_str(repr, True) @@ -98,7 +94,7 @@ class QueueBasicTests(_QueueTestBase): self._test_repr_or_str(str, False) def test_empty(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) self.assertTrue(q.empty()) q.put_nowait(1) self.assertFalse(q.empty()) @@ -106,15 +102,15 @@ class QueueBasicTests(_QueueTestBase): self.assertTrue(q.empty()) def test_full(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) self.assertFalse(q.full()) - q = queues.Queue(maxsize=1, loop=self.loop) + q = asyncio.Queue(maxsize=1, loop=self.loop) q.put_nowait(1) self.assertTrue(q.full()) def test_order(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) for i in [1, 3, 2]: q.put_nowait(i) @@ -133,28 +129,28 @@ class QueueBasicTests(_QueueTestBase): loop = test_utils.TestLoop(gen) self.addCleanup(loop.close) - q = queues.Queue(maxsize=2, loop=loop) + q = asyncio.Queue(maxsize=2, loop=loop) self.assertEqual(2, q.maxsize) have_been_put = [] - @tasks.coroutine + @asyncio.coroutine def putter(): for i in range(3): yield from q.put(i) have_been_put.append(i) return True - @tasks.coroutine + @asyncio.coroutine def test(): - t = tasks.Task(putter(), loop=loop) - yield from tasks.sleep(0.01, loop=loop) + t = asyncio.Task(putter(), loop=loop) + yield from asyncio.sleep(0.01, loop=loop) # The putter is blocked after putting two items. self.assertEqual([0, 1], have_been_put) self.assertEqual(0, q.get_nowait()) # Let the putter resume and put last item. - yield from tasks.sleep(0.01, loop=loop) + yield from asyncio.sleep(0.01, loop=loop) self.assertEqual([0, 1, 2], have_been_put) self.assertEqual(1, q.get_nowait()) self.assertEqual(2, q.get_nowait()) @@ -169,10 +165,10 @@ class QueueBasicTests(_QueueTestBase): class QueueGetTests(_QueueTestBase): def test_blocking_get(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) q.put_nowait(1) - @tasks.coroutine + @asyncio.coroutine def queue_get(): return (yield from q.get()) @@ -180,10 +176,10 @@ class QueueGetTests(_QueueTestBase): self.assertEqual(1, res) def test_get_with_putters(self): - q = queues.Queue(1, loop=self.loop) + q = asyncio.Queue(1, loop=self.loop) q.put_nowait(1) - waiter = futures.Future(loop=self.loop) + waiter = asyncio.Future(loop=self.loop) q._putters.append((2, waiter)) res = self.loop.run_until_complete(q.get()) @@ -201,11 +197,11 @@ class QueueGetTests(_QueueTestBase): loop = test_utils.TestLoop(gen) self.addCleanup(loop.close) - q = queues.Queue(loop=loop) - started = locks.Event(loop=loop) + q = asyncio.Queue(loop=loop) + started = asyncio.Event(loop=loop) finished = False - @tasks.coroutine + @asyncio.coroutine def queue_get(): nonlocal finished started.set() @@ -213,10 +209,10 @@ class QueueGetTests(_QueueTestBase): finished = True return res - @tasks.coroutine + @asyncio.coroutine def queue_put(): loop.call_later(0.01, q.put_nowait, 1) - queue_get_task = tasks.Task(queue_get(), loop=loop) + queue_get_task = asyncio.Task(queue_get(), loop=loop) yield from started.wait() self.assertFalse(finished) res = yield from queue_get_task @@ -228,13 +224,13 @@ class QueueGetTests(_QueueTestBase): self.assertAlmostEqual(0.01, loop.time()) def test_nonblocking_get(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) q.put_nowait(1) self.assertEqual(1, q.get_nowait()) def test_nonblocking_get_exception(self): - q = queues.Queue(loop=self.loop) - self.assertRaises(queues.Empty, q.get_nowait) + q = asyncio.Queue(loop=self.loop) + self.assertRaises(asyncio.Empty, q.get_nowait) def test_get_cancelled(self): @@ -248,16 +244,16 @@ class QueueGetTests(_QueueTestBase): loop = test_utils.TestLoop(gen) self.addCleanup(loop.close) - q = queues.Queue(loop=loop) + q = asyncio.Queue(loop=loop) - @tasks.coroutine + @asyncio.coroutine def queue_get(): - return (yield from tasks.wait_for(q.get(), 0.051, loop=loop)) + return (yield from asyncio.wait_for(q.get(), 0.051, loop=loop)) - @tasks.coroutine + @asyncio.coroutine def test(): - get_task = tasks.Task(queue_get(), loop=loop) - yield from tasks.sleep(0.01, loop=loop) # let the task start + get_task = asyncio.Task(queue_get(), loop=loop) + yield from asyncio.sleep(0.01, loop=loop) # let the task start q.put_nowait(1) return (yield from get_task) @@ -265,10 +261,10 @@ class QueueGetTests(_QueueTestBase): self.assertAlmostEqual(0.06, loop.time()) def test_get_cancelled_race(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) - t1 = tasks.Task(q.get(), loop=self.loop) - t2 = tasks.Task(q.get(), loop=self.loop) + t1 = asyncio.Task(q.get(), loop=self.loop) + t2 = asyncio.Task(q.get(), loop=self.loop) test_utils.run_briefly(self.loop) t1.cancel() @@ -279,9 +275,9 @@ class QueueGetTests(_QueueTestBase): self.assertEqual(t2.result(), 'a') def test_get_with_waiting_putters(self): - q = queues.Queue(loop=self.loop, maxsize=1) - tasks.Task(q.put('a'), loop=self.loop) - tasks.Task(q.put('b'), loop=self.loop) + q = asyncio.Queue(loop=self.loop, maxsize=1) + asyncio.Task(q.put('a'), loop=self.loop) + asyncio.Task(q.put('b'), loop=self.loop) test_utils.run_briefly(self.loop) self.assertEqual(self.loop.run_until_complete(q.get()), 'a') self.assertEqual(self.loop.run_until_complete(q.get()), 'b') @@ -290,9 +286,9 @@ class QueueGetTests(_QueueTestBase): class QueuePutTests(_QueueTestBase): def test_blocking_put(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) - @tasks.coroutine + @asyncio.coroutine def queue_put(): # No maxsize, won't block. yield from q.put(1) @@ -309,11 +305,11 @@ class QueuePutTests(_QueueTestBase): loop = test_utils.TestLoop(gen) self.addCleanup(loop.close) - q = queues.Queue(maxsize=1, loop=loop) - started = locks.Event(loop=loop) + q = asyncio.Queue(maxsize=1, loop=loop) + started = asyncio.Event(loop=loop) finished = False - @tasks.coroutine + @asyncio.coroutine def queue_put(): nonlocal finished started.set() @@ -321,10 +317,10 @@ class QueuePutTests(_QueueTestBase): yield from q.put(2) finished = True - @tasks.coroutine + @asyncio.coroutine def queue_get(): loop.call_later(0.01, q.get_nowait) - queue_put_task = tasks.Task(queue_put(), loop=loop) + queue_put_task = asyncio.Task(queue_put(), loop=loop) yield from started.wait() self.assertFalse(finished) yield from queue_put_task @@ -334,38 +330,38 @@ class QueuePutTests(_QueueTestBase): self.assertAlmostEqual(0.01, loop.time()) def test_nonblocking_put(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) q.put_nowait(1) self.assertEqual(1, q.get_nowait()) def test_nonblocking_put_exception(self): - q = queues.Queue(maxsize=1, loop=self.loop) + q = asyncio.Queue(maxsize=1, loop=self.loop) q.put_nowait(1) - self.assertRaises(queues.Full, q.put_nowait, 2) + self.assertRaises(asyncio.Full, q.put_nowait, 2) def test_put_cancelled(self): - q = queues.Queue(loop=self.loop) + q = asyncio.Queue(loop=self.loop) - @tasks.coroutine + @asyncio.coroutine def queue_put(): yield from q.put(1) return True - @tasks.coroutine + @asyncio.coroutine def test(): return (yield from q.get()) - t = tasks.Task(queue_put(), loop=self.loop) + t = asyncio.Task(queue_put(), loop=self.loop) self.assertEqual(1, self.loop.run_until_complete(test())) self.assertTrue(t.done()) self.assertTrue(t.result()) def test_put_cancelled_race(self): - q = queues.Queue(loop=self.loop, maxsize=1) + q = asyncio.Queue(loop=self.loop, maxsize=1) - tasks.Task(q.put('a'), loop=self.loop) - tasks.Task(q.put('c'), loop=self.loop) - t = tasks.Task(q.put('b'), loop=self.loop) + 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) test_utils.run_briefly(self.loop) t.cancel() @@ -375,8 +371,8 @@ class QueuePutTests(_QueueTestBase): self.assertEqual(q.get_nowait(), 'c') def test_put_with_waiting_getters(self): - q = queues.Queue(loop=self.loop) - t = tasks.Task(q.get(), loop=self.loop) + q = asyncio.Queue(loop=self.loop) + t = asyncio.Task(q.get(), loop=self.loop) test_utils.run_briefly(self.loop) self.loop.run_until_complete(q.put('a')) self.assertEqual(self.loop.run_until_complete(t), 'a') @@ -385,7 +381,7 @@ class QueuePutTests(_QueueTestBase): class LifoQueueTests(_QueueTestBase): def test_order(self): - q = queues.LifoQueue(loop=self.loop) + q = asyncio.LifoQueue(loop=self.loop) for i in [1, 3, 2]: q.put_nowait(i) @@ -396,7 +392,7 @@ class LifoQueueTests(_QueueTestBase): class PriorityQueueTests(_QueueTestBase): def test_order(self): - q = queues.PriorityQueue(loop=self.loop) + q = asyncio.PriorityQueue(loop=self.loop) for i in [1, 3, 2]: q.put_nowait(i) @@ -407,11 +403,11 @@ class PriorityQueueTests(_QueueTestBase): class JoinableQueueTests(_QueueTestBase): def test_task_done_underflow(self): - q = queues.JoinableQueue(loop=self.loop) + q = asyncio.JoinableQueue(loop=self.loop) self.assertRaises(ValueError, q.task_done) def test_task_done(self): - q = queues.JoinableQueue(loop=self.loop) + q = asyncio.JoinableQueue(loop=self.loop) for i in range(100): q.put_nowait(i) @@ -421,7 +417,7 @@ class JoinableQueueTests(_QueueTestBase): # Join the queue and assert all items have been processed. running = True - @tasks.coroutine + @asyncio.coroutine def worker(): nonlocal accumulator @@ -430,10 +426,10 @@ class JoinableQueueTests(_QueueTestBase): accumulator += item q.task_done() - @tasks.coroutine + @asyncio.coroutine def test(): for _ in range(2): - tasks.Task(worker(), loop=self.loop) + asyncio.Task(worker(), loop=self.loop) yield from q.join() @@ -446,12 +442,12 @@ class JoinableQueueTests(_QueueTestBase): q.put_nowait(0) def test_join_empty_queue(self): - q = queues.JoinableQueue(loop=self.loop) + q = asyncio.JoinableQueue(loop=self.loop) # Test that a queue join()s successfully, and before anything else # (done twice for insurance). - @tasks.coroutine + @asyncio.coroutine def join(): yield from q.join() yield from q.join() @@ -459,7 +455,7 @@ class JoinableQueueTests(_QueueTestBase): self.loop.run_until_complete(join()) def test_format(self): - q = queues.JoinableQueue(loop=self.loop) + q = asyncio.JoinableQueue(loop=self.loop) self.assertEqual(q._format(), 'maxsize=0') q._unfinished_tasks = 2 |