
    2hh]|                     Z   S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  S SKrS SKrS SK	J
r
  S r " S S\5      r " S S\5      rS	 rS
 r\R$                  S 5       r " S S5      r " S S\\R*                  5      r " S S\\R*                  5      r\S:X  a  \R2                  " 5         gg)    N)
taskgroups)await_without_taskc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     J/opt/python-3.13.8/usr/lib/python3.13/test/test_asyncio/test_taskgroups.pytearDownModuler      s    !!$'r
   c                       \ rS rSrSrg)MyExc   r	   N__name__
__module____qualname____firstlineno____static_attributes__r	   r
   r   r   r          r
   r   c                       \ rS rSrSrg)	MyBaseExc   r	   Nr   r	   r
   r   r   r      r   r
   r   c                 X    U R                    Vs1 s H  n[        U5      iM     sn$ s  snf r   )
exceptionstype)egexcs     r   get_error_typesr      s"    !#/#DI///s   'c                     [         R                  " 5       nU (       a  [         R                  " 5         U$ [         R                  " 5         U$ r   )gc	isenabledenabledisable)enabledwas_enableds     r   set_gc_stater'   !   s2    ,,.K
		  	

r
   c               #   V   #    [        SS9n  S v   [        U S9  g ! [        U S9  f = f7f)NF)r%   )r'   )r&   s    r   
