diff --git a/Lib/asyncio/locks.py b/Lib/asyncio/locks.py index f63d4cedbbb..d94daeb5a17 100644 --- a/Lib/asyncio/locks.py +++ b/Lib/asyncio/locks.py @@ -332,7 +332,7 @@ class Condition(_ContextManagerMixin): DeprecationWarning, stacklevel=2) if lock is None: - lock = Lock(loop=self._loop) + lock = Lock(loop=loop) elif lock._loop is not self._loop: raise ValueError("loop argument must agree with lock") diff --git a/Lib/asyncio/queues.py b/Lib/asyncio/queues.py index c96b4a0c1ba..390ae9a6821 100644 --- a/Lib/asyncio/queues.py +++ b/Lib/asyncio/queues.py @@ -45,7 +45,7 @@ class Queue: # Futures. self._putters = collections.deque() self._unfinished_tasks = 0 - self._finished = locks.Event(loop=self._loop) + self._finished = locks.Event(loop=loop) self._finished.set() self._init(maxsize) diff --git a/Lib/test/test_asyncio/test_locks.py b/Lib/test/test_asyncio/test_locks.py index d69b56dcda2..a9953b4b2a2 100644 --- a/Lib/test/test_asyncio/test_locks.py +++ b/Lib/test/test_asyncio/test_locks.py @@ -500,10 +500,9 @@ class ConditionTests(test_utils.TestCase): self.assertIs(cond._loop, self.loop) def test_ctor_noloop(self): - with self.assertWarns(DeprecationWarning): - asyncio.set_event_loop(self.loop) - cond = asyncio.Condition() - self.assertIs(cond._loop, self.loop) + asyncio.set_event_loop(self.loop) + cond = asyncio.Condition() + self.assertIs(cond._loop, self.loop) def test_wait(self): with self.assertWarns(DeprecationWarning): diff --git a/Lib/test/test_asyncio/test_queues.py b/Lib/test/test_asyncio/test_queues.py index 02e8e43ccee..171176c9fc5 100644 --- a/Lib/test/test_asyncio/test_queues.py +++ b/Lib/test/test_asyncio/test_queues.py @@ -83,8 +83,7 @@ class QueueBasicTests(_QueueTestBase): def test_ctor_noloop(self): asyncio.set_event_loop(self.loop) - with self.assertWarns(DeprecationWarning): - q = asyncio.Queue() + q = asyncio.Queue() self.assertIs(q._loop, self.loop) def test_repr(self): diff --git a/Lib/unittest/async_case.py b/Lib/unittest/async_case.py index a3c8bfb9eca..1bc1312c8c2 100644 --- a/Lib/unittest/async_case.py +++ b/Lib/unittest/async_case.py @@ -89,8 +89,9 @@ class IsolatedAsyncioTestCase(TestCase): else: return ret - async def _asyncioLoopRunner(self): - queue = self._asyncioCallsQueue + async def _asyncioLoopRunner(self, fut): + self._asyncioCallsQueue = queue = asyncio.Queue() + fut.set_result(None) while True: query = await queue.get() queue.task_done() @@ -113,8 +114,9 @@ class IsolatedAsyncioTestCase(TestCase): asyncio.set_event_loop(loop) loop.set_debug(True) self._asyncioTestLoop = loop - self._asyncioCallsQueue = asyncio.Queue(loop=loop) - self._asyncioCallsTask = loop.create_task(self._asyncioLoopRunner()) + fut = loop.create_future() + self._asyncioCallsTask = loop.create_task(self._asyncioLoopRunner(fut)) + loop.run_until_complete(fut) def _tearDownAsyncioLoop(self): assert self._asyncioTestLoop is not None