File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change 2
2
3
3
4
4
import asyncio
5
+ import contextvars
5
6
6
7
from asyncio import taskgroups
7
8
import unittest
@@ -708,6 +709,23 @@ async def coro():
708
709
t = g .create_task (coro (), name = "yolo" )
709
710
self .assertEqual (t .get_name (), "yolo" )
710
711
712
+ async def test_taskgroup_task_context (self ):
713
+ cvar = contextvars .ContextVar ('cvar' )
714
+
715
+ async def coro (val ):
716
+ await asyncio .sleep (0 )
717
+ cvar .set (val )
718
+
719
+ async with taskgroups .TaskGroup () as g :
720
+ ctx = contextvars .copy_context ()
721
+ self .assertIsNone (ctx .get (cvar ))
722
+ t1 = g .create_task (coro (1 ), context = ctx )
723
+ await t1
724
+ self .assertEqual (1 , ctx .get (cvar ))
725
+ t2 = g .create_task (coro (2 ), context = ctx )
726
+ await t2
727
+ self .assertEqual (2 , ctx .get (cvar ))
728
+
711
729
712
730
if __name__ == "__main__" :
713
731
unittest .main ()
You can’t perform that action at this time.
0 commit comments