disable_gcr)   *   s'     u-K*[)[)s   
) 
)&)c                   4   \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2r4g3)4BaseTestTaskGroup3   c                   #    S nS n[         R                  " 5        IS h  vN nUR                  U" 5       5      nUR                  U" 5       5      nS S S 5      IS h  vN   U R                  WR	                  5       S5        U R                  WR	                  5       S5        g  N NG! , IS h  vN  (       d  f       N\= f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g N7fN皙?*   r   sleepr	   r
   r   foo11BaseTestTaskGroup.test_taskgroup_01.<locals>.foo17        --$$$ %   $"$c                  L   #    [         R                  " S5      I S h  vN   g N7fN皙?   r2   r	   r
   r   foo21BaseTestTaskGroup.test_taskgroup_01.<locals>.foo2;   r6   r7   r1   r;   )r   	TaskGroupcreate_taskassertEqualresultselfr4   r<   gt1t2s         r   test_taskgroup_01#BaseTestTaskGroup.test_taskgroup_015   s     		 ''))Qtv&Btv&B *) 	b)b) *)))sE    CB$C-B(CB&AC&C(B?.B1/B?;Cc                   #    S nS n[         R                  " 5        IS h  vN nUR                  U" 5       5      n[        R                  " S5      I S h  vN   UR                  U" 5       5      nS S S 5      IS h  vN   U R                  WR                  5       S5        U R                  WR                  5       S5        g  N Nm NI! , IS h  vN  (       d  f       N^= f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g N7fr/   r2   r	   r
   r   r4   1BaseTestTaskGroup.test_taskgroup_02.<locals>.foo1H   r6   r7   c                  L   #    [         R                  " S5      I S h  vN   g N7fr9   r2   r	   r
   r   r<   1BaseTestTaskGroup.test_taskgroup_02.<locals>.foo2L   r6   r7   333333?r1   r;   )r   r>   r?   r   r3   r@   rA   rB   s         r   test_taskgroup_02#BaseTestTaskGroup.test_taskgroup_02F   s     		 ''))Qtv&B--%%%tv&B *)
 	b)b) *% *)))sW    C"CC"0CCC1C"<C=AC"CC"CCCC"c                   #    S nS n[         R                  " 5        IS h  vN nUR                  U" 5       5      n[        R                  " S5      I S h  vN   UR                  5         UR                  U" 5       5      nS S S 5      IS h  vN   U R                  WR                  5       5        U R                  WR                  5       S5        g  N N| NH! , IS h  vN  (       d  f       N]= f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g N7fN   r1   r2   r	   r
   r   r4   1BaseTestTaskGroup.test_taskgroup_03.<locals>.foo1Z        --""" #r7   c                  L   #    [         R                  " S5      I S h  vN   g N7fr9   r2   r	   r
   r   r<   1BaseTestTaskGroup.test_taskgroup_03.<locals>.foo2^   r6   r7   rN   r;   )
r   r>   r?   r   r3   cancel
assertTrue	cancelledr@   rA   rB   s         r   test_taskgroup_03#BaseTestTaskGroup.test_taskgroup_03X   s     		 ''))Qtv&B--%%% IIKtv&B *) 	'b) *% *)))sW    C1CC10CC*CC1CAC1CC1C.C C.*C1c                   ^^^^^#    SmSmS mS mUU4S jmUUUU4S jnU R                  [        5       n[        R                  " U" 5       5      I S h  vN   S S S 5        U R	                  [        WR                  5      [        15        U R	                  TS5        U R                  T5        U R                  TR                  5       5        g  Ny! , (       d  f       N}= f7f)Nr   Fc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fNr0   rT   r   r2   r	   r
   r   r4   1BaseTestTaskGroup.test_taskgroup_04.<locals>.foo1t   #     --$$$E %   )')c                     >#     [         R                  " S5      I S h  vN   T S-  m g  N
! [         R                   a    Sme f = f7f)NrT   Tr   r3   CancelledErrorNUM	t2_cancels   r   r<   1BaseTestTaskGroup.test_taskgroup_04.<locals>.foo2x   I     mmA&&& 1HC	 '))  	%   A+ )+ A+ AAc                    >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        U R                  T" 5       5      mS S S 5      IS h  vN   TS-  mg  NF N! , IS h  vN  (       d  f       N!= f7fN
   r   r>   r?   )rD   rh   r4   r<   rF   s    r   runner3BaseTestTaskGroup.test_taskgroup_04.<locals>.runner   sX      "++--df%]]46* .- 2IC	 .---sD   BA$B-A(BA&B&B(A?.A1/A?;B)
assertRaisesExceptionGroupr   r?   r@   r   	exceptionZeroDivisionErrorrZ   r[   )rC   rq   cmrh   r4   r<   rF   ri   s      @@@@@r   test_taskgroup_04#BaseTestTaskGroup.test_taskgroup_04n   s     				 	 ~."%%fh/// / 	69J8KLa 	"' 0 /.s/   /C"CCCA5C"C
CC"c                   ^^^^^#    SmSmSmS mUU4S jmUUUU4S jnU R                  [        5       n[        R                  " U" 5       5      I S h  vN   S S S 5        U R	                  [        WR                  5      [        15        U R	                  TS5        U R                  T5        U R                  T5        g  Nk! , (       d  f       No= f7f)Nr   Fc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fr`   r2   r	   r
   r   r4   CBaseTestTaskGroup.test_cancel_children_on_child_error.<locals>.foo1   rb   rc   c                     >#     [         R                  " S5      I S h  vN   T S-  m g  N
! [         R                   a    Sme f = f7f)N   TrT   re   rg   s   r   r<   CBaseTestTaskGroup.test_cancel_children_on_child_error.<locals>.foo2   rk   rl   c                    >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        U R                  T" 5       5        U R                  T" 5       5        U R                  T" 5       5         [        R                  " S5      I S h  vN   S S S 5      IS h  vN   TS-  mg  N N! [        R
                   a    Sme f = f N)! , IS h  vN  (       d  f       N>= f7f)Nro   Tr   r>   r?   r   r3   rf   )rD   rh   r4   r<   runner_cancels    r   rq   EBaseTestTaskGroup.test_cancel_children_on_child_error.<locals>.runner   s      "++--df%df%df%df%!--+++ .- 2IC . ,-- $(M .---si   C*B/C*AC;B3B1B3C*$C%C*1B33CCC*C'CC'#C*)	rs   rt   r   r?   r@   r   ru   rv   rZ   )rC   rq   rw   rh   r4   r<   r   ri   s      @@@@@r   #test_cancel_children_on_child_error5BaseTestTaskGroup.test_cancel_children_on_child_error   s      				 	$ ~."%%fh/// / 	69J8KLa 	"& 0 /.s/   /CCCCA'CC
CCc                   ^^#    SmU4S jmU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [         R                  5       nUI S h  vN   S S S 5        U R                  TS5        g  Nx N!! , (       d  f       N%= f7f)Nr   c                     >#     [         R                  " S5      I S h  vN   g  N! [         R                   a    T S-  m e f = f7fNr~   rT   re   rh   s   r   foo0BaseTestTaskGroup.test_cancellation.<locals>.foo   =     mmA&&&)) q%   A& $& A& AAc                     >#    [         R                  " 5        IS h  vN n [        S5       H  nU R                  T" 5       5        M     S S S 5      IS h  vN   g  N= N! , IS h  vN  (       d  f       g = f7f)Nr~   )r   r>   ranger?   rD   _r   s     r   rq   3BaseTestTaskGroup.test_cancellation.<locals>.runner   sG     !++--qAMM#%( " .-----sD   A9AA9)A
A9AA9A9A6%A(&A62A9r0   r~   	r   r?   r3   assertFalsedonerY   rs   rf   r@   )rC   rq   rrw   rh   r   s       @@r   test_cancellation#BaseTestTaskGroup.test_cancellation   s     		)
 )mmC   "	
w556"GG 7 	a  	!
  76s=   ACC ACC C!C%CC
CCc                   ^^#    SmU4S jmUU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [         R                  5         UI S h  vN   S S S 5        U R                  TS5        g  Nx N!! , (       d  f       N%= f7f)Nr   c                     >#     [         R                  " S5      I S h  vN   g  N! [         R                   a    T S-  m e f = f7fr   re   r   s   r   r   0BaseTestTaskGroup.test_taskgroup_07.<locals>.foo   r   r   c                  t  >#    [         R                  " 5        IS h  vN n [        S5       H  nU R                  T" 5       5        M      [        R
                  " S5      I S h  vN   S S S 5      IS h  vN   g  N\ N! [        R                   a    TS-  me f = f N'! , IS h  vN  (       d  f       g = f7fNr~   ro   )r   r>   r   r?   r   r3   rf   )rD   r   rh   r   s     r   rq   3BaseTestTaskGroup.test_taskgroup_07.<locals>.runner   s     !++--qAMM#%( "!--+++ .--
 ,-- 2IC .---sh   B8A:B8)BA>$A<%A>)B84B5B8<A>>BBB8B5$B'%B51B8r0      r   )rC   rq   r   rh   r   s      @@r   test_taskgroup_07#BaseTestTaskGroup.test_taskgroup_07   s     	
	 )mmC   "	
w556GG 7 	b! 	!
  76s=   ACC	ACC!C"C&CC
CCc                   ^#    S mU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [        5       nUI S h  vN   S S S 5        U R                  [        WR                  5      [        15        g  N N9! , (       d  f       N== f7f)Nc                  l   #     [         R                  " S5      I S h  vN   SS-    g  N
! SS-    f = f7fNro   rT   r   r2   r	   r
   r   r   0BaseTestTaskGroup.test_taskgroup_08.<locals>.foo  0     mmB'''A (A    4* (* 4* 14c                  6  >#    [         R                  " 5        IS h  vN n [        S5       H  nU R                  T" 5       5        M     [        R
                  " S5      I S h  vN   S S S 5      IS h  vN   g  N[ N N	! , IS h  vN  (       d  f       g = f7fr   r   r>   r   r?   r   r3   r   s     r   rq   3BaseTestTaskGroup.test_taskgroup_08.<locals>.runner  se     !++--qAMM#%( " mmB'''	 .-- (	 .---sW   BA9BAA?#A;$A?(B3A=4B;A?=B?BBBBr0   r   r?   r3   r   r   rY   rs   rt   r@   r   ru   rv   rC   rq   r   rw   r   s       @r   test_taskgroup_08#BaseTestTaskGroup.test_taskgroup_08   s     		( )mmC   "	
~."GG /69J8KL 	!
  /.<   >CCAC
CC
C4C
C
CCc                 j  ^^^^#    S =mmS mS mUUUU4S jn U" 5       I S h  vN   U R                  S5        U R                  TR                  5       5        U R                  TR                  5       5        g  NT! [         a*  nU R                  [        U5      [        15         S nANpS nAff = f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g N7frS   r2   r	   r
   r   r4   1BaseTestTaskGroup.test_taskgroup_09.<locals>.foo1  rV   r7   c                  L   #    [         R                  " S5      I S h  vN   g N7fN   r;   r2   r	   r
   r   r<   1BaseTestTaskGroup.test_taskgroup_09.<locals>.foo2  rV   r7   c                  H  >#    [         R                  " 5        IS h  vN n U R                  T" 5       5      mU R                  T" 5       5      m[        R                  " S5      I S h  vN   SS-    S S S 5      IS h  vN   g  Nd N N	! , IS h  vN  (       d  f       g = f7fr`   )r   r>   r?   r   r3   rD   r4   r<   rE   rF   s    r   rq   3BaseTestTaskGroup.test_taskgroup_09.<locals>.runner#  sn     !++--]]46*]]46*mmC(((A	 .-- ) .---sW   B"BB"AB'B(	B1B"<B=B"BB"BBBB"ExceptionGroup was not raisedfailrt   r@   r   rv   rZ   r[   rC   rq   tr4   r<   rE   rF   s      @@@@r   test_taskgroup_09#BaseTestTaskGroup.test_taskgroup_09  s     R			 		7(NN II56''  	F_Q/2C1DEE	F>   B3
A< A:A< AB3:A< <
B0 B+&B3+B00B3c                 j  ^^^^#    S =mmS mS mUUUU4S jn U" 5       I S h  vN   U R                  S5        U R                  TR                  5       5        U R                  TR                  5       5        g  NT! [         a*  nU R                  [        U5      [        15         S nANpS nAff = f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g N7frS   r2   r	   r
   r   r4   1BaseTestTaskGroup.test_taskgroup_10.<locals>.foo19  rV   r7   c                  L   #    [         R                  " S5      I S h  vN   g N7fr   r2   r	   r
   r   r<   1BaseTestTaskGroup.test_taskgroup_10.<locals>.foo2=  rV   r7   c                    >#    [         R                  " 5        IS h  vN n U R                  T" 5       5      mU R                  T" 5       5      mSS-    S S S 5      IS h  vN   g  NF N! , IS h  vN  (       d  f       g = f7f)NrT   r   rp   r   s    r   rq   3BaseTestTaskGroup.test_taskgroup_10.<locals>.runnerA  sR     !++--]]46*]]46*A .-----sD   BA$B2A(BA&B&B(A?.A1/A?;Br   r   r   s      @@@@r   test_taskgroup_10#BaseTestTaskGroup.test_taskgroup_105  s     R			 		7(NN II56''  	F_Q/2C1DEE	Fr   c                 ,  ^#    S mU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [        5       nUI S h  vN   S S S 5        U R                  [        WR                  5      [        15        U R                  [        UR                  R                  S   5      [        15        g  N Np! , (       d  f       Nt= f7f)Nc                  l   #     [         R                  " S5      I S h  vN   SS-    g  N
! SS-    f = f7fr   r2   r	   r
   r   r   0BaseTestTaskGroup.test_taskgroup_11.<locals>.fooT  r   r   c                    >#    [         R                  " 5        IS h  vN   [         R                  " 5        IS h  vN n [        S5       H  nU R                  T" 5       5        M     [        R
                  " S5      I S h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   g  N Nm N) N! , IS h  vN  (       d  f       N0= f N'! , IS h  vN  (       d  f       g = f7fr   r   )g2r   r   s     r   rq   3BaseTestTaskGroup.test_taskgroup_11.<locals>.runnerZ  s     !++--%//11R"1Xsu- & "--+++	 21 .--1 ,	 2111 .---s   C%B'C%CB)CAB/B+B/CB-CC%!C	"C%)C+B/-C/C	5B86C	C	C%C"CC"C%r0   r   r   r?   r3   r   r   rY   rs   rt   r@   r   ru   r   rv   r   s       @r   test_taskgroup_11#BaseTestTaskGroup.test_taskgroup_11R  s     		, )mmC   "	
~."GG / 	68HI)@)@)CDGXFYZ 	!
  /.=   >DC?AD
DDDA+DD
DDc                 ,  ^#    S mU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [        5       nUI S h  vN   S S S 5        U R                  [        WR                  5      [        15        U R                  [        UR                  R                  S   5      [        15        g  N Np! , (       d  f       Nt= f7f)Nc                  l   #     [         R                  " S5      I S h  vN   SS-    g  N
! SS-    f = f7fr   r2   r	   r
   r   r   0BaseTestTaskGroup.test_taskgroup_12.<locals>.fooo  r   r   c                    >#    [         R                  " 5        IS h  vN n U R                  [        R                  " S5      5        [         R                  " 5        IS h  vN n[        S5       H  nUR                  T" 5       5        M     [        R                  " S5      I S h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   g  N Nm N) N! , IS h  vN  (       d  f       N0= f N'! , IS h  vN  (       d  f       g = f7f)Nro   r~   )r   r>   r?   r   r3   r   )g1r   r   r   s      r   rq   3BaseTestTaskGroup.test_taskgroup_12.<locals>.runneru  s     !++--w}}R01%//11R"1Xsu- & "--+++	 21 .-- 2 ,	 2111 .---s   D
CD
?C0 C!C0$AC&C'C+C06C7C0;D
C.D
C0CC0C+	CC+	'C0.D
0D6C97DD
r0   r   r   r   s       @r   test_taskgroup_12#BaseTestTaskGroup.test_taskgroup_12m  s     		, )mmC   "	
~."GG / 	68HI)@)@)CDGXFYZ 	!
  /.r   c                    ^#    S mU4S jn[         R                  " U" 5       5      nU R                  [        5       nUI S h  vN   S S S 5        U R	                  [        WR                  5      [        15        g  N7! , (       d  f       N;= f7f)Nc                 `   #    [         R                  " U 5      I S h  vN   [        U 5      e N7fr   r   r3   
ValueErrorr   s    r   crash_after8BaseTestTaskGroup.test_taskgroup_13.<locals>.crash_after  &     --"""Q- #   .,.c                    >#    [         R                  " 5        IS h  vN n U R                  T" S5      5        [         R                  " 5        IS h  vN nUR                  T" S5      5        S S S 5      IS h  vN   S S S 5      IS h  vN   g  Nq N> N! , IS h  vN  (       d  f       N.= f N%! , IS h  vN  (       d  f       g = f7f)Nr0   ro   rp   r   r   r   s     r   rq   3BaseTestTaskGroup.test_taskgroup_13.<locals>.runner  sy     !++--{3/0%//11RNN;r?3 21 .-- 2111 .---   CBC1B1BB1B.B19B:B1>C	B/
CB1B1B,	BB,	(B1/C1C7B:8CC)r   r?   rs   rt   r@   r   ru   r   rC   rq   r   rw   r   s       @r   test_taskgroup_13#BaseTestTaskGroup.test_taskgroup_13  sj     	 	4 )~."GG / 	6E  /.s.   :BA=A;A=3B;A==
BBc                   ^#    S mU4S jn[         R                  " U" 5       5      nU R                  [        5       nUI S h  vN   S S S 5        U R	                  [        WR                  5      [        15        U R	                  [        UR                  R                  S   5      [        15        g  Nn! , (       d  f       Nr= f7f)Nc                 `   #    [         R                  " U 5      I S h  vN   [        U 5      e N7fr   r   r   s    r   r   8BaseTestTaskGroup.test_taskgroup_14.<locals>.crash_after  r   r   c                    >#    [         R                  " 5        IS h  vN n U R                  T" S5      5        [         R                  " 5        IS h  vN nUR                  T" S5      5        S S S 5      IS h  vN   S S S 5      IS h  vN   g  Nq N> N! , IS h  vN  (       d  f       N.= f N%! , IS h  vN  (       d  f       g = f7f)Nro   r0   rp   r   s     r   rq   3BaseTestTaskGroup.test_taskgroup_14.<locals>.runner  sy     !++--{2/%//11RNN;s#34 21 .-- 2111 .---r   r   )	r   r?   rs   rt   r@   r   ru   r   r   r   s       @r   test_taskgroup_14#BaseTestTaskGroup.test_taskgroup_14  s     	 	5 )~."GG / 	68HI)@)@)CDzlS  /.s/   :CB4B2B4A*C2B44
C>Cc                   ^#    S mU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [        5       nUI S h  vN   S S S 5        U R                  [        WR                  5      [        15        g  N N9! , (       d  f       N== f7f)Nc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fN333333?rT   r   r2   r	   r
   r   
