
    7\h.\                         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 G d
 dej                  Zedk    r ej                     dS dS )    N)
taskgroups)await_without_taskc                  .    t          j        d            d S N)asyncioset_event_loop_policy     K/opt/python-3.11.14/usr/lib/python3.11/test/test_asyncio/test_taskgroups.pytearDownModuler      s    !$'''''r
   c                       e Zd ZdS )MyExcN__name__
__module____qualname__r	   r
   r   r   r              Dr
   r   c                       e Zd ZdS )	MyBaseExcNr   r	   r
   r   r   r      r   r
   r   c                 $    d | j         D             S )Nc                 ,    h | ]}t          |          S r	   )type).0excs     r   	<setcomp>z"get_error_types.<locals>.<setcomp>   s    ///#DII///r
   )
exceptions)egs    r   get_error_typesr      s    //////r
   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%S )&TestTaskGroupc                   K   d }d }t          j                    4 d {V }|                     |                      }|                     |                      }d d d           d {V  n# 1 d {V swxY w Y   |                     |                                d           |                     |                                d           d S )Nc                  >   K   t          j        d           d {V  dS N皙?*   r   sleepr	   r
   r   foo1z-TestTaskGroup.test_taskgroup_01.<locals>.foo1#   -      -$$$$$$$$$2r
   c                  >   K   t          j        d           d {V  dS N皙?   r&   r	   r
   r   foo2z-TestTaskGroup.test_taskgroup_01.<locals>.foo2'   r)   r
   r%   r-   )r   	TaskGroupcreate_taskassertEqualresultselfr(   r.   gt1t2s         r   test_taskgroup_01zTestTaskGroup.test_taskgroup_01!   sS     	 	 		 	 	 ')) 	' 	' 	' 	' 	' 	' 	'Qttvv&&Bttvv&&B	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	b)))b)))))s   ;A//
A9<A9c                   K   d }d }t          j                    4 d {V }|                     |                      }t          j        d           d {V  |                     |                      }d d d           d {V  n# 1 d {V swxY w Y   |                     |                                d           |                     |                                d           d S )Nc                  >   K   t          j        d           d {V  dS r#   r&   r	   r
   r   r(   z-TestTaskGroup.test_taskgroup_02.<locals>.foo14   r)   r
   c                  >   K   t          j        d           d {V  dS r+   r&   r	   r
   r   r.   z-TestTaskGroup.test_taskgroup_02.<locals>.foo28   r)   r
   333333?r%   r-   )r   r/   r0   r   r'   r1   r2   r3   s         r   test_taskgroup_02zTestTaskGroup.test_taskgroup_022   su     	 	 		 	 	 ')) 	' 	' 	' 	' 	' 	' 	'Qttvv&&B-%%%%%%%%%ttvv&&B	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'
 	b)))b)))))s   AB		
BBc                   K   d }d }t          j                    4 d {V }|                     |                      }t          j        d           d {V  |                                 |                     |                      }d d d           d {V  n# 1 d {V swxY w Y   |                     |                                           |                     |	                                d           d S )Nc                  >   K   t          j        d           d {V  dS N   r%   r&   r	   r
   r   r(   z-TestTaskGroup.test_taskgroup_03.<locals>.foo1F   -      -"""""""""2r
   c                  >   K   t          j        d           d {V  dS r+   r&   r	   r
   r   r.   z-TestTaskGroup.test_taskgroup_03.<locals>.foo2J   r)   r
   r<   r-   )
r   r/   r0   r   r'   cancel
assertTrue	cancelledr1   r2   r3   s         r   test_taskgroup_03zTestTaskGroup.test_taskgroup_03D   s     	 	 		 	 	 ')) 	' 	' 	' 	' 	' 	' 	'Qttvv&&B-%%%%%%%%% IIKKKttvv&&B	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	' 	'''b)))))s   A)B
B'*B'c                   K   ddd d fdfd}|                      t                    5 }t          j         |                       d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t          h           |                     d           |                                |                     	                                           d S )Nr   Fc                  H   K   t          j        d           d {V  ddz   d S Nr$   rA   r   r&   r	   r
   r   r(   z-TestTaskGroup.test_taskgroup_04.<locals>.foo1`   5      -$$$$$$$$$EEEEr
   c                  z   K   	 t          j        d           d {V  n# t           j        $ r d w xY w dz   d S )NrA   Tr   r'   CancelledErrorNUM	t2_cancels   r   r.   z-TestTaskGroup.test_taskgroup_04.<locals>.foo2d   f      mA&&&&&&&&&&)    	 1HCCC     3c                    K   t          j                    4 d {V } |                                             |                                            d d d           d {V  n# 1 d {V swxY w Y   dz  d S N
   r   r/   r0   )r5   rP   r(   r.   r7   s    r   runnerz/TestTaskGroup.test_taskgroup_04.<locals>.runnerm   s      "+-- + + + + + + +ddff%%%]]4466**+ + + + + + + + + + + + + + + + + + + + + + + + + + + 2ICCCs   ;A**
A47A4)
assertRaisesExceptionGroupr   r0   r1   r   	exceptionZeroDivisionErrorrE   rF   )r4   rX   cmrP   r(   r.   r7   rQ   s      @@@@@r   test_taskgroup_04zTestTaskGroup.test_taskgroup_04Z   sn     		 	 		 	 	 	 	 		 	 	 	 	 	 	 	 ~.. 	0"%ffhh/////////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	669J8KLLLa   	"""'''''   #A((A,/A,c                   K   dddd fdfd}|                      t                    5 }t          j         |                       d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t          h           |                     d           |                                |                                d S )Nr   Fc                  H   K   t          j        d           d {V  ddz   d S rJ   r&   r	   r
   r   r(   z?TestTaskGroup.test_cancel_children_on_child_error.<locals>.foo1   rK   r
   c                  z   K   	 t          j        d           d {V  n# t           j        $ r d w xY w dz   d S )N   TrA   rM   rO   s   r   r.   z?TestTaskGroup.test_cancel_children_on_child_error.<locals>.foo2   rR   rS   c                    K   t          j                    4 d {V } |                                             |                                             |                                             |                                             	 t          j        d           d {V  n# t          j        $ r d w xY w	 d d d           d {V  n# 1 d {V swxY w Y   dz  d S )NrV   Tr   r/   r0   r   r'   rN   )r5   rP   r(   r.   runner_cancels    r   rX   zATestTaskGroup.test_cancel_children_on_child_error.<locals>.runner   s      "+-- 	 	 	 	 	 	 	ddff%%%ddff%%%ddff%%%ddff%%%!-++++++++++-   $(M ,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 2ICCCs*   A5CB.-C.CC
C!$C!)	rY   rZ   r   r0   r1   r   r[   r\   rE   )r4   rX   r]   rP   r(   r.   rf   rQ   s      @@@@@r   #test_cancel_children_on_child_errorz1TestTaskGroup.test_cancel_children_on_child_error   sh      		 	 		 	 	 	 	 		 	 	 	 	 	 	 	$ ~.. 	0"%ffhh/////////	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	0 	669J8KLLLa   	"""&&&&&r_   c                   K   dfdfd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t           j                  5 }| d {V  d d d            n# 1 swxY w Y   |                     d           d S )Nr   c                  t   K   	 t          j        d           d {V  d S # t           j        $ r  dz    w xY wNrc   rA   rM   rP   s   r   fooz,TestTaskGroup.test_cancellation.<locals>.foo   ^      mA&&&&&&&&&&&)   q   ! 7c                     K   t          j                    4 d {V } t          d          D ]}|                                              	 d d d           d {V  d S # 1 d {V swxY w Y   d S )Nrc   )r   r/   ranger0   r5   _rl   s     r   rX   z/TestTaskGroup.test_cancellation.<locals>.runner   s     !+-- ) ) ) ) ) ) )q ) )AMM##%%(((()) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   0A!!
A+.A+r$   rc   	r   r0   r'   assertFalsedonerD   rY   rN   r1   )r4   rX   rr]   rP   rl   s       @@r   test_cancellationzTestTaskGroup.test_cancellation   s:     	 	 	 	 		) 	) 	) 	) 	)
 ))mC         """	


w566 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	a     s   !	B66B:=B:c                   K   dfdfd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t           j                  5  | d {V  d d d            n# 1 swxY w Y   |                     d           d S )Nr   c                  t   K   	 t          j        d           d {V  d S # t           j        $ r  dz    w xY wrj   rM   rk   s   r   rl   z,TestTaskGroup.test_taskgroup_07.<locals>.foo   rm   rn   c                  R  K   t          j                    4 d {V } t          d          D ]}|                                              	 t	          j        d           d {V  n# t          j        $ r dz   w xY w	 d d d           d {V  d S # 1 d {V swxY w Y   d S Nrc   rV   )r   r/   rp   r0   r   r'   rN   )r5   rr   rP   rl   s     r   rX   z/TestTaskGroup.test_taskgroup_07.<locals>.runner   sZ     !+--       q ) )AMM##%%((((!-++++++++++-   2IC ,                             s)   0BA)(B)A??B
B #B r$      rs   )r4   rX   rv   rP   rl   s      @@r   test_taskgroup_07zTestTaskGroup.test_taskgroup_07   sB     	 	 	 	 	
	 
	 
	 
	 
	 
	 ))mC         """	


w566 	 	GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!!!s   "	B77B;>B;c                   K   d fd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j
                  t          h           d S )Nc                  ^   K   	 t          j        d           d {V  ddz   d S # ddz   w xY wNrV   rA   r   r&   r	   r
   r   rl   z,TestTaskGroup.test_taskgroup_08.<locals>.foo   H      mB'''''''''AA   % ,c                    K   t          j                    4 d {V } t          d          D ]}|                                              t	          j        d           d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S r{   r   r/   rp   r0   r   r'   rq   s     r   rX   z/TestTaskGroup.test_taskgroup_08.<locals>.runner   s#     !+-- ( ( ( ( ( ( (q ) )AMM##%%((((mB'''''''''	( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   A
A::
BBr$   r   r0   r'   rt   ru   rD   rY   rZ   r1   r   r[   r\   r4   rX   rv   r]   rl   s       @r   test_taskgroup_08zTestTaskGroup.test_taskgroup_08   s3     	 	 		( 	( 	( 	( 	( ))mC         """	


~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	669J8KLLLLL   	B,,B03B0c                   K   d xd d fd}	  |             d {V  |                      d           n@# t          $ r3}|                     t          |          t          h           Y d }~nd }~ww xY w|                                                                |                                                                d S )Nc                  >   K   t          j        d           d {V  dS r@   r&   r	   r
   r   r(   z-TestTaskGroup.test_taskgroup_09.<locals>.foo1  rB   r
   c                  >   K   t          j        d           d {V  dS N   r-   r&   r	   r
   r   r.   z-TestTaskGroup.test_taskgroup_09.<locals>.foo2  rB   r
   c                  :  K   t          j                    4 d {V } |                                            |                                            t          j        d           d {V  ddz   d d d           d {V  d S # 1 d {V swxY w Y   d S rJ   )r   r/   r0   r   r'   r5   r(   r.   r6   r7   s    r   rX   z/TestTaskGroup.test_taskgroup_09.<locals>.runner  s*     !+--       ]]4466**]]4466**mC(((((((((A	                             s   AB


BBExceptionGroup was not raisedfailrZ   r1   r   r\   rE   rF   r4   rX   tr(   r.   r6   r7   s      @@@@r   test_taskgroup_09zTestTaskGroup.test_taskgroup_09  s     R	 	 		 	 		 	 	 	 	 	 	 		7&((NNNNNNN II56666  	F 	F 	F_Q//2C1DEEEEEEEE	F
 	''''''''   A   
A=
)A88A=c                   K   d xd d fd}	  |             d {V  |                      d           n@# t          $ r3}|                     t          |          t          h           Y d }~nd }~ww xY w|                                                                |                                                                d S )Nc                  >   K   t          j        d           d {V  dS r@   r&   r	   r
   r   r(   z-TestTaskGroup.test_taskgroup_10.<locals>.foo1%  rB   r
   c                  >   K   t          j        d           d {V  dS r   r&   r	   r
   r   r.   z-TestTaskGroup.test_taskgroup_10.<locals>.foo2)  rB   r
   c                    K   t          j                    4 d {V } |                                            |                                            ddz   d d d           d {V  d S # 1 d {V swxY w Y   d S )NrA   r   rW   r   s    r   rX   z/TestTaskGroup.test_taskgroup_10.<locals>.runner-  s     !+--       ]]4466**]]4466**A                             s   A A00
A:=A:r   r   r   s      @@@@r   test_taskgroup_10zTestTaskGroup.test_taskgroup_10!  s     R	 	 		 	 		 	 	 	 	 	 	 		7&((NNNNNNN II56666  	F 	F 	F_Q//2C1DEEEEEEEE	F
 	''''''''r   c                 @  K   d fd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j
                  t          h           |                     t          |j
        j        d                   t          h           d S )Nc                  ^   K   	 t          j        d           d {V  ddz   d S # ddz   w xY wr   r&   r	   r
   r   rl   z,TestTaskGroup.test_taskgroup_11.<locals>.foo@  r   r   c                    K   t          j                    4 d {V  t          j                    4 d {V } t          d          D ]}|                                              t	          j        d           d {V  d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  d S # 1 d {V swxY w Y   d S r{   r   )g2rr   rl   s     r   rX   z/TestTaskGroup.test_taskgroup_11.<locals>.runnerF  s     !+-- , , , , , , , ,%/11 , , , , , , ,R"1XX . .ssuu----!-+++++++++	, , , , , , , , , , , , , , , , , , , , , , , , , , ,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,s5   B7A
BB7
B	B7 B	!B77
CCr$   r   r   r0   r'   rt   ru   rD   rY   rZ   r1   r   r[   r   r\   r   s       @r   test_taskgroup_11zTestTaskGroup.test_taskgroup_11>  s`     	 	 		, 	, 	, 	, 	, ))mC         """	


~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	668HIII)@)CDDGXFYZZZZZr   c                 @  K   d fd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j
                  t          h           |                     t          |j
        j        d                   t          h           d S )Nc                  ^   K   	 t          j        d           d {V  ddz   d S # ddz   w xY wr   r&   r	   r
   r   rl   z,TestTaskGroup.test_taskgroup_12.<locals>.foo[  r   r   c                    K   t          j                    4 d {V } |                     t          j        d                     t          j                    4 d {V }t          d          D ]}|                                             t          j        d           d {V  d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  d S # 1 d {V swxY w Y   d S )NrV   rc   )r   r/   r0   r   r'   rp   )g1r   rr   rl   s      r   rX   z/TestTaskGroup.test_taskgroup_12.<locals>.runnera  s     !+-- , , , , , , ,w}R00111%/11 , , , , , , ,R"1XX . .ssuu----!-+++++++++	, , , , , , , , , , , , , , , , , , , , , , , , , , ,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,s7   ACA
B:(C:
C	CC	C
C(+C(r$   r   r   r   s       @r   test_taskgroup_12zTestTaskGroup.test_taskgroup_12Y  s`     	 	 		, 	, 	, 	, 	, ))mC         """	


