
    <eU                         d dl Z d dlZd dlZd dl mZ d dl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)
taskgroupsc                  .    t          j        d            d S N)asyncioset_event_loop_policy     8/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 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>.foo12   r(   r	   c                  >   K   t          j        d           d {V  dS r*   r%   r   r	   r
   r-   z-TestTaskGroup.test_taskgroup_02.<locals>.foo26   r(   r	   333333?r$   r,   )r   r.   r/   r   r&   r0   r1   r2   s         r
   test_taskgroup_02zTestTaskGroup.test_taskgroup_020   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>.foo1D   -      -"""""""""2r	   c                  >   K   t          j        d           d {V  dS r*   r%   r   r	   r
   r-   z-TestTaskGroup.test_taskgroup_03.<locals>.foo2H   r(   r	   r;   r,   )
r   r.   r/   r   r&   cancel
assertTrue	cancelledr0   r1   r2   s         r
   test_taskgroup_03zTestTaskGroup.test_taskgroup_03B   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#   r@   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 )Nr@   Tr   r&   CancelledErrorNUM	t2_cancels   r
   r-   z-TestTaskGroup.test_taskgroup_04.<locals>.foo2b   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.   r/   )r4   rO   r'   r-   r6   s    r
   runnerz/TestTaskGroup.test_taskgroup_04.<locals>.runnerk   s      "+-- + + + + + + +ddff%%%]]4466**+ + + + + + + + + + + + + + + + + + + + + + + + + + + 2ICCCs   ;A**
A47A4)
assertRaisesExceptionGroupr   r/   r0   r   	exceptionZeroDivisionErrorrD   rE   )r3   rW   cmrO   r'   r-   r6   rP   s      @@@@@r
   test_taskgroup_04zTestTaskGroup.test_taskgroup_04X   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 rI   r%   r   r	   r
   r'   z?TestTaskGroup.test_cancel_children_on_child_error.<locals>.foo1   rJ   r	   c                  z   K   	 t          j        d           d {V  n# t           j        $ r d w xY w dz   d S )N   Tr@   rL   rN   s   r
   r-   z?TestTaskGroup.test_cancel_children_on_child_error.<locals>.foo2   rQ   rR   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 )NrU   Tr   r.   r/   r   r&   rM   )r4   rO   r'   r-   runner_cancels    r
   rW   zATestTaskGroup.test_cancel_children_on_child_error.<locals>.runner   s      "+-- 	 	 	 	 	 	 	ddff%%%ddff%%%ddff%%%ddff%%%!-++++++++++-   $(M ,	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 2ICCCs*   A5CB.-C.CC
C!$C!)	rX   rY   r   r/   r0   r   rZ   r[   rD   )r3   rW   r\   rO   r'   r-   re   rP   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Nrb   r@   rL   rO   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 )Nrb   )r   r.   ranger/   r4   _rk   s     r
   rW   z/TestTaskGroup.test_cancellation.<locals>.runner   s     !+-- ) ) ) ) ) ) )q ) )AMM##%%(((()) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) )s   0A!!
A+.A+r#   rb   	r   r/   r&   assertFalsedonerC   rX   rM   r0   )r3   rW   rr\   rO   rk   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ri   rL   rj   s   r
   rk   z,TestTaskGroup.test_taskgroup_07.<locals>.foo   rl   rm   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 Nrb   rU   )r   r.   ro   r/   r   r&   rM   )r4   rq   rO   rk   s     r
   rW   z/TestTaskGroup.test_taskgroup_07.<locals>.runner   sZ     !+--       q ) )AMM##%%((((!-++++++++++-   2IC ,                             s)   0BA)(B)A??B
B #B r#      rr   )r3   rW   ru   rO   rk   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NrU   r@   r   r%   r   r	   r
   rk   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 rz   r   r.   ro   r/   r   r&   rp   s     r
   rW   z/TestTaskGroup.test_taskgroup_08.<locals>.runner   s#     !+-- ( ( ( ( ( ( (q ) )AMM##%%((((mB'''''''''	( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (s   A
A::
BBr#   r   r/   r&   rs   rt   rC   rX   rY   r0   r   rZ   r[   r3   rW   ru   r\   rk   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  rA   r	   c                  >   K   t          j        d           d {V  dS N   r,   r%   r   r	   r
   r-   z-TestTaskGroup.test_taskgroup_09.<locals>.foo2	  rA   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 rI   )r   r.   r/   r   r&   r4   r'   r-   r5   r6   s    r
   rW   z/TestTaskGroup.test_taskgroup_09.<locals>.runner  s*     !+--       ]]4466**]]4466**mC(((((((((A	                             s   AB


BBExceptionGroup was not raisedfailrY   r0   r   r[   rD   rE   r3   rW   tr'   r-   r5   r6   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#  rA   r	   c                  >   K   t          j        d           d {V  dS r   r%   r   r	   r
   r-   z-TestTaskGroup.test_taskgroup_10.<locals>.foo2'  rA   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 )Nr@   r   rV   r   s    r
   rW   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
   rk   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 rz   r   )g2rq   rk   s     r
   rW   z/TestTaskGroup.test_taskgroup_11.<locals>.runnerD  s     !+-- , , , , , , , ,%/11 , , , , , , ,R"1XX . .ssuu----!-+++++++++	, , , , , , , , , , , , , , , , , , , , , , , , , , ,, , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,s5   B7A
BB7
B	B7 B	!B77
CCr#   r   r   r/   r&   rs   rt   rC   rX   rY   r0   r   rZ   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
   rk   z,TestTaskGroup.test_taskgroup_12.<locals>.fooY  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 )NrU   rb   )r   r.   r/   r   r&   ro   )g1r   rq   rk   s      r
   rW   z/TestTaskGroup.test_taskgroup_12.<locals>.runner_  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_12W  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_afterv  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#   rU   rV   r   r   r   s     r
   rW   z/TestTaskGroup.test_taskgroup_13.<locals>.runnerz  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   r/   rX   rY   r0   r   rZ   r   r3   rW   ru   r\   r   s       @r
   test_taskgroup_13zTestTaskGroup.test_taskgroup_13t  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 )NrU   r#   rV   r   s     r
   rW   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   r/   rX   rY   r0   r   rZ   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?r@   r   r%   r   r	   r
   
crash_soonz3TestTaskGroup.test_taskgroup_15.<locals>.crash_soon  rJ   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 NrU   g      ?rd   r   r   s    r
   rW   z/TestTaskGroup.test_taskgroup_15.<locals>.runner  [     !+--       zz||,,,!-++++++++++-   !-,,,,,,,,, ,                             (   BAB+BB
B#&B#r#   r   )r3   rW   ru   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  rJ   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   rd   r   s    r
   nested_runnerz6TestTaskGroup.test_taskgroup_16.<locals>.nested_runner  r   r   c                  T   K   t          j                               } |  d {V  d S r   )r   r/   )r   r   s    r
   rW   z/TestTaskGroup.test_taskgroup_16.<locals>.runner  s2      #MMOO44AGGGGGGGGGr	   r#   r   )r3   rW   ru   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 rT   )r   r.   r   r&   rM   rj   s   r
   rW   z/TestTaskGroup.test_taskgroup_17.<locals>.runner  s-     !+--        !-++++++++++-   2IC ,                             s%   A':A'AA''
A14A1r#   rU   rr   )r3   rW   ru   rO   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 rT   )r   r.   r   r&   rM   r   rj   s   r
   rW   z/TestTaskGroup.test_taskgroup_18.<locals>.runner  s1     !+--                 !-++++++++++-      2IC  K	  ,                                                           s%   A-:A-AA--
A7:A7r#   r   rU   )r   r/   r&   rs   rt   rC   r   rY   r0   r   r   )r3   rW   ru   r   rO   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 rI   r%   r   r	   r
   r   z3TestTaskGroup.test_taskgroup_19.<locals>.crash_soon  rJ   r	   c                  `   K   	 t          j        d           d {V  t          # t          xY wrT   )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   rV   r4   r   r   s    r
   rW   z/TestTaskGroup.test_taskgroup_19.<locals>.runner        !+--       jjll+++fhh                                .A
A(+A(zTasgGroupError was not raised)r   r/   r   rY   r0   r   r   r[   )r3   rW   ru   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 rI   r%   r   r	   r
   r   z3TestTaskGroup.test_taskgroup_20.<locals>.crash_soon  rJ   r	   c                  `   K   	 t          j        d           d {V  t          # t          xY wrT   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   rV   r   s    r
   rW   z/TestTaskGroup.test_taskgroup_20.<locals>.runner%  r   r   rX   r   r3   rW   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 rI   r%   r   r	   r
   r   z4TestTaskGroup.test_taskgroup_20a.<locals>.crash_soon.  rJ   r	   c                  `   K   	 t          j        d           d {V  t          # t          xY wrT   r   r&   r   r   r	   r
   r   z0TestTaskGroup.test_taskgroup_20a.<locals>.nested2  =       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   rV   r   s    r
   rW   z0TestTaskGroup.test_taskgroup_20a.<locals>.runner8  r   r   )rX   BaseExceptionGroupr0   r   rZ   r   r[   r3   rW   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_soonL  s.      -$$$$$$$$$##r	   c                  `   K   	 t          j        d           d {V  t          # t          xY wrT   r   r&   	TypeErrorr   r	   r
   r   z0TestTaskGroup._test_taskgroup_21.<locals>.nestedP  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   rV   r   s    r
   rW   z0TestTaskGroup._test_taskgroup_21.<locals>.runnerV  r   r   r   r   s     @@r
   _test_taskgroup_21z TestTaskGroup._test_taskgroup_21D  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_soon`  s-      -$$$$$$$$$Or	   c                  `   K   	 t          j        d           d {V  t          # t          xY wrT   r   r   r	   r
   r   z0TestTaskGroup.test_taskgroup_21a.<locals>.nestedd  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   rV   r   s    r
   rW   z0TestTaskGroup.test_taskgroup_21a.<locals>.runnerj  r   r   )rX   r   r0   r   rZ   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>.foo1v  rA   r	   c                  >   K   t          j        d           d {V  dS r   r%   r   r	   r
   r-   z-TestTaskGroup.test_taskgroup_22.<locals>.foo2z  rA   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   rV   )r4   r'   r-   s    r
   rW   z/TestTaskGroup.test_taskgroup_22.<locals>.runner~  s     !+-- & & & & & & &ddff%%%ddff%%%& & & & & & & & & & & & & & & & & & & & & & & & & & & & & &s   ;A++
A58A5g?)r   r/   r&   rC   rX   rM   )r3   rW   ru   r'   r-   s      @@r
   test_taskgroup_22zTestTaskGroup.test_taskgroup_22t  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	   rU   r#   r   rb   g?r   )
r   r.   ro   r   r&   r/   
assertLesslen_tasksr0   )r3   r  r4   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&   r/   )r4   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   rV   )r4   r  s    r
   rW   z/TestTaskGroup.test_taskgroup_24.<locals>.runner  s      !+-- ' ' ' ' ' ' 'dd1gg&&&' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 's   A
AAr   )r3   rW   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 )Nr@   g{Gz?r  )r4   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 )NrU   gQ?r@   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   rV   )r4   r  r  s    r
   rW   z/TestTaskGroup.test_taskgroup_25.<locals>.runner  s     !+-- * * * * * * *eeAhh'''hhjj)))* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *s   <A,,
A69A6rU   )rX   rY   r0   r   rZ   r[   assertGreaterEqual)r3   rW   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.   r/   r0   get_name)r3   r  r4   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	   r@   )contextr   )	contextvars
ContextVarr   r.   copy_contextassertIsNonegetr/   r0   )r3   r  r4   ctxr5   r6   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?r@   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)Nr@   )r   r&   rM   rX   RuntimeErrorr/   r[   )r4   c1r  r3   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)	rX   rY   r   r.   r/   r0   r   rZ   r[   )r3   r4  r\   r4   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
   CustomExceptionr8    s        Dr	   r9  c                     K    r   r   r9  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 )Nr@   r   r   zCustomException not raised)r   current_taskr   r.   r/   r&   r0   
cancellingr  r   r   )tasktgerrr9  r>  r<  r3   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   r/   )r3   rE  r9  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	   N)"r   r   r   r7   r<   rF   r]   rf   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r!  r.  r5  rI  r   r	   r
   r   r      s       * * *"* * *$* * *,#( #( #(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(  rG  r   unittestr   rF  r   BaseExceptionr   r   IsolatedAsyncioTestCaser   r   rE  r   r	   r
   <module>rN     s  
                ( ( (	 	 	 	 	I 	 	 		 	 	 	 	 	 	 	0 0 0o* o* o* o* o*H4 o* o* o*d zHMOOOOO r	   