crash_soon7BaseTestTaskGroup.test_taskgroup_15.<locals>.crash_soon  rb   rc   c                    >#    [         R                  " 5        IS h  vN n U R                  T" 5       5         [        R                  " S5      I S h  vN   S S S 5      IS h  vN   g  NJ N! [        R
                   a!    [        R                  " S5      I S h  vN    e f = f NA! , IS h  vN  (       d  f       g = f7fNro   g      ?r   r   r   s    r   rq   3BaseTestTaskGroup.test_taskgroup_15.<locals>.runner       !++--z|,!--+++ .-- ,-- !--,,,	 .---s   C A(C B&A,A*A,C "B$#C *A,,-B!BB!!B&$C &B=,B/-B=9C r0   r   )rC   rq   r   rw   r   s       @r   test_taskgroup_15#BaseTestTaskGroup.test_taskgroup_15  s     		 )mmC   "	
~."GG /69J8KL 	!
  /.r   c                   ^^#    S mU4S jmU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [        5       nUI S h  vN   S S S 5        U R                  [        WR                  5      [        15        g  N N9! , (       d  f       N== f7f)Nc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fr   r2   r	   r
   r   r   7BaseTestTaskGroup.test_taskgroup_16.<locals>.crash_soon  rb   rc   c                    >#    [         R                  " 5        IS h  vN n U R                  T" 5       5         [        R                  " S5      I S h  vN   S S S 5      IS h  vN   g  NJ N! [        R
                   a!    [        R                  " S5      I S h  vN    e f = f NA! , IS h  vN  (       d  f       g = f7fr   r   r   s    r   nested_runner:BaseTestTaskGroup.test_taskgroup_16.<locals>.nested_runner  r   r   c                  \   >#    [         R                  " T" 5       5      n U I S h  vN   g  N7fr   )r   r?   )r   r  s    r   rq   3BaseTestTaskGroup.test_taskgroup_16.<locals>.runner  s     ##MO4AGGs   !,*,r0   r   )rC   rq   r   rw   r   r  s       @@r   test_taskgroup_16#BaseTestTaskGroup.test_taskgroup_16  s     			 )mmC   "	
~."GG /69J8KL 	!
  /.s=   AC$C	AC$CCC4C$C
C!C$c                   ^#    SmU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5         U R                  [         R                  5         UI S h  vN   S S S 5        U R                  TS5        g  Nx N!! , (       d  f       N%= f7f)Nr   c                  $  >#    [         R                  " 5        IS h  vN    [        R                  " S5      I S h  vN   S S S 5      IS h  vN   g  N4 N! [        R                   a    T S-  m e f = f N'! , IS h  vN  (       d  f       g = f7frn   )r   r>   r   r3   rf   r   s   r   rq   3BaseTestTaskGroup.test_taskgroup_17.<locals>.runner  si     !++--!--+++ .--+-- 2IC .---se   BABA6AAABA4BAA11A64B6B<A?=B	Br0   ro   r   )rC   rq   r   rh   s      @r   test_taskgroup_17#BaseTestTaskGroup.test_taskgroup_17  s     	 )mmC   "	
w556GG 7 	b! 	!
  76s<   =C B9ACB=B;B=C;B==
CCc                   ^#    SmU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   U R                  UR	                  5       5        UR                  5          UI S h  vN   U R                  S5        U R                  TS5        g  Nb N*! [         a*  nU R                  [        U5      [        15         S nANFS nAff = f7f)Nr   c                  .  >#    [         R                  " 5        IS h  vN    [        R                  " S5      I S h  vN   S S S 5      IS h  vN   g  N4 N! [        R                   a    T S-  m [
        ef = f N,! , IS h  vN  (       d  f       g = f7frn   )r   r>   r   r3   rf   r   r   s   r   rq   3BaseTestTaskGroup.test_taskgroup_18.<locals>.runner  sm     !++-- !--+++ .--+--  2IC  K	  .---se   BABA;AAABA9BA A66A;9B;BBBBr0   r   ro   )r   r?   r3   r   r   rY   r   rt   r@   r   r   )rC   rq   r   r   rh   s       @r   test_taskgroup_18#BaseTestTaskGroup.test_taskgroup_18  s     		  )mmC   "	
	7GG II56b! 	!  	9_Q/88	9sM   =C B#3C5B' :B%;B' ?%C%B' '