~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	668HIII)@)CDDGXFYZZZZZr   c                 $  K   d fd}t          j         |                      }|                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t          h           d S )Nc                 X   K   t          j        |            d {V  t          |           r   r   r'   
ValueErrorr   s    r   crash_afterz4TestTaskGroup.test_taskgroup_13.<locals>.crash_afterx  4      -"""""""""Q--r
   c                  z  K   t          j                    4 d {V } |                      d                     t          j                    4 d {V }|                     d                     d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  d S # 1 d {V swxY w Y   d S )Nr$   rV   rW   r   r   r   s     r   rX   z/TestTaskGroup.test_taskgroup_13.<locals>.runner|  s     !+-- 4 4 4 4 4 4 4{{3//000%/11 4 4 4 4 4 4 4RNN;;r??3334 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 44 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 45   8B*B4B*
B	B*B	B**
B47B4)r   r0   rY   rZ   r1   r   r[   r   r4   rX   rv   r]   r   s       @r   test_taskgroup_13zTestTaskGroup.test_taskgroup_13v  s      	  	  	 	4 	4 	4 	4 	4 ))~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	66EEEEE   	AAAc                   K   d fd}t          j         |                      }|                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t          h           |                     t          |j        j        d                   t          h           d S )Nc                 X   K   t          j        |            d {V  t          |           r   r   r   s    r   r   z4TestTaskGroup.test_taskgroup_14.<locals>.crash_after  r   r
   c                  z  K   t          j                    4 d {V } |                      d                     t          j                    4 d {V }|                     d                     d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  d S # 1 d {V swxY w Y   d S )NrV   r$   rW   r   s     r   rX   z/TestTaskGroup.test_taskgroup_14.<locals>.runner  s     !+-- 5 5 5 5 5 5 5{{2///%/11 5 5 5 5 5 5 5RNN;;s#3#34445 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5r   r   )	r   r0   rY   rZ   r1   r   r[   r   r   r   s       @r   test_taskgroup_14zTestTaskGroup.test_taskgroup_14  s     	  	  	 	5 	5 	5 	5 	5 ))~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	668HIII)@)CDDzlSSSSSr   c                   K   d fd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j
                  t          h           d S )Nc                  H   K   t          j        d           d {V  ddz   d S N333333?rA   r   r&   r	   r
   r   
crash_soonz3TestTaskGroup.test_taskgroup_15.<locals>.crash_soon  rK   r
   c                  X  K   t          j                    4 d {V } |                                             	 t          j        d           d {V  n.# t          j        $ r t          j        d           d {V   w xY w	 d d d           d {V  d S # 1 d {V swxY w Y   d S NrV   g      ?re   r   r   s    r   rX   z/TestTaskGroup.test_taskgroup_15.<locals>.runner  [     !+--       zz||,,,!-++++++++++-   !-,,,,,,,,, ,                             (   BAB+BB
B#&B#r$   r   )r4   rX   rv   r]   r   s       @r   test_taskgroup_15zTestTaskGroup.test_taskgroup_15  s3     	 	 		 	 	 	 	 ))mC         """	


~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	669J8KLLLLLr   c                   K   d fdfd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t                    5 }| d {V  d d d            n# 1 swxY w Y   |                     t          |j
                  t          h           d S )Nc                  H   K   t          j        d           d {V  ddz   d S r   r&   r	   r
   r   r   z3TestTaskGroup.test_taskgroup_16.<locals>.crash_soon  rK   r
   c                  X  K   t          j                    4 d {V } |                                             	 t          j        d           d {V  n.# t          j        $ r t          j        d           d {V   w xY w	 d d d           d {V  d S # 1 d {V swxY w Y   d S r   re   r   s    r   nested_runnerz6TestTaskGroup.test_taskgroup_16.<locals>.nested_runner  r   r   c                  T   K   t          j                               } |  d {V  d S r   )r   r0   )r   r   s    r   rX   z/TestTaskGroup.test_taskgroup_16.<locals>.runner  s2      #MMOO44AGGGGGGGGGr
   r$   r   )r4   rX   rv   r]   r   r   s       @@r   test_taskgroup_16zTestTaskGroup.test_taskgroup_16  sM     	 	 		 	 	 	 		 	 	 	 	 ))mC         """	


~.. 	"GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	669J8KLLLLLs   	B22B69B6c                   K   dfd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 |                     t           j                  5  | d {V  d d d            n# 1 swxY w Y   |                     d           d S )Nr   c                     K   t          j                    4 d {V  	 t          j        d           d {V  n# t          j        $ r  dz    w xY w	 d d d           d {V  d S # 1 d {V swxY w Y   d S rU   )r   r/   r   r'   rN   rk   s   r   rX   z/TestTaskGroup.test_taskgroup_17.<locals>.runner  s-     !+--        !-++++++++++-   2IC ,                             s%   A':A'AA''
A14A1r$   rV   rs   )r4   rX   rv   rP   s      @r   test_taskgroup_17zTestTaskGroup.test_taskgroup_17  s#     	 	 	 	 	 ))mC         """	


