Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
90695c5
Fix taskgroups handling of parent cancellation
gvanrossum Mar 31, 2024
6c4876d
When errors and parent cancellation are both pending, re-cancel parent
gvanrossum Mar 31, 2024
df6e8b7
When uncancel() reaches zero, clear _must_cancel
gvanrossum Mar 31, 2024
c762e36
Remove 'experimental' comment
gvanrossum Apr 1, 2024
4989042
Remove unneeded Py_CLEAR(self->task_cancel_msg)
gvanrossum Apr 4, 2024
3f91f2d
Simple test for preserving cancelling() level
gvanrossum Apr 4, 2024
55ff73f
Add test for nested task groups
gvanrossum Apr 4, 2024
50fd8d6
Add test that is fixed by the re-cancel in __aexit__
gvanrossum Apr 4, 2024
93ba76a
Test that uncancel() sets _must_cancel to False
gvanrossum Apr 4, 2024
f1f89c0
Move a stray asyncio news item into the asyncio section
gvanrossum Apr 4, 2024
48c6dda
Add blurb
gvanrossum Apr 4, 2024
1e20728
Add what's new entry
gvanrossum Apr 4, 2024
bc1522c
Update uncancel docs
gvanrossum Apr 5, 2024
7f6e5ff
Update task group docs
gvanrossum Apr 5, 2024
56251ff
Merge remote-tracking branch 'origin/main' into fix-tg
gvanrossum Apr 5, 2024
c54fb22
Fix markup error
gvanrossum Apr 5, 2024
6d4b3d7
Add attribution to Arthur Tacca issue
gvanrossum Apr 5, 2024
b086609
Wording changes suggested by Carol Willing
gvanrossum Apr 8, 2024
8ac42f6
Changelog/whatsnew updates from Arthur Tacca
gvanrossum Apr 8, 2024
ac87a8e
Attempted doc improvements inspired by Arthur Tacca's feedback
gvanrossum Apr 9, 2024
be9365c
Merge remote-tracking branch 'origin/main' into fix-tg
gvanrossum Apr 9, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Add test for nested task groups
Co-Authored-By: @arthur-tacca
  • Loading branch information
gvanrossum committed Apr 4, 2024
commit 55ff73f45a7f2d5abfb65cb7221bd2e7191ebd56
22 changes: 22 additions & 0 deletions Lib/test/test_asyncio/test_taskgroups.py
Original file line number Diff line number Diff line change
Expand Up @@ -845,6 +845,28 @@ async def raise_after(t, e):
pass
self.assertEqual(asyncio.current_task().cancelling(), 0)

async def test_nested_groups_both_cancelled(self):
async def raise_after(t, e):
await asyncio.sleep(t)
raise e()

try:
async with asyncio.TaskGroup() as outer_tg:
try:
async with asyncio.TaskGroup() as inner_tg:
inner_tg.create_task(raise_after(0, RuntimeError))
outer_tg.create_task(raise_after(0, ValueError))
except* RuntimeError:
pass
else:
self.fail("RuntimeError not raised")
self.assertEqual(asyncio.current_task().cancelling(), 1)
except* ValueError:
pass
else:
self.fail("ValueError not raised")
self.assertEqual(asyncio.current_task().cancelling(), 0)


if __name__ == "__main__":
unittest.main()