C1 CCCCc                   ^^#    S mS mUU4S jn[         R                  " U" 5       5      n UI S h  vN   U R                  S5        g  N! [         a/  nU R	                  [        U5      [        [        15         S nAg S nAff = f7f)Nc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fr`   r2   r	   r
   r   r   7BaseTestTaskGroup.test_taskgroup_19.<locals>.crash_soon  rb   rc   c                  l   #     [         R                  " S5      I S h  vN   [        e N
! [        e= f7frn   )r   r3   r   r	   r
   r   nested3BaseTestTaskGroup.test_taskgroup_19.<locals>.nested  s,     mmB''' (r   c                     >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        T" 5       I S h  vN   S S S 5      IS h  vN   g  N: N N	! , IS h  vN  (       d  f       g = f7fr   rp   rD   r   r  s    r   rq   3BaseTestTaskGroup.test_taskgroup_19.<locals>.runner#  J     !++--jl+h .-- .---V   A8AA8!AAAA8AA8AA8A5$A'%A51A8zTasgGroupError was not raised)r   r?   r   rt   r@   r   r   rv   )rC   rq   r   r   r   r  s       @@r   test_taskgroup_19#BaseTestTaskGroup.test_taskgroup_19  sx     			
 )	7GG II56	  	M_Q/%9J1KLL	Ms=   )BA A
A B
A 
B%B ;B BBc                    ^^#    S mS mUU4S jnU R                  [        5         U" 5       I S h  vN   S S S 5        g  N! , (       d  f       g = f7f)Nc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fr`   r2   r	   r
   r   r   7BaseTestTaskGroup.test_taskgroup_20.<locals>.crash_soon1  rb   rc   c                  l   #     [         R                  " S5      I S h  vN   [        e N
! [        e= f7frn   r   r3   KeyboardInterruptr	   r
   r   r  3BaseTestTaskGroup.test_taskgroup_20.<locals>.nested5  s.     (mmB''''' (''r   c                     >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        T" 5       I S h  vN   S S S 5      IS h  vN   g  N: N N	! , IS h  vN  (       d  f       g = f7fr   rp   r  s    r   rq   3BaseTestTaskGroup.test_taskgroup_20.<locals>.runner;  r  r   rs   r(  rC   rq   r   r  s     @@r   test_taskgroup_20#BaseTestTaskGroup.test_taskgroup_200  sB     		(	
 01(NN 21 21+   #AAA A	A A
AAc                   ^^#    S mS mUU4S jnU R                  [        5       nU" 5       I S h  vN   S S S 5        U R                  [        WR                  5      [
        [        15        g  N<! , (       d  f       N@= f7f)Nc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7fr`   r2   r	   r
   r   r   8BaseTestTaskGroup.test_taskgroup_20a.<locals>.crash_soonD  rb   rc   c                  l   #     [         R                  " S5      I S h  vN   [        e N
! [        e= f7frn   r   r3   r   r	   r
   r   r  4BaseTestTaskGroup.test_taskgroup_20a.<locals>.nestedH  ,      mmB''' (r   c                     >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        T" 5       I S h  vN   S S S 5      IS h  vN   g  N: N N	! , IS h  vN  (       d  f       g = f7fr   rp   r  s    r   rq   4BaseTestTaskGroup.test_taskgroup_20a.<locals>.runnerN  r  r   )rs   BaseExceptionGroupr@   r   ru   r   rv   rC   rq   rw   r   r  s      @@r   test_taskgroup_20a$BaseTestTaskGroup.test_taskgroup_20aC  sg     		 	
 12b(NN 3 	BLL)I7H+I	
  32+   #BA1A/A18B/A11
A?;Bc                    ^^#    S mS mUU4S jnU R                  [        5         U" 5       I S h  vN   S S S 5        g  N! , (       d  f       g = f7f)Nc                  V   #    [         R                  " S5      I S h  vN   [        e N
7fNr0   r'  r	   r
   r   r   8BaseTestTaskGroup._test_taskgroup_21.<locals>.crash_soonb  s"     --$$$## %rc   c                  l   #     [         R                  " S5      I S h  vN   [        e N
! [        e= f7frn   r   r3   	TypeErrorr	   r
   r   r  4BaseTestTaskGroup._test_taskgroup_21.<locals>.nestedf  r7  r   c                     >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        T" 5       I S h  vN   S S S 5      IS h  vN   g  N: N N	! , IS h  vN  (       d  f       g = f7fr   rp   r  s    r   rq   4BaseTestTaskGroup._test_taskgroup_21.<locals>.runnerl  r  r   r,  r-  s     @@r   _test_taskgroup_21$BaseTestTaskGroup._test_taskgroup_21Z  sB     	$	 	
 01(NN 21 21r0  c                   ^^#    S mS mUU4S jnU R                  [        5       nU" 5       I S h  vN   S S S 5        U R                  [        WR                  5      [
        [        15        g  N<! , (       d  f       N@= f7f)Nc                  V   #    [         R                  " S5      I S h  vN   [        e N
7frA  r5  r	   r
   r   r   8BaseTestTaskGroup.test_taskgroup_21a.<locals>.crash_soonv  s!     --$$$O %rc   c                  l   #     [         R                  " S5      I S h  vN   [        e N
! [        e= f7frn   rD  r	   r
   r   r  4BaseTestTaskGroup.test_taskgroup_21a.<locals>.nestedz  r7  r   c                     >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        T" 5       I S h  vN   S S S 5      IS h  vN   g  N: N N	! , IS h  vN  (       d  f       g = f7fr   rp   r  s    r   rq   4BaseTestTaskGroup.test_taskgroup_21a.<locals>.runner  r  r   )rs   r:  r@   r   ru   r   rE  r;  s      @@r   test_taskgroup_21a$BaseTestTaskGroup.test_taskgroup_21at  sc     		 	
 12b(NN 3 	6I8NO  32r>  c                 J  ^^#    S mS mUU4S jn[         R                  " U" 5       5      n[         R                  " S5      I S h  vN   UR                  5         U R	                  [         R
                  5         UI S h  vN   S S S 5        g  NG N! , (       d  f       g = f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g N7frS   r2   r	   r
   r   r4   1BaseTestTaskGroup.test_taskgroup_22.<locals>.foo1  rV   r7   c                  L   #    [         R                  " S5      I S h  vN   g N7fr   r2   r	   r
   r   r<   1BaseTestTaskGroup.test_taskgroup_22.<locals>.foo2  rV   r7   c                     >#    [         R                  " 5        IS h  vN n U R                  T" 5       5        U R                  T" 5       5        S S S 5      IS h  vN   g  NA N! , IS h  vN  (       d  f       g = f7fr   rp   )rD   r4   r<   s    r   rq   3BaseTestTaskGroup.test_taskgroup_22.<locals>.runner  sG     !++--df%df% .-----sD   A=AA=-A#A=A!A=!A=#A:)A,*A:6A=g?)r   r?   r3   rY   rs   rf   )rC   rq   r   r4   r<   s      @@r   test_taskgroup_22#BaseTestTaskGroup.test_taskgroup_22  sy     			&
 )mmD!!!	
w556GG 76 	"  76s<   AB#B3B#:B BB
B#B
B B#c                    #    S n[         R                  " 5        IS h  vN n[        S5       He  n[        R                  " S5      I S h  vN   UR                  U" S5      5        US:X  d  M@  U R                  [        UR                  5      S5        Mg     [        R                  " S5      I S h  vN   U R                  [        UR                  5      S5        S S S 5      IS h  vN   g  N N N> N! , IS h  vN  (       d  f       g = f7f)Nc                 L   #    [         R                  " U 5      I S h  vN   g  N7fr   r2   delays    r   do_job3BaseTestTaskGroup.test_taskgroup_23.<locals>.do_job       --&&&r7   ro   r0   r   r~   g?r   )
r   r>   r   r   r3   r?   
assertLesslen_tasksr@   )rC   ra  rD   counts       r   test_taskgroup_23#BaseTestTaskGroup.test_taskgroup_23  s     	' ''))QrmmC(((fSk*A:OOCM15	 #
 --%%%S]A. *))( & *)))so   DC,D(C4C.C4/AC41C02)C4D&C2'D.C40C42D4D:C=;DDc                 P   ^^#    U4S jmS mU4S jnU" 5       I S h  vN   g  N7f)Nc                    >#    [         R                  " S5      I S h  vN   U R                  T" S5      5        U R                  T" S5      5        g  N37f)Nr0   r:   r   r3   r?   )rD   coro1s    r   root1BaseTestTaskGroup.test_taskgroup_24.<locals>.root  s=     --$$$MM%*%MM%*% %s   AA4Ac                 L   #    [         R                  " U 5      I S h  vN   g  N7fr   r2   r_  s    r   rm  2BaseTestTaskGroup.test_taskgroup_24.<locals>.coro1  rc  r7   c                     >#    [         R                  " 5        IS h  vN n U R                  T" U 5      5        S S S 5      IS h  vN   g  N, N! , IS h  vN  (       d  f       g = f7fr   rp   )rD   rn  s    r   rq   3BaseTestTaskGroup.test_taskgroup_24.<locals>.runner  s;     !++--d1g& .-----sC   A(A
A(AA(AA(A(A%AA%!A(r	   )rC   rq   rm  rn  s     @@r   test_taskgroup_24#BaseTestTaskGroup.test_taskgroup_24  s      	&
	'	' hs   &$&c                 6  ^^^#    SmUU4S jmU4S jmUU4S jnU R                  [        5       nU" 5       I S h  vN   S S S 5        U R                  [        WR                  5      [
        15        U R                  TS5        g  NI! , (       d  f       NM= f7f)Nr   c                    >#    TS-  m[         R                  " S5      I S h  vN   U R                  T" U 5      5        U R                  T" U 5      5        g  N37f)NrT   g{Gz?rl  )rD   hydranhydrass    r   rx  2BaseTestTaskGroup.test_taskgroup_25.<locals>.hydra  sF     qLG--%%%MM%(#MM%(# &s   AA4Ac                  t   >#    T S:  a&  [         R                  " S5      I S h  vN   T S:  a  M&  SS-    g  N7f)Nro   gQ?rT   r   r2   )ry  s   r   hercules5BaseTestTaskGroup.test_taskgroup_25.<locals>.hercules  s4     B,mmE*** B,E +s    86
88c                     >#    [         R                  " 5        IS h  vN n U R                  T" U 5      5        U R                  T" 5       5        S S S 5      IS h  vN   g  NB N! , IS h  vN  (       d  f       g = f7fr   rp   )rD   r|  rx  s    r   rq   3BaseTestTaskGroup.test_taskgroup_25.<locals>.runner  sI     !++--eAh'hj) .-----sD   A>A A>.A$A>A"A>"A>$A;*A-+A;7A>ro   )rs   rt   r@   r   ru   rv   assertGreaterEqual)rC   rq   rw   r|  rx  ry  s      @@@r   test_taskgroup_25#BaseTestTaskGroup.test_taskgroup_25  sv     	$	
	*
 ~."(NN / 	69J8KL,  /.s-   ,BBBBABB
BBc                   #    S n[         R                  " 5        IS h  vN nUR                  U" 5       SS9nU R                  UR	                  5       S5        S S S 5      IS h  vN   g  NJ N! , IS h  vN  (       d  f       g = f7f)Nc                  L   #    [         R                  " S5      I S h  vN   g  N7fNr   r2   r	   r
   r   coro8BaseTestTaskGroup.test_taskgroup_task_name.<locals>.coro  s     --"""r7   yolo)name)r   r>   r?   r@   get_name)rC   r  rD   r   s       r   test_taskgroup_task_name*BaseTestTaskGroup.test_taskgroup_task_name  sY     	#''))Qdf62AQZZ\62 *)))))sD   BA*B6A.B$A,%B,B.B4A75BBc                 T  ^#    [         R                  " S5      mU4S jn[        R                  " 5        IS h  vN n[         R                  " 5       nU R                  UR                  T5      5        UR                  U" S5      US9nUI S h  vN   U R                  SUR                  T5      5        UR                  U" S5      US9nUI S h  vN   U R                  SUR                  T5      5        S S S 5      IS h  vN   g  N Ny N: N! , IS h  vN  (       d  f       g = f7f)Ncvarc                 p   >#    [         R                  " S5      I S h  vN   TR                  U 5        g  N7fr  )r   r3   set)valr  s    r   r  ;BaseTestTaskGroup.test_taskgroup_task_context.<locals>.coro  s(     --"""HHSM #s   646rT   )contextr   )	contextvars
ContextVarr   r>   copy_contextassertIsNonegetr?   r@   )rC   r  rD   ctxrE   rF   r  s         @r   test_taskgroup_task_context-BaseTestTaskGroup.test_taskgroup_task_context  s     %%f-	 ''))Q**,Ccggdm,tAw4BHHQ.tAw4BHHQ. *))   *)))sj   6D(DD(ADDA DD
%D5D( DD(D
DD(D%DD%!D(c                   ^ ^#    S mUU 4S jnT R                  [        5       n[        R                  " 5        IS h  vN nUR	                  T" 5       5        UR	                  U" U5      5        S S S 5      IS h  vN   S S S 5        T R                  [        WR                  5      [        15        g  Nt N9! , IS h  vN  (       d  f       NN= f! , (       d  f       NW= f7f)Nc                  V   #    [         R                  " S5      I S h  vN   SS-    g  N
7f)NgMbP?rT   r   r2   r	   r
   r   rm  LBaseTestTaskGroup.test_taskgroup_no_create_task_after_failure.<locals>.coro1  s#     --&&&E 'rc   c                   >#     [         R                  " S5      I S h  vN   g  N! [         R                   aI    TR                  [        5         U R                  T" 5       5        S S S 5         g ! , (       d  f        g = ff = f7f)NrT   )r   r3   rf   rs   RuntimeErrorr?   )rD   rm  rC   s    r   coro2LBaseTestTaskGroup.test_taskgroup_no_create_task_after_failure.<locals>.coro2  s\     +mmA&&&)) +&&|4MM%'* 5444+sO   B& $& B& )BA0&B.B0
A?	:B=B?BB)	rs   rt   r   r>   r?   r@   r   ru   rv   )rC   r  rw   rD   rm  s   `   @r   +test_taskgroup_no_create_task_after_failure=BaseTestTaskGroup.test_taskgroup_no_create_task_after_failure  s     		+ ~."!++--eg&eAh' .- /
 	69J8KL	 .--- /.sb    C"CB3C.B70C;B5<C 3C"3C5C7C	=C >C	
C
CC"c                    ^ ^^^#     " S S[         5      mU4S jm[        R                  U4S j5       mUUUU 4S jn[        R                  " U" 5       5      I S h  vN   g  N7f)Nc                       \ rS rSrSrg)UBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.CustomExceptioni  r	   Nr   r	   r
   r   CustomExceptionr        r
   r  c                     >#    T e7fr   r	   r  s   r   	raise_excOBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.raise_exc  s     !!   c                 (   >#     S 7v   T e! T e= f7fr   r	   r  s   r   databaseNBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.database
  s     &%%o%s    c            	        >#    [         R                  " 5       n  [        R                  " 5        IS h  vN nT" 5        IS h  vN   UR	                  T" 5       5        [         R
                  " S5      I S h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   TR                  S5        g  Nz Nl N: N,! , IS h  vN  (       d  f       NA= f N8! , IS h  vN  (       d  f       NM= f! / =T =bR  nTR                  U R                  5       S5        TR                  [        UR                  5      S5        S nAPO	S nAP  PO  P8=c     g s f = f7f)NrT   r   r   zCustomException not raised)r   current_taskr   r>   r?   r3   r@   
cancellingre  r   r   )tasktgerrr  r  r  rC   s      r   mainJBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.main  s     '')D
8%//11R'zzy{3%mmA...  *z 21 		67 2).  *zzz 21119O 9  !2A6  S^^!4a889s   EC, B.C, CB0C0B67B28B6<CB4CC, CC, E.C, 0C2B64C6C	<B?=C		CC, C)CC)%C, (E)C, ,	E5AD?	:EE)	Exception
contextlibasynccontextmanagerr   r?   )rC   r  r  r  r  s   ` @@@r   *test_taskgroup_context_manager_exit_raises<BaseTestTaskGroup.test_taskgroup_context_manager_exit_raises  sS     	i 		" 
	'	'	& 
(	&	8 	8 !!$&)))s   AA$A"A$c           	      |  #    [         R                  " 5       nU IS h  vN   U R                  [        S5         U IS h  vN    S S S 5      IS h  vN   S S S 5        S S S 5      IS h  vN   g  NP N0 N!! , IS h  vN  (       d  f       N6= f! , (       d  f       N?= f N6! , IS h  vN  (       d  f       g = f7fNzhas already been enteredr   r>   assertRaisesRegexr  rC   r  s     r   test_taskgroup_already_entered0BaseTestTaskGroup.test_taskgroup_already_entered!  sf     !!#2''6PQ2 2 R 22222 RQ 222s   B<A/B<B"B A1
BA5BA3BB"B<)B *B<1B3B5B;A><BB
B	B" B<"B9(B+)B95B<c                 ~  #    [         R                  " 5       nU IS h  vN    S S S 5      IS h  vN   U R                  [        S5         U IS h  vN    S S S 5      IS h  vN   S S S 5        g  NQ NB! , IS h  vN  (       d  f       NW= f N< N-! , IS h  vN  (       d  f       NB= f! , (       d  f       g = f7fr  r  r  s     r   test_taskgroup_double_enter-BaseTestTaskGroup.test_taskgroup_double_enter(  sl     !!#2 2##L2LMr r NM 222 rrr NMs   B=A0B=A4B=A2B=
B,BB,BB,"B#B,'
B=2B=4B:A=;BB=B,B,B)	BB)	%B,,
B:6B=c                    ^ #    U 4S jn[         R                  " SS9 nU" 5       I S h  vN   S S S 5        T R                  [        W5      S5        g  N(! , (       d  f       N,= f7f)Nc                  Z  >#    [         R                  " 5       n U  IS h  vN    S S S 5      IS h  vN   [        R                  " S5      nTR	                  [
        S5         U R                  U5        S S S 5        g  N\ NM! , IS h  vN  (       d  f       Nb= f! , (       d  f       g = f7fNr   zis finishedr   r>   r   r3   r  r  r?   r  r  rC   s     r   create_task_after_tg_finishNBaseTestTaskGroup.test_taskgroup_finished.<locals>.create_task_after_tg_finish1  sk     %%'Br r==#D''mDt$ ED rrr EDsY   B+A<B+B B+A>0B+!B3
B+>B+ BB	BB+
B($B+T)recordr   )warningscatch_warningsr@   re  )rC   r  ws   `  r   test_taskgroup_finished)BaseTestTaskGroup.test_taskgroup_finished0  sO     	% $$D1Q-/// 2Q# 0 21s+   A%AAA$A%A
A"A%c                    #    [         R                  " 5       n[        R                  " S5      nU R	                  [
        S5         UR                  U5        S S S 5        g ! , (       d  f       g = f7f)Nr   has not been enteredr  rC   r  r  s      r   test_taskgroup_not_entered,BaseTestTaskGroup.test_taskgroup_not_entered?  sJ     !!#}}Q##L2HINN4  JIIs   AA0A	A0
A-)A0c                   #    [         R                  " 5       nU R                  [        S5         [	        UR                  5       5      I S h  vN   S S S 5        [        R                  " S5      nU R                  [        S5         UR                  U5        S S S 5        g  NS! , (       d  f       NW= f! , (       d  f       g = f7f)Nzparent taskr   r  )	r   r>   r  r  r   
__aenter__r   r3   r?   r  s      r   "test_taskgroup_without_parent_task4BaseTestTaskGroup.test_taskgroup_without_parent_taskE  s     !!###L-@$R]]_555 A}}Q##L2HINN4  JI 6 A@ JIsF   ,CB!BB!4CB2	CB!!
B/+C2
C <Cc                 <   ^ #    U 4S jnU" 5       I S h  vN   g  N7f)Nc                  V  >#    [         R                  " 5        IS h  vN n  S S S 5      IS h  vN   [        R                  " S5      nTR	                  [
        S5         W R                  U5        S S S 5        g  N\ NM! , IS h  vN  (       d  f       Nb= f! , (       d  f       g = f7fr  r  r  s     r   run_coro_after_tg_closesSBaseTestTaskGroup.test_coro_closed_when_tg_closed.<locals>.run_coro_after_tg_closesN  sm     !++-- .-==#D''mDt$ ED .--- EDsY   B)A:B)A>B)A<0B)B1
B)<B)>BBBB)
B&"B)r	   )rC   r  s   ` r   test_coro_closed_when_tg_closed1BaseTestTaskGroup.test_coro_closed_when_tg_closedM  s     	% '(((s   c                   #    S n [         R                  " 5        IS h  vN nUR                  U" S[        5      5        S S S 5      IS h  vN   U R	                  [         R
                  " 5       R                  5       S5        g  Nd N:! , IS h  vN  (       d  f       NO= f! / =[         =b    POP  PO  P8=c     Nns f = f7f)Nc                 X   #    [         R                  " U 5      I S h  vN   U" 5       e N7fr   r2   r   es     r   raise_afterFBaseTestTaskGroup.test_cancelling_level_preserved.<locals>.raise_afterX  #     --"""#I #   *(*g        r   )r   r>   r?   r  r@   r  r  )rC   r  r  s      r   test_cancelling_level_preserved1BaseTestTaskGroup.test_cancelling_level_preservedW  s     		((**b{3=> +* 	--/::<a@	 +***	 		sm   CB# BB# B	B# BB# 4CB# B# 	B BB B# C B# #C=Cc                 P  #    S n [         R                  " 5        IS h  vN n [         R                  " 5        IS h  vN nUR                  U" S[        5      5        UR                  U" S[        5      5        S S S 5      IS h  vN   U R                  S5        S S S 5      IS h  vN   U R                  [         R                  " 5       R                  5       S5        U R                  S5        U R                  [         R                  " 5       R                  5       S5        g  GN N N! , IS h  vN  (       d  f       N= f! / =[         =b    POP  PO  P8=c     Ns f = f N! , IS h  vN  (       d  f       N= f! / =[         =b    POP  PO  P8=c     Ns f = f7f)Nc                 X   #    [         R                  " U 5      I S h  vN   U" 5       e N7fr   r2   r  s     r   r  HBaseTestTaskGroup.test_nested_groups_both_cancelled.<locals>.raise_afterd  r  r  r   zRuntimeError not raisedrT   zValueError not raised)	r   r>   r?   r  r   r   r@   r  r  )rC   r  outer_tginner_tgs       r   !test_nested_groups_both_cancelled3BaseTestTaskGroup.test_nested_groups_both_cancelledc  s"    		/((**h9&0022h ,,[L-IJ ,,[J-GH  32 II78 +* W113>>@!D II-.--/::<a@ +2222  +***	
 		s   F&F D%F E*ED( E9D,<ED*EE*F (E()7F  AF&%F (E*E,E	2D53E	?EE*EE% E*(F *F0E31F=F F#F&c                    ^ ^^^#    [         R                  " 5       mU4S jmUU 4S jmUUU 4S jnU" 5       I S h  vN   g  N7f)Nc                     >#    T R                  5         [        R                  " S5      I S h  vN   [        5       e N7fr  )r  r   r3   r  )events   r   raise_error<BaseTestTaskGroup.test_error_and_cancel.<locals>.raise_error|  s.     IIK--""".  #s   *><>c                    >#     [         R                  " 5        IS h  vN n U R                  T" 5       5        [        R                  " S5      I S h  vN   TR                  S5        S S S 5      IS h  vN   TR                  [        R                  " 5       R                  5       S5        [        R                  " S5      I S h  vN   TR                  S5        g  N N Nk! , IS h  vN  (       d  f       N= f! / =[         =b:    TR                  [        R                  " 5       R                  5       S5        POP  PO  P8=c     Ns f = f N7f)NrT   z)Sleep in group should have been cancelledz,Sleep after group should have been cancelled)
r   r>   r?   r   r3   r   r  r@   r  r  )r  r  rC   s    r   inner6BaseTestTaskGroup.test_error_and_cancel.<locals>.inner  s     I%//11RNN;=1!--***IIIJ 21 W113>>@!D--"""IIDE 2* 2111IL I  !5!5!7!B!B!DaHI #s   EC; CC; 0C!CC!(C; 3C4C; 8AEEEC; C!C; !C8'C*(C84C; 7E8C; ;E3D=	;E	Ec                    >#    [         R                  " T" 5       5      n TR                  5       I S h  vN   TR                  U R	                  5       S5        U R                  5         TR                  U R	                  5       S5        TR                  [         R                  5         U I S h  vN   S S S 5        TR                  U R                  5       5        g  N N.! , (       d  f       N2= f7f)Nr   rT   )
r   r?   waitr@   r  rY   rs   rf   rZ   r[   )r   r  r  rC   s    r   outer6BaseTestTaskGroup.test_error_and_cancel.<locals>.outer  s     ##EG,A**,Q\\^Q/HHJQ\\^Q/""7#9#9: ;OOAKKM* 
  ;:s:   /C.CA3C.&C,C-C1)C.C
C+'C.)r   Event)rC   r   r  r  r  s   ` @@@r   test_error_and_cancel'BaseTestTaskGroup.test_error_and_cancely  s,     	!

	F	+ gs   5AAAc                 L  #    [         R                  " 5       nS n " S S[        5      n U IS h  vN   Ue N! , IS h  vN  (       d  f       O= f! [         a  nUn S nAOS nAff = fU R	                  U5        U R                  [        R                  " U5      / 5        g 7f)Nc                       \ rS rSrSrg)@BaseTestTaskGroup.test_exception_refcycles_direct.<locals>._Donei  r	   Nr   r	   r
   r   _Doner    r  r
   r  )r   r>   r  rt   assertIsNotNoneassertListEqualr!   get_referrers)rC   r  r   r  r  s        r   test_exception_refcycles_direct1BaseTestTaskGroup.test_exception_refcycles_direct  s~      	I 		r rrr 	C	 	S!R--c2B7s\   'B$A 7A 9A AA AA B$A 
