
    9bhks                        d dl Z d dlZd dlZd dlZd dlZd dlZd dlmZ d dlZd dlm	Z	 d Z
 G d de      Z G d de      Zd	 Zd
 Zej"                  d        Z G d d      Zej(                  dk(  rej*                  Znej.                  Z G d dej0                        Z G d dee      Z G d dee      Zedk(  r ej8                          yy)    N)
taskgroups)await_without_taskc                  .    t        j                  d        y N)asyncioset_event_loop_policy     K/opt/python-3.12.12/usr/lib/python3.12/test/test_asyncio/test_taskgroups.pytearDownModuler      s    !!$'r
   c                       e Zd Zy)MyExcN__name__
__module____qualname__r	   r
   r   r   r          r
   r   c                       e Zd Zy)	MyBaseExcNr   r	   r
   r   r   r      r   r
   r   c                 R    | j                   D ch c]  }t        |       c}S c c}w r   )
exceptionstype)egexcs     r   get_error_typesr      s"    !#/#DI///s   $c                     t        j                         }| rt        j                          |S t        j                          |S r   )gc	isenabledenabledisable)enabledwas_enableds     r   set_gc_stater#       s2    ,,.K
		  	

r
   c               #   h   K   t        d      } 	 d  t        |        y # t        |        w xY ww)NF)r!   )r#   )r"   s    r   