w566 	 	GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	b!!!!!s   	B00B47B4c                   K   dfd}t          j         |                      }t          j        d           d {V  |                     |                                           |                                 	 | d {V  |                     d           n@# t          $ r3}|                     t          |          t          h           Y d }~nd }~ww xY w|                     d           d S )Nr   c                     K   t          j                    4 d {V  	 t          j        d           d {V  n# t          j        $ r  dz   t
          w xY w	 d d d           d {V  d S # 1 d {V swxY w Y   d S rU   )r   r/   r   r'   rN   r   rk   s   r   rX   z/TestTaskGroup.test_taskgroup_18.<locals>.runner  s1     !+--                 !-++++++++++-      2IC  K	  ,                                                           s%   A-:A-AA--
A7:A7r$   r   rV   )r   r0   r'   rt   ru   rD   r   rZ   r1   r   r   )r4   rX   rv   r   rP   s       @r   test_taskgroup_18zTestTaskGroup.test_taskgroup_18  s$     		  		  		  		  		  ))mC         """	


	7GGGGGGG II56666  	9 	9 	9_Q//88888888	9
 	b!!!!!s   =B 
C%)CCc                 (  K   d d fd}t          j         |                      }	 | d {V  |                     d           d S # t          $ r:}|                     t          |          t          t          h           Y d }~d S d }~ww xY w)Nc                  H   K   t          j        d           d {V  ddz   d S rJ   r&   r	   r
   r   r   z3TestTaskGroup.test_taskgroup_19.<locals>.crash_soon  rK   r
   c                  `   K   	 t          j        d           d {V  t          # t          xY wrU   )r   r'   r   r	   r
   r   nestedz/TestTaskGroup.test_taskgroup_19.<locals>.nested	  s=      mB'''''''''e   % -c                     K   t          j                    4 d {V } |                                                           d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   r5   r   r   s    r   rX   z/TestTaskGroup.test_taskgroup_19.<locals>.runner        !+--       jjll+++fhh                                .A
A(+A(zTasgGroupError was not raised)r   r0   r   rZ   r1   r   r   r\   )r4   rX   rv   r   r   r   s       @@r   test_taskgroup_19zTestTaskGroup.test_taskgroup_19  s      	 	 		 	 		 	 	 	 	 	
 ))	7GGGGGGG II566666  	M 	M 	M_Q//%9J1KLLLLLLLLL	Ms   A 
B/BBc                    K   d d fd}|                      t                    5   |             d {V  d d d            d S # 1 swxY w Y   d S )Nc                  H   K   t          j        d           d {V  ddz   d S rJ   r&   r	   r
   r   r   z3TestTaskGroup.test_taskgroup_20.<locals>.crash_soon  rK   r
   c                  `   K   	 t          j        d           d {V  t          # t          xY wrU   r   r'   KeyboardInterruptr	   r
   r   r   z/TestTaskGroup.test_taskgroup_20.<locals>.nested!  sC      (mB''''''''''''''''r   c                     K   t          j                    4 d {V } |                                                           d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   r   s    r   rX   z/TestTaskGroup.test_taskgroup_20.<locals>.runner'  r   r   rY   r   r4   rX   r   r   s     @@r   test_taskgroup_20zTestTaskGroup.test_taskgroup_20  s      	 	 		( 	( 	(	 	 	 	 	 	
 011 	 	&((NNNNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   A		AAc                   K   d d fd}|                      t                    5 } |             d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t
          t          h           d S )Nc                  H   K   t          j        d           d {V  ddz   d S rJ   r&   r	   r
   r   r   z4TestTaskGroup.test_taskgroup_20a.<locals>.crash_soon0  rK   r
   c                  `   K   	 t          j        d           d {V  t          # t          xY wrU   r   r'   r   r	   r
   r   r   z0TestTaskGroup.test_taskgroup_20a.<locals>.nested4  =       mB'''''''''ir   c                     K   t          j                    4 d {V } |                                                           d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   r   s    r   rX   z0TestTaskGroup.test_taskgroup_20a.<locals>.runner:  r   r   )rY   BaseExceptionGroupr1   r   r[   r   r\   r4   rX   r]   r   r   s      @@r   test_taskgroup_20az TestTaskGroup.test_taskgroup_20a/  s      	 	 		  	  	 	 	 	 	 	 	
 122 	b&((NNNNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	BL))I7H+I	
 	
 	
 	
 	
   AAAc                    K   d d fd}|                      t                    5   |             d {V  d d d            d S # 1 swxY w Y   d S )Nc                  H   K   t          j        d           d {V  t          Nr$   r   r	   r
   r   r   z4TestTaskGroup._test_taskgroup_21.<locals>.crash_soonN  s.      -$$$$$$$$$##r
   c                  `   K   	 t          j        d           d {V  t          # t          xY wrU   r   r'   	TypeErrorr	   r
   r   r   z0TestTaskGroup._test_taskgroup_21.<locals>.nestedR  r   r   c                     K   t          j                    4 d {V } |                                                           d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   r   s    r   rX   z0TestTaskGroup._test_taskgroup_21.<locals>.runnerX  r   r   r   r   s     @@r   _test_taskgroup_21z TestTaskGroup._test_taskgroup_21F  s      	$ 	$ 	$	  	  	 	 	 	 	 	 	
 011 	 	&((NNNNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	r   c                   K   d d fd}|                      t                    5 } |             d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t
          t          h           d S )Nc                  H   K   t          j        d           d {V  t          r   r   r	   r
   r   r   z4TestTaskGroup.test_taskgroup_21a.<locals>.crash_soonb  s-      -$$$$$$$$$Or
   c                  `   K   	 t          j        d           d {V  t          # t          xY wrU   r   r	   r
   r   r   z0TestTaskGroup.test_taskgroup_21a.<locals>.nestedf  r   r   c                     K   t          j                    4 d {V } |                                                           d {V  d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   r   s    r   rX   z0TestTaskGroup.test_taskgroup_21a.<locals>.runnerl  r   r   )rY   r   r1   r   r[   r   r   r   s      @@r   test_taskgroup_21az TestTaskGroup.test_taskgroup_21a`  s      	 	 		  	  	 	 	 	 	 	 	
 122 	b&((NNNNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	66I8NOOOOOr   c                 :  K   d d fd}t          j         |                      }t          j        d           d {V  |                                 |                     t           j                  5  | d {V  d d d            d S # 1 swxY w Y   d S )Nc                  >   K   t          j        d           d {V  dS r@   r&   r	   r
   r   r(   z-TestTaskGroup.test_taskgroup_22.<locals>.foo1x  rB   r
   c                  >   K   t          j        d           d {V  dS r   r&   r	   r
   r   r.   z-TestTaskGroup.test_taskgroup_22.<locals>.foo2|  rB   r
   c                     K   t          j                    4 d {V } |                                             |                                             d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   )r5   r(   r.   s    r   rX   z/TestTaskGroup.test_taskgroup_22.<locals>.runner  s     !+-- & & & & & & &ddff%%%ddff%%%& & & & & & & & & & & & & & & & & & & & & & & & & & & & & &s   ;A++
A58A5g?)r   r0   r'   rD   rY   rN   )r4   rX   rv   r(   r.   s      @@r   test_taskgroup_22zTestTaskGroup.test_taskgroup_22v  s     	 	 		 	 		& 	& 	& 	& 	& 	&
 ))mD!!!!!!!!!	


w566 	 	GGGGGGG	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   :	BBBc                    K   d }t          j                    4 d {V }t          d          D ]h}t          j        d           d {V  |                     |d                     |dk    r(|                     t          |j                  d           it          j        d           d {V  | 	                    t          |j                  d           d d d           d {V  d S # 1 d {V swxY w Y   d S )Nc                 >   K   t          j        |            d {V  d S r   r&   delays    r   do_jobz/TestTaskGroup.test_taskgroup_23.<locals>.do_job  .      -&&&&&&&&&&&r
   rV   r$   r   rc   g?r   )
r   r/   rp   r   r'   r0   
assertLesslen_tasksr1   )r4   r  r5   counts       r   test_taskgroup_23zTestTaskGroup.test_taskgroup_23  s     	' 	' 	' ')) 	/ 	/ 	/ 	/ 	/ 	/ 	/Qr 6 6mC(((((((((ffSkk***A::OOCMM1555-%%%%%%%%%S]]A...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   B;C--
C7:C7c                 H   K   fdd fd} |             d {V  d S )Nc                    K   t          j        d           d {V  |                      d                     |                      d                     d S )Nr$   r,   r   r'   r0   )r5   coro1s    r   rootz-TestTaskGroup.test_taskgroup_24.<locals>.root  sc      -$$$$$$$$$MM%%**%%%MM%%**%%%%%r
   c                 >   K   t          j        |            d {V  d S r   r&   r  s    r   r  z.TestTaskGroup.test_taskgroup_24.<locals>.coro1  r  r
   c                     K   t          j                    4 d {V } |                      |                      d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   )r5   r  s    r   rX   z/TestTaskGroup.test_taskgroup_24.<locals>.runner  s      !+-- ' ' ' ' ' ' 'dd1gg&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   A
AAr	   )r4   rX   r  r  s     @@r   test_taskgroup_24zTestTaskGroup.test_taskgroup_24  sf      	& 	& 	& 	& 	&
	' 	' 	'	' 	' 	' 	' 	' fhhr
   c                 B  K   dfdfdfd}|                      t                    5 } |             d {V  d d d            n# 1 swxY w Y   |                     t          |j                  t
          h           |                     d           d S )Nr   c                    K   dz  t          j        d           d {V  |                      |                      |                      |                      d S )NrA   g{Gz?r  )r5   hydranhydrass    r   r  z.TestTaskGroup.test_taskgroup_25.<locals>.hydra  sl      qLG-%%%%%%%%%MM%%((###MM%%((#####r
   c                  b   K    dk     r t          j        d           d {V   dk      ddz   d S )NrV   gQ?rA   r   r&   )r  s   r   herculesz1TestTaskGroup.test_taskgroup_25.<locals>.hercules  sJ      B,,mE********* B,,EEEEr
   c                     K   t          j                    4 d {V } |                      |                      |                                             d d d           d {V  d S # 1 d {V swxY w Y   d S r   rW   )r5   r  r  s    r   rX   z/TestTaskGroup.test_taskgroup_25.<locals>.runner  s     !+-- * * * * * * *eeAhh'''hhjj)))* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s   <A,,
A69A6rV   )rY   rZ   r1   r   r[   r\   assertGreaterEqual)r4   rX   r]   r  r  r  s      @@@r   test_taskgroup_25zTestTaskGroup.test_taskgroup_25  s$     	$ 	$ 	$ 	$ 	$ 	$	 	 	 	 	
	* 	* 	* 	* 	* 	*
 ~.. 	"&((NNNNNNN	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	669J8KLLL,,,,,s   AAAc                   K   d }t          j                    4 d {V }|                     |            d          }|                     |                                d           d d d           d {V  d S # 1 d {V swxY w Y   d S )Nc                  >   K   t          j        d           d {V  d S Nr   r&   r	   r
   r   coroz4TestTaskGroup.test_taskgroup_task_name.<locals>.coro  s.      -"""""""""""r
   yolo)name)r   r/   r0   r1   get_name)r4   r  r5   r   s       r   test_taskgroup_task_namez&TestTaskGroup.test_taskgroup_task_name  s     	# 	# 	#')) 	3 	3 	3 	3 	3 	3 	3Qddff622AQZZ\\6222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   AA::
BBc                 t  K   t          j        d          fd}t          j                    4 d {V }t          j                    }|                     |                                         |                     |d          |          }| d {V  |                     d|                                         |                     |d          |          }| d {V  |                     d|                                         d d d           d {V  d S # 1 d {V swxY w Y   d S )Ncvarc                 j   K   t          j        d           d {V                      |            d S r  )r   r'   set)valr$  s    r   r  z7TestTaskGroup.test_taskgroup_task_context.<locals>.coro  s<      -"""""""""HHSMMMMMr
   rA   )contextr   )	contextvars
ContextVarr   r/   copy_contextassertIsNonegetr0   r1   )r4   r  r5   ctxr6   r7   r$  s         @r   test_taskgroup_task_contextz)TestTaskGroup.test_taskgroup_task_context  s     %f--	 	 	 	 	 ')) 	/ 	/ 	/ 	/ 	/ 	/ 	/Q*,,Ccggdmm,,,ttAww44BHHHHHHHQ...ttAww44BHHHHHHHQ...	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/s   CD''
D14D1c                    K   d  fd}                      t                    5 }t          j                    4 d {V }|                                            |                     ||                     d d d           d {V  n# 1 d {V swxY w Y   d d d            n# 1 swxY w Y                        t          |j                  t          h           d S )Nc                  H   K   t          j        d           d {V  ddz   d S )NgMbP?rA   r   r&   r	   r
   r   r  zHTestTaskGroup.test_taskgroup_no_create_task_after_failure.<locals>.coro1  s5      -&&&&&&&&&EEEEr
   c                   K   	 t          j        d           d {V  d S # t           j        $ r                     t                    5  |                                  x}           d d d            n# 1 swxY w Y                       t                    5  | d {V  d d d            Y d S # 1 swxY w Y   Y d S w xY w)NrA   )r   r'   rN   rY   RuntimeErrorr0   r\   )r5   c1r  r4   s     r   coro2zHTestTaskGroup.test_taskgroup_no_create_task_after_failure.<locals>.coro2  sm     mA&&&&&&&&&&&)   &&|44 1 1MM-"0001 1 1 1 1 1 1 1 1 1 1 1 1 1 1 &&'899  HHHHHHH                   	sW   ! )C
 A6*C6A:	:C=A:	>C	B2$C2B6	6C9B6	:C C)	rY   rZ   r   r/   r0   r1   r   r[   r\   )r4   r5  r]   r5   r  s   `   @r   +test_taskgroup_no_create_task_after_failurez9TestTaskGroup.test_taskgroup_no_create_task_after_failure  s     	 	 		 	 	 	 	 	 ~.. 	("!+-- ( ( ( ( ( ( (eegg&&&eeAhh'''( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	( 	(
 	669J8KLLLLLs5   B-<B>B-
B	B-B	B--B14B1c                     K    G d dt                     fdt          j        fd             fd}t          j         |                       d {V  d S )Nc                       e Zd ZdS )QTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.CustomExceptionNr   r	   r
   r   CustomExceptionr9    s        Dr
   r:  c                     K    r   r	   r:  s   r   	raise_exczKTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.raise_exc  s      !!r
   c                 $   K   	 d W V   #  xY wr   r	   r<  s   r   databasezJTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.database  s,      &%%o%%%%s    c            	        K   t          j                    } 	 t          j                    4 d {V }             4 d {V  |                                            t          j        d           d {V  d d d           d {V  n# 1 d {V swxY w Y   d d d           d {V  n# 1 d {V swxY w Y   ns# xg c% x\}                    |                                 d                               t          |j	                  d           d }~nd }~ nn X x Y d S cY w xY w
                    d           d S )NrA   r   r   zCustomException not raised)r   current_taskr   r/   r0   r'   r1   
cancellingr  r   r   )tasktgerrr:  r?  r=  r4   s      r   mainzFTestTaskGroup.test_taskgroup_context_manager_exit_raises.<locals>.main   sx     '))D
8%/11 / / / / / / /R'xzz / / / / / / / /yy{{333%mA........./ / / / / / / / / / / / / / / / / / / / / / / / / / // / / / / / / / / / / / / / / / / / / / / / / / / / /9 9 9O 9 9 9 9  !2!2A666  S^!4!4a888888889    
 		677777s_   C B/8B:B/