A)A$B$$A));B$c                   #    [         R                  " 5       nS n " S S[        5      n U IS h  vN   Ue N! , IS h  vN  (       d  f       O6= f! / =U =b  nUR                  S   nS nAPO	S nAP  PO  P8=c     Os f = fU R	                  X#5        U R                  [        R                  " U5      / 5        g 7f)Nc                       \ rS rSrSrg)@BaseTestTaskGroup.test_exception_refcycles_errors.<locals>._Donei  r	   Nr   r	   r
   r   r  r    r  r
   r  r   )r   r>   r  r   assertIsInstancer
  r!   r  )rC   r  r   r  excss        r   test_exception_refcycles_errors1BaseTestTaskGroup.test_exception_refcycles_errors  s      	I 		%r rrr	% 	%//!$C	% 	c)R--c2B7sW   'B>A 7A 9A AA AA B>A 	BA0	+B>A B>c                    ^^#    [         R                  " 5       mS n " S S[        5      mUU4S jn [         R                  " 5        IS h  vN nUR                  U" 5       5        S S S 5      IS h  vN   U R                  UT5        U R                  [        R                  " U5      / 5        g  Nc N?! , IS h  vN  (       d  f       NT= f! / =T =b)  nUR                  S   R                  S   nS nAPO	S nAP  PO  P8=c     Ns f = f7f)Nc                       \ rS rSrSrg)EBaseTestTaskGroup.test_exception_refcycles_parent_task.<locals>._Donei  r	   Nr   r	   r
   r   r  r    r  r
   r  c                  ^   >#    T IS h  vN   T e N! , IS h  vN  (       d  f       g = f7fr   r	   r  r  s   r   coro_fnGBaseTestTaskGroup.test_exception_refcycles_parent_task.<locals>.coro_fn       r rrr$   ---**-r   )	r   r>   r  r?   r   r  r
  r!   r  )rC   r   r  tg2r  r  r  s        @@r   $test_exception_refcycles_parent_task6BaseTestTaskGroup.test_exception_refcycles_parent_task  s      	I 			3((**c	* +*
 	c5)R--c2B7 +***	3 	3//!$//2C	3s|   .DC B0C B4'C 2B23C 79D0C 2C 4C:B=;CC 
DC 	DC8	3DDc                   ^^#    [         R                  " 5       mS n " S S[        5      mUU4S jn[        5           [         R                  " 5        IS h  vN n[        R
                  " UR                  U" 5       5      5      nS S S 5      IS h  vN   S S S 5        U R                  W" 5       5        U R                  UT5        U R                  [        R                  " U5      / 5        g  N N]! , IS h  vN  (       d  f       Nr= f! / =T =b)  nUR                  S   R                  S   nS nAPO	S nAP  PO  P8=c     Ns f = f! , (       d  f       N= f7f)Nc                       \ rS rSrSrg)HBaseTestTaskGroup.test_exception_refcycles_parent_task_wr.<locals>._Donei  r	   Nr   r	   r
   r   r  r#    r  r
   r  c                  ^   >#    T IS h  vN   T e N! , IS h  vN  (       d  f       g = f7fr   r	   r  s   r   r  JBaseTestTaskGroup.test_exception_refcycles_parent_task_wr.<locals>.coro_fn  r  r  r   )r   r>   r  r)   weakrefrefr?   r   r  r  r
  r!   r  )rC   r   r  r  task_wrr  r  r  s         @@r   'test_exception_refcycles_parent_task_wr9BaseTestTaskGroup.test_exception_refcycles_parent_task_wr  s      	I 		 \7",,..#%kk#//')*DEG /.  	')$c5)R--c2B7 /...7E 7ooa(33A67	 \s   8EEDC-D+C1DC/DAE-D/D1D	7C:8D	DED	ED50EE