disable_gcr%   )   s(     u-K*[)[)s   2! 2/2c                      e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.y-).BaseTestTaskGroupc                 |  K   d }d }t        j                         4 d {   }|j                   |             }|j                   |             }d d d       d {    | j                  j	                         d       | j                  j	                         d       y 7 7 G# 1 d {  7  sw Y   WxY ww)Nc                  J   K   t        j                  d       d {    y7 wN皙?*   r   sleepr	   r
   r   foo1z1BaseTestTaskGroup.test_taskgroup_01.<locals>.foo16         --$$$ %   #!#c                  J   K   t        j                  d       d {    y7 wN皙?   r-   r	   r
   r   foo2z1BaseTestTaskGroup.test_taskgroup_01.<locals>.foo2:   r0   r1   r,   r5   )r   	TaskGroupcreate_taskassertEqualresultselfr/   r6   gt1t2s         r   test_taskgroup_01z#BaseTestTaskGroup.test_taskgroup_014   s     		 ''))Qtv&Btv&B *) 	b)b) *))))sE   B<B#B<-B'B<B%AB<%B<'B9-B0.B95B<c                   K   d }d }t        j                         4 d {   }|j                   |             }t        j                  d       d {    |j                   |             }d d d       d {    | j                  j                         d       | j                  j                         d       y 7 7 m7 I# 1 d {  7  sw Y   YxY ww)Nc                  J   K   t        j                  d       d {    y7 wr*   r-   r	   r
   r   r/   z1BaseTestTaskGroup.test_taskgroup_02.<locals>.foo1G   r0   r1   c                  J   K   t        j                  d       d {    y7 wr3   r-   r	   r
   r   r6   z1BaseTestTaskGroup.test_taskgroup_02.<locals>.foo2K   r0   r1   333333?r,   r5   )r   r7   r8   r   r.   r9   r:   r;   s         r   test_taskgroup_02z#BaseTestTaskGroup.test_taskgroup_02E   s     		 ''))Qtv&B--%%%tv&B *)
 	b)b) *% *)))sW   CC C/CCC/C:C;ACCCCCCCc                   K   d }d }t        j                         4 d {   }|j                   |             }t        j                  d       d {    |j                          |j                   |             }d d d       d {    | j                  j                                | j                  j                         d       y 7 7 |7 H# 1 d {  7  sw Y   XxY ww)Nc                  J   K   t        j                  d       d {    y7 wN   r,   r-   r	   r
   r   r/   z1BaseTestTaskGroup.test_taskgroup_03.<locals>.foo1Y         --""" #r1   c                  J   K   t        j                  d       d {    y7 wr3   r-   r	   r
   r   r6   z1BaseTestTaskGroup.test_taskgroup_03.<locals>.foo2]   r0   r1   rD   r5   )
r   r7   r8   r   r.   cancel
assertTrue	cancelledr9   r:   r;   s         r   test_taskgroup_03z#BaseTestTaskGroup.test_taskgroup_03W   s     		 ''))Qtv&B--%%% IIKtv&B *) 	'b) *% *)))sW   C*CC*/CC*C?C*
CAC*CC*C'CC'#C*c                   K   ddd d fdfd}| j                  t              5 }t        j                   |              d {    d d d        | j	                  t        j                        t        h       | j	                  d       | j                         | j                  j                                y 7 y# 1 sw Y   xxY ww)Nr   Fc                  T   K   t        j                  d       d {    ddz   y 7 
wNr+   rI   r   r-   r	   r
   r   r/   z1BaseTestTaskGroup.test_taskgroup_04.<locals>.foo1s   $     --$$$E %   (&(c                     K   	 t        j                  d       d {     dz   y 7 
# t         j                  $ r d w xY ww)NrI   Tr   r.   CancelledErrorNUM	t2_cancels   r   r6   z1BaseTestTaskGroup.test_taskgroup_04.<locals>.foo2w   J     mmA&&& 1HC	 '))  	%   A* (* A* AAc                     K   t        j                         4 d {   } | j                                 | j                                d d d       d {    dz  y 7 F7 # 1 d {  7  sw Y   xY wwN
   r   r7   r8   )r=   rY   r/   r6   r?   s    r   runnerz3BaseTestTaskGroup.test_taskgroup_04.<locals>.runner   s^      "++--df%]]46* .- 2IC	 .----sD   A<A#A<-A'A<A%A<%A<'A9-A0.A95A<)
assertRaisesExceptionGroupr   r8   r9   r   	exceptionZeroDivisionErrorrM   rN   )r<   ra   cmrY   r/   r6   r?   rZ   s      @@@@@r   test_taskgroup_04z#BaseTestTaskGroup.test_taskgroup_04m   s     				 ~."%%fh/// / 	69J8KLa 	"' 0 /.s/   -CCCCA5CCCCc                   K   dddd fdfd}| j                  t              5 }t        j                   |              d {    d d d        | j	                  t        j                        t        h       | j	                  d       | j                         | j                         y 7 k# 1 sw Y   jxY ww)Nr   Fc                  T   K   t        j                  d       d {    ddz   y 7 
wrR   r-   r	   r
   r   r/   zCBaseTestTaskGroup.test_cancel_children_on_child_error.<locals>.foo1   rS   rT   c                     K   	 t        j                  d       d {     dz   y 7 
# t         j                  $ r d w xY ww)N   TrI   rV   rX   s   r   r6   zCBaseTestTaskGroup.test_cancel_children_on_child_error.<locals>.foo2   r[   r\   c                    K   t        j                         4 d {   } | j                                 | j                                 | j                                 | j                                 	 t        j                  d       d {    d d d       d {    dz  y 7 7 # t        j
                  $ r d w xY w7 (# 1 d {  7  sw Y   8xY ww)Nr_   Tr   r7   r8   r   r.   rW   )r=   rY   r/   r6   runner_cancels    r   ra   zEBaseTestTaskGroup.test_cancel_children_on_child_error.<locals>.runner   s      "++--df%df%df%df%!--+++ .- 2IC . ,-- $(M .---si   C"B-C"AC:B1B/B1C""C#C"/B11CCC"CCCC")	rb   rc   r   r8   r9   r   rd   re   rM   )r<   ra   rf   rY   r/   r6   rn   rZ   s      @@@@@r   #test_cancel_children_on_child_errorz5BaseTestTaskGroup.test_cancel_children_on_child_error   s      				$ ~."%%fh/// / 	69J8KLa 	"& 0 /.s/   -CC B>C A'C>C  C	Cc                   K   dfdfd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t         j                        5 }| d {    d d d        | j                  d       y 7 x7 !# 1 sw Y    xY ww)Nr   c                     K   	 t        j                  d       d {    y 7 # t         j                  $ r  dz    w xY wwNrk   rI   rV   rY   s   r   fooz0BaseTestTaskGroup.test_cancellation.<locals>.foo   >     mmA&&&)) q#   A% #% A% ?Ac                     K   t        j                         4 d {   } t        d      D ]  }| j                                  d d d       d {    y 7 ;7 # 1 d {  7  sw Y   y xY ww)Nrk   )r   r7   ranger8   r=   _rt   s     r   ra   z3BaseTestTaskGroup.test_cancellation.<locals>.runner   sM     !++--qAMM#%( " .------sD   A1AA1'AA1AA1A1A."A%#A.*A1r+   rk   	r   r8   r.   assertFalsedonerL   rb   rW   r9   )r<   ra   rrf   rY   rt   s       @@r   test_cancellationz#BaseTestTaskGroup.test_cancellation   s     		)
 )mmC   "	
w556"GG 7 	a  	!
  76s<   ?CB<ACC B>C !C>C  C	Cc                   K   dfdfd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t         j                        5  | d {    d d d        | j                  d       y 7 x7 !# 1 sw Y    xY ww)Nr   c                     K   	 t        j                  d       d {    y 7 # t         j                  $ r  dz    w xY wwrr   rV   rs   s   r   rt   z0BaseTestTaskGroup.test_taskgroup_07.<locals>.foo   ru   rv   c                  `  K   t        j                         4 d {   } t        d      D ]  }| j                                  	 t	        j
                  d       d {    d d d       d {    y 7 Y7 # t        j                  $ r dz   w xY w7 &# 1 d {  7  sw Y   y xY wwNrk   r_   )r   r7   rx   r8   r   r.   rW   )r=   rz   rY   rt   s     r   ra   z3BaseTestTaskGroup.test_taskgroup_07.<locals>.runner   s     !++--qAMM#%( "!--+++ .--
 ,-- 2IC .---sh   B.A6B.'BA: A8!A:%B.0B1B.8A::BBB.B+B" B+'B.r+      r{   )r<   ra   r~   rY   rt   s      @@r   test_taskgroup_07z#BaseTestTaskGroup.test_taskgroup_07   s     	
	 )mmC   "	
w556GG 7 	b! 	!
  76s=   A CB=ACCB?C"C?CC
Cc                   K   d fd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t              5 }| d {    d d d        | j                  t        j                        t        h       y 7 7 9# 1 sw Y   8xY ww)Nc                  j   K   	 t        j                  d       d {    ddz   y 7 
# ddz   w xY wwNr_   rI   r   r-   r	   r
   r   rt   z0BaseTestTaskGroup.test_taskgroup_08.<locals>.foo   1     mmB'''A (A    3) ') 3) 03c                  $  K   t        j                         4 d {   } t        d      D ]  }| j                                  t	        j
                  d       d {    d d d       d {    y 7 X7 7 	# 1 d {  7  sw Y   y xY wwr   r   r7   rx   r8   r   r.   ry   s     r   ra   z3BaseTestTaskGroup.test_taskgroup_08.<locals>.runner  si     !++--qAMM#%( " mmB'''	 .-- (	 .---sV   BA5B?A;A7 A;$B/A90B7A;9B;BBB	Br+   r   r8   r.   r|   r}   rL   rb   rc   r9   r   rd   re   r<   ra   r~   rf   rt   s       @r   test_taskgroup_08z#BaseTestTaskGroup.test_taskgroup_08   s     		( )mmC   "	
~."GG /69J8KL 	!
  /.:   ;CCACC	CC	4CC		CCc                 f  K   d xd d fd}	  |        d {    | j                  d       | j                  j                                | j                  j                                y 7 T# t        $ r*}| j                  t        |      t        h       Y d }~od }~ww xY ww)Nc                  J   K   t        j                  d       d {    y7 wrH   r-   r	   r
   r   r/   z1BaseTestTaskGroup.test_taskgroup_09.<locals>.foo1  rJ   r1   c                  J   K   t        j                  d       d {    y7 wN   r5   r-   r	   r
   r   r6   z1BaseTestTaskGroup.test_taskgroup_09.<locals>.foo2  rJ   r1   c                  :  K   t        j                         4 d {   } | j                                | j                                t        j                  d       d {    ddz   d d d       d {    y 7 c7 7 	# 1 d {  7  sw Y   y xY wwrR   )r   r7   r8   r   r.   r=   r/   r6   r>   r?   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_09.<locals>.runner"  sr     !++--]]46*]]46*mmC(((A	 .-- ) .---sW   BB BAB%B&	B/B:B;BBBBBBBExceptionGroup was not raisedfailrc   r9   r   re   rM   rN   r<   ra   tr/   r6   r>   r?   s      @@@@r   test_taskgroup_09z#BaseTestTaskGroup.test_taskgroup_09  s     R				7(NN II56''  	F_Q/2C1DEE	F>   B1
A; A9A; AB19A; ;	B. B)$B1)B..B1c                 f  K   d xd d fd}	  |        d {    | j                  d       | j                  j                                | j                  j                                y 7 T# t        $ r*}| j                  t        |      t        h       Y d }~od }~ww xY ww)Nc                  J   K   t        j                  d       d {    y7 wrH   r-   r	   r
   r   r/   z1BaseTestTaskGroup.test_taskgroup_10.<locals>.foo18  rJ   r1   c                  J   K   t        j                  d       d {    y7 wr   r-   r	   r
   r   r6   z1BaseTestTaskGroup.test_taskgroup_10.<locals>.foo2<  rJ   r1   c                     K   t        j                         4 d {   } | j                                | j                                ddz   d d d       d {    y 7 F7 # 1 d {  7  sw Y   y xY ww)NrI   r   r`   r   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_10.<locals>.runner@  sX     !++--]]46*]]46*A .------sD   A<A#A<2A'A<A%A<%A<'A9-A0.A95A<r   r   r   s      @@@@r   test_taskgroup_10z#BaseTestTaskGroup.test_taskgroup_104  s     R				7(NN II56''  	F_Q/2C1DEE	Fr   c                   K   d fd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t              5 }| d {    d d d        | j                  t        j                        t        h       | j                  t        |j                  j                  d         t        h       y 7 7 p# 1 sw Y   oxY ww)Nc                  j   K   	 t        j                  d       d {    ddz   y 7 
# ddz   w xY wwr   r-   r	   r
   r   rt   z0BaseTestTaskGroup.test_taskgroup_11.<locals>.fooS  r   r   c                    K   t        j                         4 d {    t        j                         4 d {   } t        d      D ]  }| j                                  t	        j
                  d       d {    d d d       d {    d d d       d {    y 7 7 j7 )7 # 1 d {  7  sw Y   +xY w7 "# 1 d {  7  sw Y   y xY wwr   r   )g2rz   rt   s     r   ra   z3BaseTestTaskGroup.test_taskgroup_11.<locals>.runnerY  s     !++--%//11R"1Xsu- & "--+++	 21 .--1 ,	 2111 .---s   CB"CCB$C?B*<B&=B*CB(CCB?C$C&B*(C*B<	0B31B<	8C?CCC
CCr+   r   r   r8   r.   r|   r}   rL   rb   rc   r9   r   rd   r   re   r   s       @r   test_taskgroup_11z#BaseTestTaskGroup.test_taskgroup_11Q  s     		, )mmC   "	
~."GG / 	68HI)@)@)CDGXFYZ 	!
  /.;   ;DC<ADD C>D A+D>D  D	Dc                   K   d fd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t              5 }| d {    d d d        | j                  t        j                        t        h       | j                  t        |j                  j                  d         t        h       y 7 7 p# 1 sw Y   oxY ww)Nc                  j   K   	 t        j                  d       d {    ddz   y 7 
# ddz   w xY wwr   r-   r	   r
   r   rt   z0BaseTestTaskGroup.test_taskgroup_12.<locals>.foon  r   r   c                    K   t        j                         4 d {   } | j                  t        j                  d             t        j                         4 d {   }t        d      D ]  }|j                                  t        j                  d       d {    d d d       d {    d d d       d {    y 7 7 j7 )7 # 1 d {  7  sw Y   +xY w7 "# 1 d {  7  sw Y   y xY ww)Nr_   rk   )r   r7   r8   r   r.   rx   )g1r   rz   rt   s      r   ra   z3BaseTestTaskGroup.test_taskgroup_12.<locals>.runnert  s     !++--w}}R01%//11R"1Xsu- & "--+++	 21 .-- 2 ,	 2111 .---s   C:CC:=C%CC%!?C C
!C%C%0C1C%5C: C#C:C%
CC%C 	CC 	C%#C:%C7+C.,C73C:r+   r   r   r   s       @r   test_taskgroup_12z#BaseTestTaskGroup.test_taskgroup_12l  s     		, )mmC   "	
~."GG / 	68HI)@)@)CDGXFYZ 	!
  /.r   c                   K   d fd}t        j                   |             }| j                  t              5 }| d {    d d d        | j	                  t        j                        t        h       y 7 7# 1 sw Y   6xY ww)Nc                 ^   K   t        j                  |        d {    t        |       7 wr   r   r.   
ValueErrorr   s    r   crash_afterz8BaseTestTaskGroup.test_taskgroup_13.<locals>.crash_after  '     --"""Q- #   -+-c                    K   t        j                         4 d {   } | j                   d             t        j                         4 d {   }|j                   d             d d d       d {    d d d       d {    y 7 p7 >7 # 1 d {  7  sw Y   )xY w7  # 1 d {  7  sw Y   y xY ww)Nr+   r_   r`   r   r   r   s     r   ra   z3BaseTestTaskGroup.test_taskgroup_13.<locals>.runner  s     !++--{3/0%//11RNN;r?3 21 .-- 21111 .---   B?BB?0B*BB*B,B*7B8B*<B?B(B?B*B*B%	BB%	!B*(B?*B<0B31B<8B?)r   r8   rb   rc   r9   r   rd   r   r<   ra   r~   rf   r   s       @r   test_taskgroup_13z#BaseTestTaskGroup.test_taskgroup_13  sl     	 	4 )~."GG / 	6E  /.s.   8BA;A9A;3B9A;;B Bc                   K   d fd}t        j                   |             }| j                  t              5 }| d {    d d d        | j	                  t        j                        t        h       | j	                  t        |j                  j                  d         t        h       y 7 n# 1 sw Y   mxY ww)Nc                 ^   K   t        j                  |        d {    t        |       7 wr   r   r   s    r   r   z8BaseTestTaskGroup.test_taskgroup_14.<locals>.crash_after  r   r   c                    K   t        j                         4 d {   } | j                   d             t        j                         4 d {   }|j                   d             d d d       d {    d d d       d {    y 7 p7 >7 # 1 d {  7  sw Y   )xY w7  # 1 d {  7  sw Y   y xY ww)Nr_   r+   r`   r   s     r   ra   z3BaseTestTaskGroup.test_taskgroup_14.<locals>.runner  s     !++--{2/%//11RNN;s#34 21 .-- 21111 .---r   r   )	r   r8   rb   rc   r9   r   rd   r   r   r   s       @r   test_taskgroup_14z#BaseTestTaskGroup.test_taskgroup_14  s     	 	5 )~."GG / 	68HI)@)@)CDzlS  /.s/   8B>B2B0B2A*B>0B22B;7B>c                   K   d fd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t              5 }| d {    d d d        | j                  t        j                        t        h       y 7 7 9# 1 sw Y   8xY ww)Nc                  T   K   t        j                  d       d {    ddz   y 7 
wN333333?rI   r   r-   r	   r
   r   
crash_soonz7BaseTestTaskGroup.test_taskgroup_15.<locals>.crash_soon  rS   rT   c                  r  K   t        j                         4 d {   } | j                                 	 t        j                  d       d {    d d d       d {    y 7 I7 # t        j
                  $ r  t        j                  d       d {  7    w xY w7 ?# 1 d {  7  sw Y   y xY wwNr_   g      ?rm   r   r   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_15.<locals>.runner       !++--z|,!--+++ .-- ,-- !--,,,	 .---s   B7A&B7B"A*A(A*B7 B !B7(A**+BBBB" B7"B4(B+)B40B7r+   r   )r<   ra   r~   rf   r   s       @r   test_taskgroup_15z#BaseTestTaskGroup.test_taskgroup_15  s     		 )mmC   "	
~."GG /69J8KL 	!
  /.r   c                   K   d fdfd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t              5 }| d {    d d d        | j                  t        j                        t        h       y 7 7 9# 1 sw Y   8xY ww)Nc                  T   K   t        j                  d       d {    ddz   y 7 
wr   r-   r	   r
   r   r   z7BaseTestTaskGroup.test_taskgroup_16.<locals>.crash_soon  rS   rT   c                  r  K   t        j                         4 d {   } | j                                 	 t        j                  d       d {    d d d       d {    y 7 I7 # t        j
                  $ r  t        j                  d       d {  7    w xY w7 ?# 1 d {  7  sw Y   y xY wwr   rm   r   s    r   nested_runnerz:BaseTestTaskGroup.test_taskgroup_16.<locals>.nested_runner  r   r   c                  Z   K   t        j                                } |  d {    y 7 wr   )r   r8   )r   r   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_16.<locals>.runner  s      ##MO4AGGs    +)+r+   r   )r<   ra   r~   rf   r   r   s       @@r   test_taskgroup_16z#BaseTestTaskGroup.test_taskgroup_16  s     			 )mmC   "	
~."GG /69J8KL 	!
  /.s=   A CCACCCC4CCCCc                   K   dfd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          | j                  t         j                        5  | d {    d d d        | j                  d       y 7 x7 !# 1 sw Y    xY ww)Nr   c                    K   t        j                         4 d {    	 t        j                  d       d {    d d d       d {    y 7 37 # t        j                  $ r  dz    w xY w7 &# 1 d {  7  sw Y   y xY wwr^   )r   r7   r   r.   rW   rs   s   r   ra   z3BaseTestTaskGroup.test_taskgroup_17.<locals>.runner  sl     !++--!--+++ .--+-- 2IC .---sd   BABA3AAAB
A1BAA..A31B3B9A<:BBr+   r_   r{   )r<   ra   r~   rY   s      @r   test_taskgroup_17z#BaseTestTaskGroup.test_taskgroup_17  s     	 )mmC   "	
w556GG 7 	b! 	!
  76s:   :CB6ACB:B8B:C8B::C?Cc                   K   dfd}t        j                   |             }t        j                  d       d {    | j                  |j	                                |j                          	 | d {    | j                  d       | j                  d       y 7 b7 *# t        $ r*}| j                  t        |      t        h       Y d }~Ed }~ww xY ww)Nr   c                    K   t        j                         4 d {    	 t        j                  d       d {    d d d       d {    y 7 37 # t        j                  $ r  dz   t
        w xY w7 +# 1 d {  7  sw Y   y xY wwr^   )r   r7   r   r.   rW   r   rs   s   r   ra   z3BaseTestTaskGroup.test_taskgroup_18.<locals>.runner  sp     !++-- !--+++ .--+--  2IC  K	  .---sd   BABA8AAAB
A6BAA33A86B8B
>B?B
Br+   r   r_   )r   r8   r.   r|   r}   rL   r   rc   r9   r   r   )r<   ra   r~   r   rY   s       @r   test_taskgroup_18z#BaseTestTaskGroup.test_taskgroup_18  s     		  )mmC   "	
	7GG II56b! 	!  	9_Q/88	9sK   :CB 3C2B$ 7B"8B$ <%C"B$ $	C- CCCCc                   K   d d fd}t        j                   |             }	 | d {    | j                  d       y 7 # t        $ r/}| j	                  t        |      t        t        h       Y d }~y d }~ww xY ww)Nc                  T   K   t        j                  d       d {    ddz   y 7 
wrR   r-   r	   r
   r   r   z7BaseTestTaskGroup.test_taskgroup_19.<locals>.crash_soon  rS   rT   c                  j   K   	 t        j                  d       d {    t        7 
# t        xY wwr^   )r   r.   r   r	   r
   r   nestedz3BaseTestTaskGroup.test_taskgroup_19.<locals>.nested  s-     mmB''' (r   c                     K   t        j                         4 d {   } | j                                          d {    d d d       d {    y 7 :7 7 	# 1 d {  7  sw Y   y xY wwr   r`   r=   r   r   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_19.<locals>.runner"  N     !++--jl+h .-- .---V   A2AA2!AAAA2AA2AA2A/#A&$A/+A2zTasgGroupError was not raised)r   r8   r   rc   r9   r   r   re   )r<   ra   r~   r   r   r   s       @@r   test_taskgroup_19z#BaseTestTaskGroup.test_taskgroup_19  sy     			
 )	7GG II56	  	M_Q/%9J1KLL	Ms=   'BA
 AA
 BA
 
	B%A=8B=BBc                    K   d d fd}| j                  t              5   |        d {    d d d        y 7 # 1 sw Y   y xY ww)Nc                  T   K   t        j                  d       d {    ddz   y 7 
wrR   r-   r	   r
   r   r   z7BaseTestTaskGroup.test_taskgroup_20.<locals>.crash_soon0  rS   rT   c                  j   K   	 t        j                  d       d {    t        7 
# t        xY wwr^   r   r.   KeyboardInterruptr	   r
   r   r   z3BaseTestTaskGroup.test_taskgroup_20.<locals>.nested4  s/     (mmB''''' (''r   c                     K   t        j                         4 d {   } | j                                          d {    d d d       d {    y 7 :7 7 	# 1 d {  7  sw Y   y xY wwr   r`   r   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_20.<locals>.runner:  r   r   rb   r   r<   ra   r   r   s     @@r   test_taskgroup_20z#BaseTestTaskGroup.test_taskgroup_20/  sD     		(	
 01(NN 21 21)   "AA?A	AAA
Ac                    K   d d fd}| j                  t              5 } |        d {    d d d        | j                  t        j                        t
        t        h       y 7 <# 1 sw Y   ;xY ww)Nc                  T   K   t        j                  d       d {    ddz   y 7 
wrR   r-   r	   r
   r   r   z8BaseTestTaskGroup.test_taskgroup_20a.<locals>.crash_soonC  rS   rT   c                  j   K   	 t        j                  d       d {    t        7 
# t        xY wwr^   r   r.   r   r	   r
   r   r   z4BaseTestTaskGroup.test_taskgroup_20a.<locals>.nestedG  -      mmB''' (r   c                     K   t        j                         4 d {   } | j                                          d {    d d d       d {    y 7 :7 7 	# 1 d {  7  sw Y   y xY wwr   r`   r   s    r   ra   z4BaseTestTaskGroup.test_taskgroup_20a.<locals>.runnerM  r   r   )rb   BaseExceptionGroupr9   r   rd   r   re   r<   ra   rf   r   r   s      @@r   test_taskgroup_20az$BaseTestTaskGroup.test_taskgroup_20aB  si     		 	
 12b(NN 3 	BLL)I7H+I	
  32+   "A<A0A.A08A<.A00A95A<c                    K   d d fd}| j                  t              5   |        d {    d d d        y 7 # 1 sw Y   y xY ww)Nc                  T   K   t        j                  d       d {    t        7 
wNr+   r   r	   r
   r   r   z8BaseTestTaskGroup._test_taskgroup_21.<locals>.crash_soona  s#     --$$$## %rT   c                  j   K   	 t        j                  d       d {    t        7 
# t        xY wwr^   r   r.   	TypeErrorr	   r
   r   r   z4BaseTestTaskGroup._test_taskgroup_21.<locals>.nestede  r   r   c                     K   t        j                         4 d {   } | j                                          d {    d d d       d {    y 7 :7 7 	# 1 d {  7  sw Y   y xY wwr   r`   r   s    r   ra   z4BaseTestTaskGroup._test_taskgroup_21.<locals>.runnerk  r   r   r   r   s     @@r   _test_taskgroup_21z$BaseTestTaskGroup._test_taskgroup_21Y  sD     	$	 	
 01(NN 21 21r   c                    K   d d fd}| j                  t              5 } |        d {    d d d        | j                  t        j                        t
        t        h       y 7 <# 1 sw Y   ;xY ww)Nc                  T   K   t        j                  d       d {    t        7 
wr   r   r	   r
   r   r   z8BaseTestTaskGroup.test_taskgroup_21a.<locals>.crash_soonu  s"     --$$$O %rT   c                  j   K   	 t        j                  d       d {    t        7 
# t        xY wwr^   r   r	   r
   r   r   z4BaseTestTaskGroup.test_taskgroup_21a.<locals>.nestedy  r   r   c                     K   t        j                         4 d {   } | j                                          d {    d d d       d {    y 7 :7 7 	# 1 d {  7  sw Y   y xY wwr   r`   r   s    r   ra   z4BaseTestTaskGroup.test_taskgroup_21a.<locals>.runner  r   r   )rb   r   r9   r   rd   r   r   r   s      @@r   test_taskgroup_21az$BaseTestTaskGroup.test_taskgroup_21as  se     		 	
 12b(NN 3 	6I8NO  32r   c                 :  K   d d fd}t        j                   |             }t        j                  d       d {    |j                          | j	                  t         j
                        5  | d {    d d d        y 7 G7 # 1 sw Y   y xY ww)Nc                  J   K   t        j                  d       d {    y7 wrH   r-   r	   r
   r   r/   z1BaseTestTaskGroup.test_taskgroup_22.<locals>.foo1  rJ   r1   c                  J   K   t        j                  d       d {    y7 wr   r-   r	   r
   r   r6   z1BaseTestTaskGroup.test_taskgroup_22.<locals>.foo2  rJ   r1   c                     K   t        j                         4 d {   } | j                                 | j                                 d d d       d {    y 7 A7 # 1 d {  7  sw Y   y xY wwr   r`   )r=   r/   r6   s    r   ra   z3BaseTestTaskGroup.test_taskgroup_22.<locals>.runner  sM     !++--df%df% .------sD   A7AA7-A"A7A A7 A7"A4(A+)A40A7g?)r   r8   r.   rL   rb   rW   )r<   ra   r~   r/   r6   s      @@r   test_taskgroup_22z#BaseTestTaskGroup.test_taskgroup_22  s|     			&
 )mmD!!!	
w556GG 76 	"  76s;   ?BB3B7B=B>B
BBBBc                   K   d }t        j                         4 d {   }t        d      D ]a  }t        j                  d       d {    |j                   |d             |dk(  s=| j                  t        |j                        d       c t        j                  d       d {    | j                  t        |j                        d       d d d       d {    y 7 7 7 >7 # 1 d {  7  sw Y   y xY ww)Nc                 J   K   t        j                  |        d {    y 7 wr   r-   delays    r   do_jobz3BaseTestTaskGroup.test_taskgroup_23.<locals>.do_job       --&&&r1   r_   r+   r   rk   g?r   )
r   r7   rx   r   r.   r8   
assertLesslen_tasksr9   )r<   r  r=   counts       r   test_taskgroup_23z#BaseTestTaskGroup.test_taskgroup_23  s     	' ''))QrmmC(((fSk*A:OOCM15	 #
 --%%%S]A. *))( & *)))sn   DC%D'C-	C'
 C-+?C-*C)+)C-DC+ D'C-)C-+D-C?3C64C?;Dc                 L   K   fdd fd} |        d {    y 7 w)Nc                    K   t        j                  d       d {    | j                   d             | j                   d             y 7 3w)Nr+   r4   r   r.   r8   )r=   coro1s    r   rootz1BaseTestTaskGroup.test_taskgroup_24.<locals>.root  s>     --$$$MM%*%MM%*% %s   AA4Ac                 J   K   t        j                  |        d {    y 7 wr   r-   r	  s    r   r  z2BaseTestTaskGroup.test_taskgroup_24.<locals>.coro1  r  r1   c                     K   t        j                         4 d {   } | j                   |              d d d       d {    y 7 ,7 # 1 d {  7  sw Y   y xY wwr   r`   )r=   r  s    r   ra   z3BaseTestTaskGroup.test_taskgroup_24.<locals>.runner  sA     !++--d1g& .------sC   A"A	A"AA"AA"A"AAAA"r	   )r<   ra   r  r  s     @@r   test_taskgroup_24z#BaseTestTaskGroup.test_taskgroup_24  s!     	&
	'	' hs   $"$c                 &  K   dfdfdfd}| j                  t              5 } |        d {    d d d        | j                  t        j                        t
        h       | j                  d       y 7 I# 1 sw Y   HxY ww)Nr   c                    K   dz  t        j                  d       d {    | j                   |              | j                   |              y 7 3w)NrI   g{Gz?r  )r=   hydranhydrass    r   r  z2BaseTestTaskGroup.test_taskgroup_25.<locals>.hydra  sG     qLG--%%%MM%(#MM%(# &s   AA4Ac                  l   K    dk  r#t        j                  d       d {     dk  r#ddz   y 7 w)Nr_   gQ?rI   r   r-   )r  s   r   herculesz5BaseTestTaskGroup.test_taskgroup_25.<locals>.hercules  s5     B,mmE*** B,E +s   42	44c                     K   t        j                         4 d {   } | j                   |              | j                                 d d d       d {    y 7 B7 # 1 d {  7  sw Y   y xY wwr   r`   )r=   r  r  s    r   ra   z3BaseTestTaskGroup.test_taskgroup_25.<locals>.runner  sO     !++--eAh'hj) .------sD   A8AA8.A#A8A!A8!A8#A5)A,*A51A8r_   )rb   rc   r9   r   rd   re   assertGreaterEqual)r<   ra   rf   r  r  r  s      @@@r   test_taskgroup_25z#BaseTestTaskGroup.test_taskgroup_25  sx     	$	
	*
 ~."(NN / 	69J8KL,  /.s,   )BBBBABBB
Bc                   K   d }t        j                         4 d {   }|j                   |       d      }| j                  |j	                         d       d d d       d {    y 7 M7 # 1 d {  7  sw Y   y xY ww)Nc                  J   K   t        j                  d       d {    y 7 wNr   r-   r	   r
   r   coroz8BaseTestTaskGroup.test_taskgroup_task_name.<locals>.coro  s     --"""r1   yolo)name)r   r7   r8   r9   get_name)r<   r&  r=   r   s       r   test_taskgroup_task_namez*BaseTestTaskGroup.test_taskgroup_task_name  s_     	#''))Qdf62AQZZ\62 *))))))sD   BA,B9A0B&A.'B.B0B6A97B>Bc                 N  K   t        j                  d      fd}t        j                         4 d {   }t        j                         }| j                  |j                               |j                   |d      |      }| d {    | j                  d|j                               |j                   |d      |      }| d {    | j                  d|j                               d d d       d {    y 7 7 |7 :7 # 1 d {  7  sw Y   y xY ww)Ncvarc                 n   K   t        j                  d       d {    j                  |        y 7 wr%  )r   r.   set)valr,  s    r   r&  z;BaseTestTaskGroup.test_taskgroup_task_context.<locals>.coro  s)     --"""HHSM #s   535rI   )contextr   )	contextvars
ContextVarr   r7   copy_contextassertIsNonegetr8   r9   )r<   r&  r=   ctxr>   r?   r,  s         @r   test_taskgroup_task_contextz-BaseTestTaskGroup.test_taskgroup_task_context  s     %%f-	 ''))Q**,Ccggdm,tAw4BHHQ.tAw4BHHQ. *))   *)))sj   3D%DD%ADD
ADD%D7D%DD%
DDD%D"DD"D%c                    K   d  fd} j                  t              5 }t        j                         4 d {   }|j	                                 |j	                   ||             d d d       d {    d d d         j                  t        j                        t        h       y 7 t7 9# 1 d {  7  sw Y   IxY w# 1 sw Y   MxY ww)Nc                  T   K   t        j                  d       d {    ddz   y 7 
w)NgMbP?rI   r   r-   r	   r
   r   r  zLBaseTestTaskGroup.test_taskgroup_no_create_task_after_failure.<locals>.coro1  s$     --&&&E 'rT   c                 r  K   	 t        j                  d       d {    y 7 # t         j                  $ r| j                  t              5  | j                          x}       d d d        n# 1 sw Y   nxY wj                  t              5   d {  7   d d d        Y y # 1 sw Y   Y y xY ww xY ww)NrI   )r   r.   rW   rb   RuntimeErrorr8   re   )r=   c1r  r<   s     r   coro2zLBaseTestTaskGroup.test_taskgroup_no_create_task_after_failure.<locals>.coro2  s     mmA&&&)) &&|4MM-"0 544 &&'89HH :99	ss   B7% #% B7% (B4A/&	B4/A8	4B4B&BB&B4$B7&B0	+B4.B70B44B7)	rb   rc   r   r7   r8   r9   r   rd   re   )r<   r=  rf   r=   r  s   `   @r   +test_taskgroup_no_create_task_after_failurez=BaseTestTaskGroup.test_taskgroup_no_create_task_after_failure  s     		 ~."!++--eg&eAh' .- /
 	69J8KL	 .---- /.sb   CC
B1C
 .B5.C
9B3:C
>3C1C
3C
5C	;B><C	C

CCc                     K    G d dt               fdt        j                  fd        fd}t        j                   |              d {    y 7 w)Nc                       e Zd Zy)UBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.CustomExceptionNr   r	   r
   r   CustomExceptionrA        r
   rB  c                     K    wr   r	   rB  s   r   	raise_exczOBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.raise_exc	  s     !!   c                 (   K   	 d   #  xY wwr   r	   rE  s   r   databasezNBaseTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.database  s     &%%o%s    c            	        K   t        j                         } 	 t        j                         4 d {   }        4 d {    |j	                                 t        j
                  d       d {    d d d       d {    d d d       d {    j                  d       y 7 y7 k7 :7 ,# 1 d {  7  sw Y   <xY w7 3# 1 d {  7  sw Y   CxY w# g x% xQ}j                  | j                         d       j                  t        |j                        d       d }~nd }~ nn x Y y cY w xY ww)NrI   r   r   zCustomException not raised)r   current_taskr   r7   r8   r.   r9   
cancellingr  r   r   )tasktgerrrB  rI  rF  r<   s      r   mainzJBaseTestTaskGroup.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89s   EC B+C C
B-C
/B34B/5B39C
B1C
	C CC E+C -C
/B31C
3C	9B<:C	C
C 
CCCC E'AD0	,E=E)	Exception
contextlibasynccontextmanagerr   r8   )r<   rP  rB  rI  rF  s   ` @@@r   *test_taskgroup_context_manager_exit_raisesz<BaseTestTaskGroup.test_taskgroup_context_manager_exit_raises  sO     	i 		" 
	'	'	& 
(	&	8 !!$&)))s   AA AA c           	      \  K   t        j                         }|4 d {    | j                  t        d      5  |4 d {    	 d d d       d {    d d d        d d d       d {    y 7 P7 07 !# 1 d {  7  sw Y   1xY w# 1 sw Y   5xY w7 ,# 1 d {  7  sw Y   y xY wwNzhas already been enteredr   r7   assertRaisesRegexr;  r<   rN  s     r   test_taskgroup_already_enteredz0BaseTestTaskGroup.test_taskgroup_already_entered#  sm     !!#2''6PQ2 2 R 222222 RQ 222s   B,A.B,BB	A0
 B	A4B	A2B	BB,(B)B,0B	2B	4B:A=;BB		B	BB,B)B B)%B,c                 ^  K   t        j                         }|4 d {    	 d d d       d {    | j                  t        d      5  |4 d {    	 d d d       d {    d d d        y 7 Q7 B# 1 d {  7  sw Y   RxY w7 77 (# 1 d {  7  sw Y   8xY w# 1 sw Y   y xY wwrV  rW  rY  s     r   test_taskgroup_double_enterz-BaseTestTaskGroup.test_taskgroup_double_enter*  su     !!#2 2##L2LMr r NM 2222 rrrr NMs   B-A/B-A3B-A1B-	B!BB!BB!!B
"B!&
B-1B-3B9A<:BB-B!
B!B	BB	B!!B*&B-c                 X  K   t        j                         }|4 d {    	 d d d       d {    t        j                  d      }| j	                  t
        d      5  |j                  |       d d d        | d {    y 7 e7 V# 1 d {  7  sw Y   fxY w# 1 sw Y   -xY w7 *w)Nr   zis finishedr   r7   r   r.   rX  r;  r8   r<   rN  r&  s      r   test_taskgroup_finishedz)BaseTestTaskGroup.test_taskgroup_finished2  s{     !!#2 2}}Q##L-@NN4  A 

 2222 A@ 	se   B*BB*BB*B/B*B0B*=B(>B*B*BBBB*B%!B*c                    K   t        j                         }t        j                  d      }| j	                  t
        d      5  |j                  |       d d d        | d {    y # 1 sw Y   xY w7 w)Nr   has not been enteredr^  r_  s      r   test_taskgroup_not_enteredz,BaseTestTaskGroup.test_taskgroup_not_entered<  s]     !!#}}Q##L2HINN4  J 

 JI 	s*   A A5A'A5!A3"A5'A0,A5c                   K   t        j                         }| j                  t        d      5  t	        |j                                d {    d d d        t        j                  d      }| j                  t        d      5  |j                  |       d d d        | d {    y 7 \# 1 sw Y   [xY w# 1 sw Y   "xY w7 w)Nzparent taskr   rb  )	r   r7   rX  r;  r   
__aenter__r   r.   r8   r_  s      r   "test_taskgroup_without_parent_taskz4BaseTestTaskGroup.test_taskgroup_without_parent_taskD  s     !!###L-@$R]]_555 A}}Q##L2HINN4  J 

 6 A@ JI 	sR   +CB)
B'B)3CB5C!C"C'B))B2.C5B>:Cc                 >  K   t        j                         }d} G d dt              }	 |4 d{    |7 # 1 d{  7  sw Y   nxY wn# t        $ r}|}Y d}~nd}~ww xY w| j	                  |       | j                  t        j                  |      g        yw)zITest that TaskGroup doesn't keep a reference to the raised ExceptionGroupNc                       e Zd Zy)@BaseTestTaskGroup.test_exception_refcycles_direct.<locals>._DoneNr   r	   r
   r   _Doneri  S  rC  r
   rj  )r   r7   rQ  rc   assertIsNotNoneassertListEqualr   get_referrers)r<   rN  r   rj  es        r   test_exception_refcycles_directz1BaseTestTaskGroup.test_exception_refcycles_directN  s      	I 		r rrrr 	C	 	S!R--c2B7sU   &BA 6A 8A A
AA
A B	A#ABA##:Bc                 p  K   t        j                         }d} G d dt              }	 |4 d{    |7 # 1 d{  7  sw Y   nxY wn0# g x|% x}|j                  d   }d}~nd}~ nn x Y ncY w xY w| j	                  ||       | j                  t        j                  |      g        yw)z<Test that TaskGroup deletes self._errors, and __aexit__ argsNc                       e Zd Zy)@BaseTestTaskGroup.test_exception_refcycles_errors.<locals>._DoneNr   r	   r
   r   rj  rr  e  rC  r
   rj  r   )r   r7   rQ  r   assertIsInstancerl  r   rm  )r<   rN  r   rj  excss        r   test_exception_refcycles_errorsz1BaseTestTaskGroup.test_exception_refcycles_errors`  s      	I 		%r rrrr	% 	%//!$CC	% 	c5)R--c2B7sP   &B6A 6A 8A A
AA
A B6A;A)	%A;6A B6c                   K   t        j                         d} G d dt              fd}	 t        j                         4 d{   }|j                   |              ddd      d{    | j                  |       | j                  t        j                  |      g        y7 b7 ># 1 d{  7  sw Y   NxY w# g x% x(}|j                  d   j                  d   }d}~nd}~ nn x Y cY w xY ww)z-Test that TaskGroup deletes self._parent_taskNc                       e Zd Zy)EBaseTestTaskGroup.test_exception_refcycles_parent_task.<locals>._DoneNr   r	   r
   r   rj  rx  w  rC  r
   rj  c                  T   K   4 d {     7 # 1 d {  7  sw Y   y xY wwr   r	   rj  rN  s   r   coro_fnzGBaseTestTaskGroup.test_exception_refcycles_parent_task.<locals>.coro_fnz       r rrr$   (((%%(r   )	r   r7   rQ  r8   r   rs  rl  r   rm  )r<   r   r{  tg2rt  rj  rN  s        @@r   $test_exception_refcycles_parent_taskz6BaseTestTaskGroup.test_exception_refcycles_parent_taskr  s      	I 			3((**c	* +*
 	c5)R--c2B7 +****	3 	3//!$//2CC	3sp   ,DC 	B,
C B0$C /B.0C 48D,C .C 0C6B97C>C C?C-	)C?:Dc                   K   t        j                         d} G d dt              fd}t               5  	 t        j                         4 d{   }t	        j
                  |j                   |                   }ddd      d{    ddd       | j                                 | j                  |       | j                  t        j                  |      g        y7 7 \# 1 d{  7  sw Y   lxY w# g x% x(}|j                  d   j                  d   }d}~nd}~ nn x Y cY w xY w# 1 sw Y   xY ww)zLTest that TaskGroup deletes self._parent_task and create_task() deletes taskNc                       e Zd Zy)HBaseTestTaskGroup.test_exception_refcycles_parent_task_wr.<locals>._DoneNr   r	   r
   r   rj  r    rC  r
   rj  c                  T   K   4 d {     7 # 1 d {  7  sw Y   y xY wwr   r	   rz  s   r   r{  zJBaseTestTaskGroup.test_exception_refcycles_parent_task_wr.<locals>.coro_fn  r|  r}  r   )r   r7   rQ  r%   weakrefrefr8   r   r4  rs  rl  r   rm  )r<   r   r{  r~  task_wrrt  rj  rN  s         @@r   'test_exception_refcycles_parent_task_wrz9BaseTestTaskGroup.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   6E
D>DC(D*C,DC*DAE
(D*D,C>	2C53C>	:DD;	D)%D;6D>>EE
c                 <  K   t        j                         }d}	 t        j                  d      4 d{    |4 d{    t        j                  d       d{    ddd      d{    ddd      d{    | j                  |t         j                         | j                  t        j                  |      g        y7 7 7 n7 `# 1 d{  7  sw Y   pxY w7 g# 1 d{  7  sw Y   wxY w# t        $ r}|j
                  }Y d}~d}~ww xY ww)z8Test that TaskGroup deletes propagate_cancellation_errorNr   )r   r7   timeoutr.   TimeoutError	__cause__rs  rW   rl  r   rm  )r<   rN  r   rn  s       r   5test_exception_refcycles_propagate_cancellation_errorzGBaseTestTaskGroup.test_exception_refcycles_propagate_cancellation_error  s      	r**2!--*** 2 +* 	c7#9#9:R--c2B7 +* 222 +***  	++C	s   DC: CC: C%CC%CC
C C%+C,C%0C: ;C#<C:  ADC: C%
CC%C 	CC 	C%#C: %C7+C.,C73C: :	DDDDDc                 6  K    G d dt               }t        j                         }d}	 |4 d{    |7 # 1 d{  7  sw Y   nxY wn# |$ r}|}Y d}~nd}~ww xY w| j                  |       | j	                  t        j                  |      g        yw)z,Test that TaskGroup deletes self._base_errorc                       e Zd Zy)RBaseTestTaskGroup.test_exception_refcycles_base_error.<locals>.MyKeyboardInterruptNr   r	   r
   r   MyKeyboardInterruptr    rC  r
   r  N)r   r   r7   rk  rl  r   rm  )r<   r  rN  r   rn  s        r   #test_exception_refcycles_base_errorz5BaseTestTaskGroup.test_exception_refcycles_base_error  s     	"3 	  	r)) rrrr" 	C	 	S!R--c2B7sU   &BA 6A 8A A
AA
A BAABA:Bc                    K   d G d dt               d }	 t        j                         4 d {   fd fd}j                   |              d d d       d {     j                          j                  |       y 7 [7 *# 1 d {  7  sw Y   :xY w# g x% x}|j                  d   }d }~nd }~ nn x Y gcY w xY ww)NFc                       e Zd Zy)OBaseTestTaskGroup.test_cancels_task_if_created_during_creation.<locals>.MyErrorNr   r	   r
   r   MyErrorr    rC  r
   r  c                     K     d      w)Nzthird task failedr	   r  s   r   
third_taskzRBaseTestTaskGroup.test_cancels_task_if_created_during_creation.<locals>.third_task  s     !"566s   	c                  &  K   j                                 j                  t        j                        5  t        j                  d       d {    t        j                  d       d {    d d d        d y 7 ,7 # 1 sw Y   d y xY ww)Nr   T)r8   rb   r   rW   r.   )ranr<   rN  r  s   r   second_taskzSBaseTestTaskGroup.test_cancels_task_if_created_during_creation.<locals>.second_task  sq     NN:<0**7+A+AB%mmA...%mmA... C C /. C Cs@   6BBA?B/B0B4B?BBB	Br   )rQ  r   r7   r8   r   rM   rs  )r<   r   r  rt  r  r  rN  r  s   `   @@@@r   ,test_cancels_task_if_created_during_creationz>BaseTestTaskGroup.test_cancels_task_if_created_during_creation  s     	i 	 	%((**b7 {}- +*  	c7+# +****	% 	%//!$CC	%sm   CB) BB) $BB) 'B(B) ,$CB) B) B&BB&"B) )C1C	 CCc                   K    G d dt               fd}	 t        j                         4 d {   }|j                   |              d d d       d {    | j	                  d       t        j
                  d       d {    y 7 Y7 5# 1 d {  7  sw Y   ExY w# g x% x n nn x Y LcY w xY w7 9w)Nc                       e Zd Zy)LBaseTestTaskGroup.test_cancellation_does_not_leak_out_of_tg.<locals>.MyErrorNr   r	   r
   r   r  r    rC  r
   r  c                     K    wr   r	   r  s   r   throw_errorzPBaseTestTaskGroup.test_cancellation_does_not_leak_out_of_tg.<locals>.throw_error  s     MrG  z'should have raised one MyError in groupr   )rQ  r   r7   r8   r   r.   )r<   r  rN  r  s      @r   )test_cancellation_does_not_leak_out_of_tgz;BaseTestTaskGroup.test_cancellation_does_not_leak_out_of_tg  s     	i 			A((**b{}- +*
 II?@ mmA +****	 	D	 	sm   CB$ BB$ BB$ BB$ )CB?CB$ B$ B!BB!B$ $B<7	CN)/r   r   r   r@   rE   rO   rg   ro   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r"  r*  r7  r>  rT  rZ  r\  r`  rc  rf  ro  ru  r  r  r  r  r  r  r	   r
   r   r'   r'   2   s    *"*$*,#(J-'^!6 "DM0(<(:[6[:F&T(M0M8",":70&
.4P,,/ -43/"M**>8$8$8,8.88",6r
   r'   win32c                       e Zd ZdZd Zy)IsolatedAsyncioTestCaseNc                 T    t        j                  d| j                        }|| _        y )NT)debugloop_factory)r   Runnerr  _asyncioRunner)r<   ra   s     r   _setupAsyncioRunnerz+IsolatedAsyncioTestCase._setupAsyncioRunner  s     d9J9JK$r
   )r   r   r   r  r  r	   r
   r   r  r    s    L%r
   r  c                       e Zd ZeZy)TestTaskGroupN)r   r   r   	EventLoopr  r	   r
   r   r  r    s    Lr
   r  c                       e Zd Zed        Zy)TestEagerTaskTaskGroupc                  X    t               } | j                  t        j                         | S r   )r  set_task_factoryr   eager_task_factory)loops    r   r  z#TestEagerTaskTaskGroup.loop_factory  s"    {g889r
   N)r   r   r   staticmethodr  r	   r
   r   r  r    s     r
   r  __main__)r  sysr   r   r1  rR  r   unittesttest.test_asyncio.utilsr   r   rQ  r   BaseExceptionr   r   r#   contextmanagerr%   r'   platformProactorEventLoopr  SelectorEventLoopr  r  r  r   rP  r	   r
   r   <module>r     s     
 	      6(	I 		 	0 * *{ {| <<7))I))I%h>> %%'> .0G  zHMMO r
   