B	B/B	B/C /
B99C <B9=C 	D1
AD	D1)	Exception
contextlibasynccontextmanagerr   r0   )r4   rF  r:  r?  r=  s   ` @@@r   *test_taskgroup_context_manager_exit_raisesz8TestTaskGroup.test_taskgroup_context_manager_exit_raises  s      	 	 	 	 	i 	 	 		" 	" 	" 	" 	" 
	'	& 	& 	& 	& 
(	'	&	8 	8 	8 	8 	8 	8 	8 	8 !$$&&)))))))))))r
   c                 J  K   t          j                    }|4 d {V  |                     t          d          5  |4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   d d d            n# 1 swxY w Y   d d d           d {V  d S # 1 d {V swxY w Y   d S Nzhas already been enteredr   r/   assertRaisesRegexr3  r4   rD  s     r   test_taskgroup_already_enteredz,TestTaskGroup.test_taskgroup_already_entered  s     !## 	 	 	 	 	 	 	 	''6PQQ                                                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sX   B	A4AA4
A!!A4$A!%A4(B4A8	8B;A8	<B
BBc                 L  K   t          j                    }|4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   |                     t          d          5  |4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   d d d            d S # 1 swxY w Y   d S rL  rM  rO  s     r   test_taskgroup_double_enterz)TestTaskGroup.test_taskgroup_double_enter  s     !## 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	##L2LMM 	 	                                  	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	sB   2
<<	B'A;)B;
B	BB		BB Bc                 R  K   t          j                    }|4 d {V  	 d d d           d {V  n# 1 d {V swxY w Y   t          j        d          }|                     t
          d          5  |                    |           d d d            n# 1 swxY w Y   | d {V  d S )Nr   zis finishedr   r/   r   r'   rN  r3  r0   r4   rD  r  s      r   test_taskgroup_finishedz%TestTaskGroup.test_taskgroup_finished  so     !## 	 	 	 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	}Q##L-@@ 	! 	!NN4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 








s   2
<<2BBBc                    K   t          j                    }t          j        d          }|                     t
          d          5  |                    |           d d d            n# 1 swxY w Y   | d {V  d S )Nr   has not been enteredrT  rU  s      r   test_taskgroup_not_enteredz(TestTaskGroup.test_taskgroup_not_entered)  s      !##}Q##L2HII 	! 	!NN4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 








s   A''A+.A+c                   K   t          j                    }|                     t          d          5  t	          |                                           d {V  d d d            n# 1 swxY w Y   t          j        d          }|                     t          d          5  |                    |           d d d            n# 1 swxY w Y   | d {V  d S )Nzparent taskr   rX  )	r   r/   rN  r3  r   
__aenter__r   r'   r0   rU  s      r   "test_taskgroup_without_parent_taskz0TestTaskGroup.test_taskgroup_without_parent_task1  sK     !####L-@@ 	6 	6$R]]__555555555	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6 	6}Q##L2HII 	! 	!NN4   	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 








s#   (A%%A),A)CCCN)'r   r   r   r8   r=   rG   r^   rg   rw   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r	  r  r  r"  r/  r6  rJ  rP  rR  rV  rY  r\  r	   r
   r   r    r       sN       * * *"* * *$* * *,#( #( #(J-' -' -'^! ! !6 "  "  "DM M M0( ( (<( ( (:[ [ [6[ [ [:F F F&T T T(M M M0M M M8" " "," " ":7 7 70  &
 
 
.  4P P P,  ,/ / /   - - -43 3 3/ / /"M M M** * *>            r
   r    __main__)r   r)  rH  r   unittesttest.test_asyncio.utilsr   r   rG  r   BaseExceptionr   r   IsolatedAsyncioTestCaser    r   rF  r	   r
   r   <module>rb     s#  
                 6 6 6 6 6 6( ( (	 	 	 	 	I 	 	 		 	 	 	 	 	 	 	0 0 0Z Z Z Z ZH4 Z Z Zz zHMOOOOO r
   