EEc                 Z  #    [         R                  " 5       nS n [         R                  " S5       IS h  vN   U IS h  vN   [         R                  " S5      I S h  vN   S S S 5      IS h  vN   S S S 5      IS h  vN   U R                  U[         R                  5        U R                  [        R                  " U5      / 5        g  N N No Na! , IS h  vN  (       d  f       Nv= f Nm! , IS h  vN  (       d  f       N= f! [         a  nUR
                  n S nANS nAff = f7f)Nr   )r   r>   timeoutr3   TimeoutError	__cause__r  rf   r
  r!   r  )rC   r  r   r  s       r   5test_exception_refcycles_propagate_cancellation_errorGBaseTestTaskGroup.test_exception_refcycles_propagate_cancellation_error  s      	r**2!--*** 2 +* 	c7#9#9:R--c2B7 +* 222 +***  	++C	s   D+D C
D C. CC.CCC#C..C/C.3D >C,?D AD+
D C.CC.C)	CC)	%C.,D .D4C75DD D+D 
D(D#D+#D((D+c                 D  #     " S S[         5      n[        R                  " 5       nS n U IS h  vN   Ue N! , IS h  vN  (       d  f       O= f! U a  nUn S nAOS nAff = fU R                  U5        U R	                  [
        R                  " U5      / 5        g 7f)Nc                       \ rS rSrSrg)RBaseTestTaskGroup.test_exception_refcycles_base_error.<locals>.MyKeyboardInterrupti  r	   Nr   r	   r
   r   MyKeyboardInterruptr4    r  r
   r5  )r(  r   r>   r	  r
  r!   r  )rC   r5  r  r   r  s        r   #test_exception_refcycles_base_error5BaseTestTaskGroup.test_exception_refcycles_base_error  s     	"3 	  	r)) rrr" 	C	 	S!R--c2B7s\   'B A 7A 9A AA AA B A A%A B  A%%;B c                   ^ ^^^^#    Sm " S S[         5      mS n [        R                  " 5        IS h  vN mU4S jmUU UU4S jnTR                  U" 5       5        S S S 5      IS h  vN   T R                  T5        T R                  UT5        g  N] N*! , IS h  vN  (       d  f       N?= f! / =T =b  nUR                  S   nS nAPO	S nAP  PO  P8=c     Nos f = f7f)NFc                       \ rS rSrSrg)OBaseTestTaskGroup.test_cancels_task_if_created_during_creation.<locals>.MyErrori  r	   Nr   r	   r
   r   MyErrorr:    r  r
   r;  c                     >#    T " S5      e7f)Nzthird task failedr	   r;  s   r   
