Skip to content

Commit 36f62c5

Browse files
bpo-47038: Rewrite missed asyncio.wait_for test to use IsolatedAnsyncioTestCase (GH-31946) (#31948)
(cherry picked from commit 3dd9bfa) Co-authored-by: Andrew Svetlov <[email protected]> Co-authored-by: Andrew Svetlov <[email protected]>
1 parent 4186dd6 commit 36f62c5

File tree

2 files changed

+24
-26
lines changed

2 files changed

+24
-26
lines changed

Lib/test/test_asyncio/test_tasks.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2292,32 +2292,6 @@ def test_task_source_traceback(self):
22922292
'test_task_source_traceback'))
22932293
self.loop.run_until_complete(task)
22942294

2295-
def _test_cancel_wait_for(self, timeout):
2296-
loop = asyncio.new_event_loop()
2297-
self.addCleanup(loop.close)
2298-
2299-
async def blocking_coroutine():
2300-
fut = self.new_future(loop)
2301-
# Block: fut result is never set
2302-
await fut
2303-
2304-
task = loop.create_task(blocking_coroutine())
2305-
2306-
wait = loop.create_task(asyncio.wait_for(task, timeout))
2307-
loop.call_soon(wait.cancel)
2308-
2309-
self.assertRaises(asyncio.CancelledError,
2310-
loop.run_until_complete, wait)
2311-
2312-
# Python issue #23219: cancelling the wait must also cancel the task
2313-
self.assertTrue(task.cancelled())
2314-
2315-
def test_cancel_blocking_wait_for(self):
2316-
self._test_cancel_wait_for(None)
2317-
2318-
def test_cancel_wait_for(self):
2319-
self._test_cancel_wait_for(60.0)
2320-
23212295
def test_cancel_gather_1(self):
23222296
"""Ensure that a gathering future refuses to be cancelled once all
23232297
children are done"""

Lib/test/test_asyncio/test_waitfor.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,30 @@ async def inner():
264264

265265
self.assertEqual(await inner_task, 42)
266266

267+
async def _test_cancel_wait_for(self, timeout):
268+
loop = asyncio.get_running_loop()
269+
270+
async def blocking_coroutine():
271+
fut = loop.create_future()
272+
# Block: fut result is never set
273+
await fut
274+
275+
task = asyncio.create_task(blocking_coroutine())
276+
277+
wait = asyncio.create_task(asyncio.wait_for(task, timeout))
278+
loop.call_soon(wait.cancel)
279+
280+
with self.assertRaises(asyncio.CancelledError):
281+
await wait
282+
283+
# Python issue #23219: cancelling the wait must also cancel the task
284+
self.assertTrue(task.cancelled())
285+
286+
async def test_cancel_blocking_wait_for(self):
287+
await self._test_cancel_wait_for(None)
288+
289+
async def test_cancel_wait_for(self):
290+
await self._test_cancel_wait_for(60.0)
267291

268292

269293
if __name__ == '__main__':

0 commit comments

Comments
 (0)