bpo-44911: Fixed IsolatedAsyncioTestCase from throwing an exception on leaked tasks (GH-27765)

(cherry picked from commit 2cb1a6806c)

Co-authored-by: Bar Harel <bar.harel@biocatch.com>
This commit is contained in:
Miss Islington (bot) 2021-08-16 02:54:58 -07:00 committed by GitHub
parent 1960409a6d
commit 8516ca500e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 22 additions and 1 deletions

View file

@ -216,6 +216,26 @@ class TestAsyncCase(unittest.TestCase):
output = test.run()
self.assertFalse(output.wasSuccessful())
def test_cancellation_hanging_tasks(self):
cancelled = False
class Test(unittest.IsolatedAsyncioTestCase):
async def test_leaking_task(self):
async def coro():
nonlocal cancelled
try:
await asyncio.sleep(1)
except asyncio.CancelledError:
cancelled = True
raise
# Leave this running in the background
asyncio.create_task(coro())
test = Test("test_leaking_task")
output = test.run()
self.assertTrue(cancelled)
if __name__ == "__main__":