third_taskRBaseTestTaskGroup.test_cancels_task_if_created_during_creation.<locals>.third_task  s     !"566s   	c                  4  >#    TR                  T" 5       5        TR                  [        R                  5         [        R                  " S5      I S h  vN   [        R                  " S5      I S h  vN   S S S 5        Sm g  N- N! , (       d  f       Sm g = f7f)Nr   T)r?   rs   r   rf   r3   )ranrC   r  r>  s   r   second_taskSBaseTestTaskGroup.test_cancels_task_if_created_during_creation.<locals>.second_task  sq     NN:<0**7+A+AB%mmA...%mmA... C C /. CB Cs@   6BBBB1B2B6BBB
B	Br   )r  r   r>   r?   r   rZ   r  )rC   r   rB  r  r;  rA  r  r>  s   `   @@@@r   ,test_cancels_task_if_created_during_creation>BaseTestTaskGroup.test_cancels_task_if_created_during_creation  s     	i 	 	%((**b7  {}- +*  	c7+# +***	% 	%//!$C	%sy   C$B1 BB1 &BB1 *B+B1 /$C$B1 B1 B.B B.*B1 -C$.B1 1	C!:C		C!C$c                   ^#     " S S[         5      mU4S jn [        R                  " 5        IS h  vN nUR                  U" 5       5        S S S 5      IS h  vN   U R	                  S5        [        R
                  " S5      I S h  vN   g  NZ N6! , IS h  vN  (       d  f       NK= f! / =T =b    POP  PO  P8=c     NUs f = f NA7f)Nc                       \ rS rSrSrg)LBaseTestTaskGroup.test_cancellation_does_not_leak_out_of_tg.<locals>.MyErrori(  r	   Nr   r	   r
   r   r;  rH  (  r  r
   r;  c                     >#    T e7fr   r	   r=  s   r   throw_errorPBaseTestTaskGroup.test_cancellation_does_not_leak_out_of_tg.<locals>.throw_error+  s     Mr  z'should have raised one MyError in groupr   )r  r   r>   r?   r   r3   )rC   rJ  r  r;  s      @r   )test_cancellation_does_not_leak_out_of_tg;BaseTestTaskGroup.test_cancellation_does_not_leak_out_of_tg'  s     	i 			A((**b{}- +*
 II?@ mmA +***	 		 	sy   CB, BB, BB, BB, *CC
	CB, B, B)BB)%B, (C)B, ,C	Cr	   N)5r   r   r   r   rG   rO   r\   rx   r   r   r   r   r   r   r   r   r   r   r   r
  r  r  r!  r.  r<  rI  rR  r[  rh  rt  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r)  r0  r6  rD  rL  r   r	   r
   r   r+   r+   3   s   *"*$*,#(J-'^!6 "DM0(<(:[6[:F&T(M0M8",":70&
.4P,,/ -43/"M$*>$!!)
AA,@8$8$8,8.88$,8r
   r+   c                   ,    \ rS rSr\R
                  rSrg)TestTaskGroupi=  r	   N)r   r   r   r   r   	EventLooploop_factoryr   r	   r
   r   rO  rO  =  s    $$Lr
   rO  c                   $    \ rS rSr\S 5       rSrg)TestEagerTaskTaskGroupi@  c                  n    [         R                  " 5       n U R                  [         R                  5        U $ r   )r   rP  set_task_factoryeager_task_factory)loops    r   rQ  #TestEagerTaskTaskGroup.loop_factoryA  s)      "g889r
   r	   N)r   r   r   r   staticmethodrQ  r   r	   r
   r   rS  rS  @  s     r
   rS  __main__)r&  sysr!   r   r  r  r   unittestr  test.test_asyncio.utilsr   r   r  r   BaseExceptionr   r   r'   contextmanagerr)   r+   IsolatedAsyncioTestCaserO  rS  r   r  r	   r
   r   <module>ra     s     
 	       6(	I 		 	0 * *G GT %%x'G'G %.0P0P  zMMO r
   