
    daf                     r   d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ  ed      Z	 ed        e
       Z G d de      Zej                  d	d
d       Zd Zd ZefdZ G d dej&                        Z G d dej&                        Z G d dej&                        Zedk(  r ej0                          yy)    N)import_module)
gc_collectrequires_working_socketasyncioT)modulec                       e Zd Zy)AwaitExceptionN__name__
__module____qualname__     -/root/Python-3.12.4/Lib/test/test_asyncgen.pyr	   r	      s    r   r	   Fthrowc              #   "   K   | rd y d y w)Nr   resultr   r   s    r   	awaitabler      s        c                     d}	 	 |rd}| j                  t              }n| j                  d       }|dk(  rd}4# t        $ r}|j                  d   cY d }~S d }~ww xY w)NFTr   r   )r   r	   sendStopIterationargs)coroexcfutexs       r   run_until_completer       sf    
C
	jj0iio *C   	771:	s   +8 	AAAAc                 .      fd}t         |             S )Nc                  T   K   g } 2 3 d {   }| j                  |       7 6 | S wNappend)resigens     r   iteratezto_list.<locals>.iterate-   s3      	 	!JJqM	s
s   (%#%(%()r    )r(   r)   s   ` r   to_listr*   ,   s     gi((r   c                      	 t               j                  t        u r        S  fd} |       S # t        $ r t         d      w xY w)a0  Pure-Python implementation of anext() for testing purposes.

    Closely matches the builtin anext() C implementation.
    Can be used to compare the built-in implementation of the inner
    coroutines machinery to C-implementation of __anext__() and send()
    or throw() on the returned generator.
    z is not an async iteratorc                  T   K   	          d {   S 7 # t         $ r cY S w xY wwr#   StopAsyncIteration)	__anext__defaultiterators   r   
anext_implzpy_anext.<locals>.anext_implG   s2     	 #8,,,,! 	N	s(   (  ( %(%()typer/   AttributeError	TypeError_no_default)r1   r0   r2   r/   s   `` @r   py_anextr7   6   sb    BN,,	 +""	 <#  B8,&?@AABs	   8 Ac                   *    e Zd Zd Zd Zd Zd Zd Zy)AsyncGenSyntaxTestc                 x    d}| j                  t        d      5  t        |i i        d d d        y # 1 sw Y   y xY w)NzJasync def foo():
            await abc
            yield from 123
        yield from.*inside asyncassertRaisesRegexSyntaxErrorexecselfcodes     r   test_async_gen_syntax_01z+AsyncGenSyntaxTest.test_async_gen_syntax_01W   =    
 ##K1KL 	r2	 	 	   09c                 x    d}| j                  t        d      5  t        |i i        d d d        y # 1 sw Y   y xY w)Nz4async def foo():
            yield from 123
        r;   r<   r@   s     r   test_async_gen_syntax_02z+AsyncGenSyntaxTest.test_async_gen_syntax_02`   s=     ##K1KL 	r2	 	 	rE   c                 x    d}| j                  t        d      5  t        |i i        d d d        y # 1 sw Y   y xY w)NzXasync def foo():
            await abc
            yield
            return 123
        return.*value.*async genr<   r@   s     r   test_async_gen_syntax_03z+AsyncGenSyntaxTest.test_async_gen_syntax_03h   =     ##K1KL 	r2	 	 	rE   c                 x    d}| j                  t        d      5  t        |i i        d d d        y # 1 sw Y   y xY w)NzBasync def foo():
            yield
            return 123
        rI   r<   r@   s     r   test_async_gen_syntax_04z+AsyncGenSyntaxTest.test_async_gen_syntax_04r   rD   rE   c                 x    d}| j                  t        d      5  t        |i i        d d d        y # 1 sw Y   y xY w)NzWasync def foo():
            if 0:
                yield
            return 12
        rI   r<   r@   s     r   test_async_gen_syntax_05z+AsyncGenSyntaxTest.test_async_gen_syntax_05{   rK   rE   N)r   r   r   rC   rG   rJ   rM   rO   r   r   r   r9   r9   U   s    r   r9   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y)AsyncGenTestc                 V    d }d } ||      } ||      }| j                  ||       |S )Nc                     g }	 	 |j                  | j                                !# t        $ r |j                  d       Y |S t        $ r-}|j                  t	        t        |                   Y d }~Nd }~ww xY w)NSTOP)r%   __next__r   	Exceptionstrr3   )gr&   r   s      r   sync_iteratez5AsyncGenTest.compare_generators.<locals>.sync_iterate   so    C.JJqzz|,  % JJv& J ! .JJs48}--.s   % A7A7
#A22A7c                    g }	 | j                         }	 	 	 |j                          # t        $ rJ}|j                  r#|j	                  |j                  d          Y d }~n[|j	                  d       Y d }~nEd }~wt
        $ r  t        $ r-}|j	                  t        t        |                   Y d }~nd }~ww xY wn!# t
        $ r |j	                  d       Y |S w xY w)Nr   zEMPTY StopIterationrT   )	r/   rU   r   r   r%   r.   rV   rW   r3   )rX   r&   anr   s       r   async_iteratez6AsyncGenTest.compare_generators.<locals>.async_iterate   s    C[[]"KKM   - &!ww #

2771: 6 % #

+@ A %1 "!( "JJs48}5!" * JJv&J% sT   B< ( B< 	B8*A6B<  A61B< 6B8#B3.B< 3B88B< <CC)assertEqual)rA   sync_gen	async_genrY   r\   sync_gen_resultasync_gen_results          r   compare_generatorszAsyncGenTest.compare_generators   s:    
		2 'x0(3*:;r   c                 T      fd} j                  t         |             g d       y )Nc                    K   t                d {    d} j                  | d        t                d {    d t                d {    d y 7 J7 #7 w)N{       )r   assertIs)arA   s    r   r(   z5AsyncGenTest.test_async_gen_iteration_01.<locals>.gen   sV     +	AMM!T"+I+I  s1   A"A(A"AA"A A"A" A")re   rf   rg   )r]   r*   rA   r(   s   ` r   test_async_gen_iteration_01z(AsyncGenTest.test_async_gen_iteration_01   s     	 	9r   c                 L   d } |       }|j                         }|j                         }| j                  |j                         d       	 |j                          | j	                  d       |j                         }| j                  |j                         d       	 |j                          | j	                  d       y # t
        $ r)}| j                  |j                  d   d       Y d }~d }~ww xY w# t        $ r%}| j                  |j                         Y d }~y d }~ww xY w)Nc                 f   K   t                d {    d t                d {    y 7 7 wNre   r   r   r   r   r(   z5AsyncGenTest.test_async_gen_iteration_02.<locals>.gen   s*     +I+ s   1-1/11r   StopIteration was not raisedr   re   z!StopAsyncIteration was not raised)		__aiter__r/   r]   rU   failr   r   r.   assertFalserA   r(   rX   air[   r   s         r   test_async_gen_iteration_02z(AsyncGenTest.test_async_gen_iteration_02   s    	
 E[[]\\^4	6KKM II45\\^4	;KKM II9:  	.RWWQZ--	. " 	&RWW%%	&s0   C  C5  	C2	C--C25	D#>DD#c                 ~    d }| j                  t              5  t         |              d d d        y # 1 sw Y   y xY w)Nc                 t   K   t                d {    d t        d       d {    d y 7 #7 w)Nre   Tr   rf   ro   r   r   r   r(   z5AsyncGenTest.test_async_gen_exception_03.<locals>.gen   s2     +I$'''I 's   848688)assertRaisesr	   r*   rj   s     r   test_async_gen_exception_03z(AsyncGenTest.test_async_gen_exception_03   s5    	 ~. 	CEN	 	 	s   3<c                    d } |       }|j                         }|j                         }| j                  |j                         d       	 |j                          | j	                  d       | j                  t              5  |j                         j                          d d d        y # t
        $ r)}| j                  |j                  d   d       Y d }~jd }~ww xY w# 1 sw Y   y xY w)Nc                 H   K   t                d {    d ddz   y 7 w)Nre      r   ro   r   r   r   r(   z5AsyncGenTest.test_async_gen_exception_04.<locals>.gen   s"     +IE s   " "r   rp   r   re   )	rq   r/   r]   rU   rr   r   r   ry   ZeroDivisionErrorrt   s         r   test_async_gen_exception_04z(AsyncGenTest.test_async_gen_exception_04   s    	
 E[[]\\^4	6KKM II4501 	&LLN##%	& 	&  	.RWWQZ--	.
	& 	&s$   B* C*	C3CCC(c                     d }| j                  t        d      5  t         |              d d d        y # 1 sw Y   y xY w)Nc                     K   d t         wrn   r-   r   r   r   r(   z5AsyncGenTest.test_async_gen_exception_05.<locals>.gen   s     I$$   z#async generator.*StopAsyncIterationr=   RuntimeErrorr*   rj   s     r   test_async_gen_exception_05z(AsyncGenTest.test_async_gen_exception_05   s;    	% ##L$IK 	CEN	 	 	   4=c                     d }| j                  t        d      5  t         |              d d d        y # 1 sw Y   y xY w)Nc                     K   d t         wrn   )r   r   r   r   r(   z5AsyncGenTest.test_async_gen_exception_06.<locals>.gen  s     Ir   zasync generator.*StopIterationr   rj   s     r   test_async_gen_exception_06z(AsyncGenTest.test_async_gen_exception_06  s;    	  ##L$DF 	CEN	 	 	r   c                 H    d }d }| j                   |        |              y )Nc               3   R   K   	 d ddz   d d d y # d d w xY wwNr}   r         d   r   r   r   r   r^   z:AsyncGenTest.test_async_gen_exception_07.<locals>.sync_gen  3     AI    '	 '
$'c                 ^   K   	 d ddz   d d d y # d d w xY wwr   r   r   r   r   r_   z;AsyncGenTest.test_async_gen_exception_07.<locals>.async_gen  s3     AI s   -
 -*-rb   rA   r^   r_   s      r   test_async_gen_exception_07z(AsyncGenTest.test_async_gen_exception_07  s"    		 	
IK8r   c                 H    d }d }| j                   |        |              y )Nc               3   \   K   	 d d ddz   d d y # d ddz   d w xY wwNr}   r   r   r   r   r   r   r   r   r^   z:AsyncGenTest.test_async_gen_exception_08.<locals>.sync_gen%  s:     AI	 As   , ,),c                    K   	 d t                d {    t                d {    d ddz   d d y 7 +7 # t                d {  7   d ddz   d w xY wwr   ro   r   r   r   r_   z;AsyncGenTest.test_async_gen_exception_08.<locals>.async_gen/  sa     k!!k!!AI "!ik!!AsG   A-A AA A-AA-A A-A*AA**A-r   r   s      r   test_async_gen_exception_08z(AsyncGenTest.test_async_gen_exception_08$  "    	
	 	
IK8r   c                 H    d }d }| j                   |        |              y )Nc               3   R   K   	 d ddz   d d d y # d d w xY wwr   r   r   r   r   r^   z:AsyncGenTest.test_async_gen_exception_09.<locals>.sync_gen>  r   r   c                    K   	 t                d {    d ddz   d t                d {    d d y 7 07 # d t                d {  7   d w xY wwr   ro   r   r   r   r_   z;AsyncGenTest.test_async_gen_exception_09.<locals>.async_genH  s_     k!!Ak!!I "
 " k!!sG   A(A AA A(AA(A A(A%AA%%A(r   r   s      r   test_async_gen_exception_09z(AsyncGenTest.test_async_gen_exception_09=  r   r   c                     d }| j                  t        d      5   |       j                         j                  d       d d d        y # 1 sw Y   y xY w)Nc                    K   d y wrn   r   r   r   r   r(   z5AsyncGenTest.test_async_gen_exception_10.<locals>.genW       I   	z!non-None value .* async generatorr   )r=   r5   r/   r   rj   s     r   test_async_gen_exception_10z(AsyncGenTest.test_async_gen_exception_10V  sG    	##I$GI 	(EOO""3'	( 	( 	(s   %AAc                 `    d fd}d fd}| j                   |        |              y )Nc               3      K   d d y wN
      r   r   r   r   r^   z:AsyncGenTest.test_async_gen_exception_11.<locals>.sync_gen^  s     HHs   
c               3      K   d         } | j                  d        	 | j                  t                      d y # t        $ r d Y w xY wwNr}   r   r   )r   r   GeneratorExit)sgr^   s    r   sync_gen_wrapperzBAsyncGenTest.test_async_gen_exception_11.<locals>.sync_gen_wrapperb  sM     GBGGDM) G ! s%   A? AAAAAc                     K   d d y wr   r   r   r   r   r_   z;AsyncGenTest.test_async_gen_exception_11.<locals>.async_genl  s     HHr   c                    K   d         } | j                  d        d {    	 | j                  t                      d {    d y 7 ,7 # t        $ r d Y w xY wwr   )asendathrowr   )asgr_   s    r   async_gen_wrapperzCAsyncGenTest.test_async_gen_exception_11.<locals>.async_gen_wrapperp  s`     G+C))D/!!jj111 G "1  sD   !A)AA)A AA A)A A&#A)%A&&A)r   )rA   r   r   r_   r^   s      @@r   test_async_gen_exception_11z(AsyncGenTest.test_async_gen_exception_11]  s1    				 	 0 24E4GHr   c                 L   fd} |       j                         }|j                         }| j                  t        d      5  |j	                          d d d        | j                  t        d      5  |j                  d        d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nc                 B   K   t                d {    d y 7 
wrn   anext)mes   r   r(   z5AsyncGenTest.test_async_gen_exception_12.<locals>.gen}  s     )OOI s   4anext\(\): asynchronous generator is already running4cannot reuse already awaited __anext__\(\)/asend\(\))rq   r/   r=   r   rU   r   )rA   r(   ru   r[   r   s       @r   test_async_gen_exception_12z(AsyncGenTest.test_async_gen_exception_12|  s    	 U\\^\\^##LGI 	KKM	 ##LGI 	GGDM	 			 		 	s   B3BBB#c                    dd l }|j                  d         G d dt              fd} |       }|j                  d       }|j	                  d        |j                  d       }| j                  t        d      5  |j                         d d d        | j                  t        d      5  |j	                  d        d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nr   c              3      K   | S wr#   r   vs    r   _async_yieldzRAsyncGenTest.test_async_gen_asend_throw_concurrent_with_send.<locals>._async_yield       G   c                       e Zd Zy)KAsyncGenTest.test_async_gen_asend_throw_concurrent_with_send.<locals>.MyExcNr
   r   r   r   MyExcr         r   r   c                 L   K   	 	  d        d {    7 #  $ r Y 
w xY wwr#   r   r   r   s   r   agenfnzLAsyncGenTest.test_async_gen_asend_throw_concurrent_with_send.<locals>.agenfn  6     &t,,, , (   $  $ !$!$r   r   )types	coroutinerV   r   r   r=   r   r   rA   r   r   agenr(   gen2r   r   s         @@r   /test_async_gen_asend_throw_concurrent_with_sendz<AsyncGenTest.test_async_gen_asend_throw_concurrent_with_send  s    		 
		I 		 xjjzz$##LGI 	JJu	 ##LGI 	IIdO	 			 		 	   >C	.C	CCc                    dd l }|j                  d         G d dt              fd} |       }|j                  d       }|j	                  d        |j                        }| j                  t        d      5  |j                         d d d        | j                  t        d      5  |j	                  d        d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nr   c              3      K   | S wr#   r   r   s    r   r   zSAsyncGenTest.test_async_gen_athrow_throw_concurrent_with_send.<locals>._async_yield  r   r   c                       e Zd Zy)LAsyncGenTest.test_async_gen_athrow_throw_concurrent_with_send.<locals>.MyExcNr
   r   r   r   r   r     r   r   r   c                 L   K   	 	  d        d {    7 #  $ r Y 
w xY wwr#   r   r   s   r   r   zMAsyncGenTest.test_async_gen_athrow_throw_concurrent_with_send.<locals>.agenfn  r   r   5athrow\(\): asynchronous generator is already running2cannot reuse already awaited aclose\(\)/athrow\(\))	r   r   rV   r   r   r   r=   r   r   r   s         @@r   0test_async_gen_athrow_throw_concurrent_with_sendz=AsyncGenTest.test_async_gen_athrow_throw_concurrent_with_send  s    		 
		I 		 xjj{{5!##LHJ 	JJu	 ##LEG 	IIdO	 			 		 	r   c                 V   dd l }|j                  d         G d dt              fd} |       }| j                  t              5  |j                  d       j                  d        d d d        |j                        }|j                         |j                        }| j                  t        d      5  |j                         d d d        | j                  t        d      5  |j                  d        d d d        y # 1 sw Y   xY w# 1 sw Y   FxY w# 1 sw Y   y xY w)Nr   c              3      K   | S wr#   r   r   s    r   r   zSAsyncGenTest.test_async_gen_asend_throw_concurrent_with_throw.<locals>._async_yield  r   r   c                       e Zd Zy)LAsyncGenTest.test_async_gen_asend_throw_concurrent_with_throw.<locals>.MyExcNr
   r   r   r   r   r     r   r   r   c                 n   K   	 d  	 	  d        d {    #  $ r Y w xY w7 #  $ r Y w xY wwr#   r   r   s   r   r   zMAsyncGenTest.test_async_gen_asend_throw_concurrent_with_throw.<locals>.agenfn  V      &t,,,    - @   5 5* (* 5%5%5* 2525r   r   r   r   rV   ry   r   r   r   r   r   r=   r   r   s         @@r   0test_async_gen_asend_throw_concurrent_with_throwz=AsyncGenTest.test_async_gen_asend_throw_concurrent_with_throw  s
   		 
		I 			 x}- 	(JJt!!$'	( kk% 		%zz% ##LGI 	JJu	 ##LGI 	IIdO	 		( 	(	 		 	$   
!D<D,DDDD(c                 V   dd l }|j                  d         G d dt              fd} |       }| j                  t              5  |j                  d       j                  d        d d d        |j                        }|j                         |j                  d       }| j                  t        d      5  |j                         d d d        | j                  t        d      5  |j                  d        d d d        y # 1 sw Y   xY w# 1 sw Y   FxY w# 1 sw Y   y xY w)Nr   c              3      K   | S wr#   r   r   s    r   r   zTAsyncGenTest.test_async_gen_athrow_throw_concurrent_with_throw.<locals>._async_yield  r   r   c                       e Zd Zy)MAsyncGenTest.test_async_gen_athrow_throw_concurrent_with_throw.<locals>.MyExcNr
   r   r   r   r   r     r   r   r   c                 n   K   	 d  	 	  d        d {    #  $ r Y w xY w7 #  $ r Y w xY wwr#   r   r   s   r   r   zNAsyncGenTest.test_async_gen_athrow_throw_concurrent_with_throw.<locals>.agenfn  r   r   r   r   r   r   s         @@r   1test_async_gen_athrow_throw_concurrent_with_throwz>AsyncGenTest.test_async_gen_athrow_throw_concurrent_with_throw  s
   		 
		I 			 x}- 	(JJt!!$'	( kk% 		%{{4 ##LHJ 	JJu	 ##LEG 	IIdO	 		( 	(	 		 	r   c                 2   d }| j                  t              5   |       j                  t        t               d       }d d d        | j	                  t              5  j                  d        ~t                d d d        y # 1 sw Y   DxY w# 1 sw Y   y xY w)Nc                    K   d y wrn   r   r   r   r   r(   zBAsyncGenTest.test_async_gen_3_arg_deprecation_warning.<locals>.gen  r   r   )assertWarnsDeprecationWarningr   r   ry   r   r   )rA   r(   xs      r   (test_async_gen_3_arg_deprecation_warningz5AsyncGenTest.test_async_gen_3_arg_deprecation_warning  s    	 01 	C]MOTBA	C}- 	FF4LL	 		C 	C	 	s   %BBB
Bc                    d } |       }| j                  |j                  d       d|_        | j                  |j                  d       | j                  d|j                         d|_        | j                  |j                  d       | j	                  |j
                         | j                  |j                  t        j                         | j                  |j                         | j                  |j                  t        j                         | j                  t        j                   |j#                                      y )Nc                    K   d y wrn   r   r   r   r   r(   z/AsyncGenTest.test_async_gen_api_01.<locals>.gen&  r   r   r(   123z.gen)r]   r   assertInr   assertIsNoneag_awaitassertIsInstanceag_framer   	FrameTypers   
ag_runningag_codeCodeType
assertTrueinspectisawaitableaclose)rA   r(   rX   s      r   test_async_gen_api_01z"AsyncGenTest.test_async_gen_api_01%  s    	 EU+
U+fann-/!**%ajj%//:&aii8++AHHJ78r   N)r   r   r   rb   rk   rv   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   rQ   rQ      sg    ) V
:;:&*9.9292(I>"BB$L#J	9r   rQ   c                   b   e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2d1 Z3d2 Z4d3 Z5d4 Z6d5 Z7d6 Z8d7 Z9d8 Z:d9 Z;y:);AsyncGenAsyncioTestc                 `    t         j                         | _        t         j                  d        y r#   )r   new_event_looploopset_event_looprA   s    r   setUpzAsyncGenAsyncioTest.setUp=  s     **,	t$r   c                 p    | j                   j                          d | _         t        j                  d        y r#   )r  closer   set_event_loop_policyr
  s    r   tearDownzAsyncGenAsyncioTest.tearDownA  s%    			%%d+r   c                     | j                  d      5  | j                  |t               d d d        | j                  d      5  | j                  |t               d d d        y # 1 sw Y   ;xY w# 1 sw Y   y xY w)Nzpure-Pythonr   builtin)subTest_check_async_iterator_anextr7   r   )rA   	ait_classs     r   check_async_iterator_anextz.AsyncGenAsyncioTest.check_async_iterator_anextF  sq    \\\. 	B,,YA	B\\	\* 	?,,Y>	? 	?	B 	B	? 	?s   A$A0$A-0A9c                 "   	         		fd} j                   j                   |             } j                  |g d        j                  t              5   j                   j                   |              d d d         fd} j                   j                   |             } j                  |d        fd} |         fd} j                   j                   |             } j                  |d       y # 1 sw Y   xY w)Nc                     K   g } | j                          d {          | j                          d {          | j                   d       d {          | S 7 I7 ,7 w)Nbuckle my shoer$   )resultsr   rX   s    r   consumez@AsyncGenAsyncioTest._check_async_iterator_anext.<locals>.consumeN  sY     GNNq>*NNq>*NNq*:!;;<N *);s1   A,A&A,A(A,A*A,(A,*A,)r}   r   r  c                    K           } j                   |        d {   d       j                   |        d {   d       j                  t              5   |        d {    d d d        j                  t              5   |        d {    d d d                }j                   |d       d {   d       j                   |d       d {   d       j                   |d       d {   d       j                   |d       d {   d       y7 7 7 # 1 sw Y   xY w7 # 1 sw Y   xY w7 7 o7 P7 1w)Nr}   r   r0   	completed)r]   ry   r.   )g1g2r  r   rA   s     r   test_2z?AsyncGenAsyncioTest._check_async_iterator_anext.<locals>.test_2Y  s1    B59_a059_a0""#56  Bi ""#56  Bi  B5Y#77;5Y#77;5Y#77C5Y#77C -,         8777s   ED3ED6E D:,D8-D:1EEEE&EE E&E' EE E(E)E6E8D::E?EEEEEEEr  c                             }  | d      }j                  t              5  t        j                  |j	                               5 }|j                  d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY wNr  )ry   r   
contextlibclosing	__await__r   )pobjrX   r  r   rA   s      r   	test_sendzBAsyncGenAsyncioTest._check_async_iterator_anext.<locals>.test_sendm  st    A;'C""=1 !''8 !AFF4L!! !! !! !s#   $A:A.A:.A7	3A::Bc                  x   K           }  | d      }j                  t        |j                  t               ywr!  )ry   r>   r   )r%  r&  r  r   rA   s     r   
test_throwzCAsyncGenAsyncioTest._check_async_iterator_anext.<locals>.test_throwv  s3     A;'Ck399kBs   7:)r  r    r]   ry   r.   )
rA   r  r   r  r&   r  r   r'  r)  rX   s
   ```      @r   r  z/AsyncGenAsyncioTest._check_async_iterator_anextL  s    K	 ii**7956712 	4II((3	4	" --fh7-	! 		 --jl;-O	4 	4s   !DDc                 ,    d }| j                  |       y )Nc                     K   d d y wNr}   r   r   r   r   r   r   z<AsyncGenAsyncioTest.test_async_generator_anext.<locals>.agen       GGr   r  )rA   r   s     r   test_async_generator_anextz.AsyncGenAsyncioTest.test_async_generator_anext  s    	 	''-r   c                 :     G d d      }| j                  |       y )Nc                   "    e Zd ZdZd Zd Zd Zy)IAsyncGenAsyncioTest.test_python_async_iterator_anext.<locals>.MyAsyncIterAsynchronously yield 1, then 2.c                     d| _         y Nr   yieldedr
  s    r   __init__zRAsyncGenAsyncioTest.test_python_async_iterator_anext.<locals>.MyAsyncIter.__init__  	     r   c                     | S r#   r   r
  s    r   rq   zSAsyncGenAsyncioTest.test_python_async_iterator_anext.<locals>.MyAsyncIter.__aiter__      r   c                 ~   K   | j                   dk\  r
t               | xj                   dz  c_         | j                   S wNr   r}   r7  r.   r
  s    r   r/   zSAsyncGenAsyncioTest.test_python_async_iterator_anext.<locals>.MyAsyncIter.__anext__  s3     <<1$,..LLA%L<<'s   ;=N)r   r   r   __doc__r8  rq   r/   r   r   r   MyAsyncIterr2    s    1!(r   r@  r.  )rA   r@  s     r    test_python_async_iterator_anextz4AsyncGenAsyncioTest.test_python_async_iterator_anext  s    	( 	( 	''4r   c                 H    dd l  G fdd      }| j                  |       y )Nr   c                   D    e Zd ZdZd Zd ZW  j                  d        Zy)fAsyncGenAsyncioTest.test_python_async_iterator_types_coroutine_anext.<locals>.MyAsyncIterWithTypesCoror3  c                     d| _         y r5  r6  r
  s    r   r8  zoAsyncGenAsyncioTest.test_python_async_iterator_types_coroutine_anext.<locals>.MyAsyncIterWithTypesCoro.__init__  r9  r   c                     | S r#   r   r
  s    r   rq   zpAsyncGenAsyncioTest.test_python_async_iterator_types_coroutine_anext.<locals>.MyAsyncIterWithTypesCoro.__aiter__  r;  r   c              3      K   	 | j                   dk\  r
t               | xj                   dz  c_         | j                   S wr=  r>  r
  s    r   r/   zpAsyncGenAsyncioTest.test_python_async_iterator_types_coroutine_anext.<locals>.MyAsyncIterWithTypesCoro.__anext__  s6     <<1$,..LLA%L<<'s   <>N)r   r   r   r?  r8  rq   r   r/   )r   s   r   MyAsyncIterWithTypesCororD    s&    1!__( (r   rH  )r   r  )rA   rH  r   s     @r   0test_python_async_iterator_types_coroutine_anextzDAsyncGenAsyncioTest.test_python_async_iterator_types_coroutine_anext  s!    	( 	( 	''(@Ar   c                     d } |       fd}| j                   j                   |             }| j                  |ddg       y )Nc                     K   d d y wr,  r   r   r   r   r(   z5AsyncGenAsyncioTest.test_async_gen_aiter.<locals>.gen  r-  r   c                  X   K   t              2  cg c3 d {   } | 7 6 c} S c c} w wr#   aiter)r'   rX   s    r   r  z9AsyncGenAsyncioTest.test_async_gen_aiter.<locals>.consume  s&     %*1X..A....s$   *%!
!%!%*r}   r   r  r    r]   )rA   r(   r  r&   rX   s       @r   test_async_gen_aiterz(AsyncGenAsyncioTest.test_async_gen_aiter  s@    	 E	/ii**795q!f%r   c                     g  G d d      } |       fd}| j                   j                   |              | j                  ddg       y )Nc                       e Zd Zd Zy);AsyncGenAsyncioTest.test_async_gen_aiter_class.<locals>.Genc                    K   d d y wr,  r   r
  s    r   rq   zEAsyncGenAsyncioTest.test_async_gen_aiter_class.<locals>.Gen.__aiter__  s     r   Nr   r   r   rq   r   r   r   GenrS    s    r   rV  c                     K   t              } 	 	 j                  t        |        d {          $7 	# t        $ r Y y w xY wwr#   )rN  r%   r   r.   )aitrX   r  s    r   r  z?AsyncGenAsyncioTest.test_async_gen_aiter_class.<locals>.consume  sD     (CNNs#34 #3) s0   A6 46 A6 	AAAAr}   r   rO  )rA   rV  r  rX   r  s      @@r   test_async_gen_aiter_classz.AsyncGenAsyncioTest.test_async_gen_aiter_class  sJ    	 	 E	 			$$WY/1a&)r   c                 d    d }t         |             }t        |      }| j                  ||       y )Nc                    K   d y wNr}   r   r   r   r   r(   z6AsyncGenAsyncioTest.test_aiter_idempotent.<locals>.gen       Gr   )rN  rh   )rA   r(   applied_onceapplied_twices       r   test_aiter_idempotentz)AsyncGenAsyncioTest.test_aiter_idempotent  s*    	SU|l+lM2r   c                    d d }fd}fd}fd}| j                  t              5  | j                  j                   |              d d d        | j                  t              5  | j                  j                   |              d d d        | j                  t              5  | j                  j                   |              d d d        | j                  t              5  | j                  j                   |              d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   `xY w# 1 sw Y   y xY w)Nc                    K   d y wr\  r   r   r   r   r(   z4AsyncGenAsyncioTest.test_anext_bad_args.<locals>.gen  r]  r   c                  4   K   t                d {    y 7 wr#   r   r   r   r   call_with_too_few_argszGAsyncGenAsyncioTest.test_anext_bad_args.<locals>.call_with_too_few_args       'MM   c                  F   K   t                 dd       d {    y 7 wNr}   r   r   r(   s   r   call_with_too_many_argszHAsyncGenAsyncioTest.test_anext_bad_args.<locals>.call_with_too_many_args  s     q!$$$s   !!c                  D   K   t        d                d {    y 7 wr\  r   ri  s   r   call_with_wrong_type_argszJAsyncGenAsyncioTest.test_anext_bad_args.<locals>.call_with_wrong_type_args  s     35/!!     c                  D   K   t                        d {    y 7 w)N)	aiteratorr   ri  s   r   call_with_kwargz@AsyncGenAsyncioTest.test_anext_bad_args.<locals>.call_with_kwarg  s     #%(((rm  ry   r5   r  r    )rA   rd  rj  rl  rp  r(   s        @r   test_anext_bad_argsz'AsyncGenAsyncioTest.test_anext_bad_args  s   			%	"	)y) 	CII(()?)AB	Cy) 	DII(()@)BC	Dy) 	FII(()B)DE	Fy) 	<II(():;	< 	<	C 	C	D 	D	F 	F	< 	<s/   !D*!D(!D(&!D4DD%(D14D=c                 t      fd} j                   j                   |             } j                  |d       y )Nc                  ^  K    G d d       G fdd      } d}t         |        d      }j                  t        |      5  | d {    d d d        t         |              }j                  t        |      5  | d {    d d d        y7 F# 1 sw Y   ExY w7 # 1 sw Y   yxY ww)Nc                       e Zd Zd Zy)UAsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable.<locals>.BadAwaitablec                      y)N*   r   r
  s    r   r$  z_AsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable.<locals>.BadAwaitable.__await__  s    r   Nr   r   r   r$  r   r   r   BadAwaitablerv    s    r   rz  c                       e Zd Zd Z fdZy)TAsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable.<locals>.MyAsyncIterc                     | S r#   r   r
  s    r   rq   z^AsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable.<locals>.MyAsyncIter.__aiter__  s    Kr   c                             S r#   r   )rA   rz  s    r   r/   z^AsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable.<locals>.MyAsyncIter.__anext__  s    '>)r   Nr   r   r   rq   r/   )rz  s   r   r@  r|    s     *r   r@  z__await__.*iteratorr0   r  )r   r=   r5   )r@  regexr   rz  rA   s      @r   bad_awaitablez?AsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable  s      * *
 +EkmY7I''	59   km,I''	59   	        sZ   A B-B
BB.B-=B!BB!	B-BBB-B!!B*&B-r  rO  )rA   r  r   s   `  r   test_anext_bad_awaitz(AsyncGenAsyncioTest.test_anext_bad_await  s0    	" --mo>-r   c                 &  K   t         |       d      }| j                  t              5  | d {    d d d        t         |             }| j                  t              5  | d {    d d d        y7 E# 1 sw Y   DxY w7 # 1 sw Y   yxY wwNr0   r  )r   ry   r5   )rA   aiter_classr   s      r   check_anext_returning_iteratorz2AsyncGenAsyncioTest.check_anext_returning_iterator  s     +-3	y) 	OO	+-(	y) 	OO		 	 	 	sU   'BA7A5A7-B!B'B(B,	B5A77B <BBB
Bc                      G d d      }| j                   j                  | j                  |            }| j                  |d       y )Nc                       e Zd Zd Zd Zy)EAsyncGenAsyncioTest.test_anext_return_iterator.<locals>.WithIterAnextc                     | S r#   r   r
  s    r   rq   zOAsyncGenAsyncioTest.test_anext_return_iterator.<locals>.WithIterAnext.__aiter__  r;  r   c                     t        d      S )Nabc)iterr
  s    r   r/   zOAsyncGenAsyncioTest.test_anext_return_iterator.<locals>.WithIterAnext.__anext__  s    E{"r   Nr  r   r   r   WithIterAnextr    s    #r   r  r  r  r    r  r]   )rA   r  r   s      r   test_anext_return_iteratorz.AsyncGenAsyncioTest.test_anext_return_iterator  s>    	# 	#
 --d.Q.QR_.`a-r   c                      G d d      }| j                   j                  | j                  |            }| j                  |d       y )Nc                       e Zd Zd Zd Zy)EAsyncGenAsyncioTest.test_anext_return_generator.<locals>.WithGenAnextc                     | S r#   r   r
  s    r   rq   zOAsyncGenAsyncioTest.test_anext_return_generator.<locals>.WithGenAnext.__aiter__  r;  r   c              3      K   d  y wr#   r   r
  s    r   r/   zOAsyncGenAsyncioTest.test_anext_return_generator.<locals>.WithGenAnext.__anext__  s	     s   Nr  r   r   r   WithGenAnextr    s    r   r  r  r  )rA   r  r   s      r   test_anext_return_generatorz/AsyncGenAsyncioTest.test_anext_return_generator  s>    	 	
 --d.Q.QR^._`-r   c                       G d d       G fdd       fd} j                   j                   |             } j                  |d       y )Nc                       e Zd Zd Zy)EAsyncGenAsyncioTest.test_anext_await_raises.<locals>.RaisingAwaitablec              3      K   t               wr#   r~   r
  s    r   r$  zOAsyncGenAsyncioTest.test_anext_await_raises.<locals>.RaisingAwaitable.__await__  s     '))s   Nry  r   r   r   RaisingAwaitabler    s    r   r  c                       e Zd Zd Z fdZy)NAsyncGenAsyncioTest.test_anext_await_raises.<locals>.WithRaisingAwaitableAnextc                     | S r#   r   r
  s    r   rq   zXAsyncGenAsyncioTest.test_anext_await_raises.<locals>.WithRaisingAwaitableAnext.__aiter__  r;  r   c                             S r#   r   )rA   r  s    r   r/   zXAsyncGenAsyncioTest.test_anext_await_raises.<locals>.WithRaisingAwaitableAnext.__anext__  s    '))r   Nr  )r  s   r   WithRaisingAwaitableAnextr    s    *r   r  c                  (  K   t                      } j                  t              5  |  d {    d d d        t                d      } j                  t              5  |  d {    d d d        y7 F# 1 sw Y   ExY w7 # 1 sw Y   yxY wwr  )r   ry   r~   )r   r  rA   s    r   do_testz<AsyncGenAsyncioTest.test_anext_await_raises.<locals>.do_test  s     79:I""#45   799EI""#45   	        sU   &BA8A6A8.B"B(B)B-	B6A88B=BBBBr  rO  )rA   r  r   r  r  s   `  @@r   test_anext_await_raisesz+AsyncGenAsyncioTest.test_anext_await_raises  sD    	 		* 	*
	 --gi8-r   c                    	
 t         j                  d        	 G d dt              	fd

 fd}
 fd}
 fd} fd} fd	} fd
} fd} ||        ||        ||        ||        ||        ||       y )Nc              3      K   | S wr#   r   r   s    r   r   z9AsyncGenAsyncioTest.test_anext_iter.<locals>._async_yield#  r   r   c                       e Zd Zy)4AsyncGenAsyncioTest.test_anext_iter.<locals>.MyErrorNr
   r   r   r   MyErrorr  '  r   r   r  c                 l   K   	  d       d {    y 7 #  $ r  d       d {  7   Y y w xY wwr,  r   r  r   s   r   r   z3AsyncGenAsyncioTest.test_anext_iter.<locals>.agenfn*  sA     &"1o%%  & &"1o%%&0   4  4 1+1414c                            }t        j                   | |d      j                               5 }j                  |j	                  d       d       j                  |j                                d       	 |j	                  d        j                  d       j                  j                  d       d d d        y # t        $ r}|}Y d }~5d }~ww xY w# 1 sw Y   y xY w)Nr0   r}   r   rp   )	r"  r#  r$  r]   r   r   rr   r   value)r   r   rX   eerrr  r   rA   s        r   test1z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test12  s    8D##E$	$:$D$D$FG 	71  q1  !3Q7>FF4L II<=  I6	7 	7
 % C	7 	7s6   AC<C-C	CCCCCC$c                            }t        j                   | |d      j                               5 }j                  |j	                  d       d       j                  |j                                d       j                        5  |j                                 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr0   r}   r   )r"  r#  r$  r]   r   r   ry   )r   r   rX   r  r   rA   s      r   test2z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test2?  s    8D##E$	$:$D$D$FG '1  q1  !3Q7&&w/ 'GGGI&'' '' '' 's$   AC B4#C 4B=	9C  C	c                            }t        j                   | |d      j                               5 }j                  |j	                  d       d       |j                          j                  t        d      5  j                  |j	                  d       d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr0   r}   zcannot reuse)r"  r#  r$  r]   r   r  r=   r   )r   r   rX   r   rA   s      r   test3z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test3G  s    8D##E$	$:$D$D$FG 61  q1	++L.I 6$$QVVD\1566 66 66 6s$   AB:;"B.B:.B7	3B::Cc                    t         j                  d        fd} |       }t        j                   | |d      j	                               5 }j                  |j                  d       d       j                  |j                                d       j                  d      5  |j                   d             d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc              3   ,   K   | dz   | dz  dz   S wNr   r}   r   r   s    r   r   zHAsyncGenAsyncioTest.test_anext_iter.<locals>.test4.<locals>._async_yieldP        "f 2vz*+   c                 l   K   	  d       d {    y 7 #  $ r  d       d {  7   Y y w xY wwr,  r   r  s   r   r   zBAsyncGenAsyncioTest.test_anext_iter.<locals>.test4.<locals>.agenfnU  sA     *&q/))  * *&q/))*r  r0   r   r   val)	r   r   r"  r#  r$  r]   r   r   r=   r   r   r   rX   r   r  rA   s       @r   test4z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test4O  s    __, , 8D##E$	$:$D$D$FG ,1  r2  !3R8++GU; ,GGGEN+,, ,, ,, ,s%   AC*CCC	CC(c                    t         j                  d        fd} |       }t        j                   | |d      j	                               5 }j                  |j                  d       d       j                  t        d      5  |j                                 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc              3   ,   K   | dz   | dz  dz   S wr  r   r   s    r   r   zHAsyncGenAsyncioTest.test_anext_iter.<locals>.test5.<locals>._async_yielde  r  r  c                 T   K   	  d       d {    d y 7 
#  $ r Y y w xY wwNr}   aaar   r  s   r   r   zBAsyncGenAsyncioTest.test_anext_iter.<locals>.test5.<locals>.agenfnj  s6     &q/))  * s(   (  ( %(%(r0   r   )
r   r   r"  r#  r$  r]   r   r=   r   r   r  s       @r   test5z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test5d  s    __, , 8D##E$	$:$D$D$FG '1  r2++M9E 'GGGI&'' '' '' 's$   8B<B0B<0B9	5B<<Cc                 B   t         j                  d        fd} |       }t        j                   | |d      j	                               5 }j                        5  |j                                 d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc              3   ,   K   | dz   | dz  dz   S wr  r   r   s    r   r   zHAsyncGenAsyncioTest.test_anext_iter.<locals>.test6.<locals>._async_yieldx  r  r  c                 <   K     d       d {    d y 7 
wr  r   )r   s   r   r   zBAsyncGenAsyncioTest.test_anext_iter.<locals>.test6.<locals>.agenfn}  s     "1o%% &s   r0   )r   r   r"  r#  r$  ry   r   r  s       @r   test6z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test6w  s    __, , 8D##E$	$:$D$D$FG '1&&w/ 'GGGI&'' '' '' 's$   B!B	8B	B	BBc                     j                  d      5   | t               d d d        j                  d      5   | t               d d d        y # 1 sw Y   0xY w# 1 sw Y   y xY w)Nzpure-Python anext()zbuiltin anext())r  r7   r   )testrA   s    r   run_testz5AsyncGenAsyncioTest.test_anext_iter.<locals>.run_test  sZ    34 X/0 U   s   AAAA$)r   r   rV   )rA   r  r  r  r  r  r  r  r  r   r   s   `       @@@r   test_anext_iterz#AsyncGenAsyncioTest.test_anext_iter"  sy    		 
		i 			7	'	6	,*	'&	'	 	r   c                    d d }fd}d }| j                  t              5  | j                  j                   |              d d d        | j                  t              5  | j                  j                   |              d d d        | j                  t              5  | j                  j                   |              d d d        y # 1 sw Y   xY w# 1 sw Y   TxY w# 1 sw Y   y xY w)Nc                    K   d y wr\  r   r   r   r   r(   z4AsyncGenAsyncioTest.test_aiter_bad_args.<locals>.gen  r]  r   c                  4   K   t                d {    y 7 wr#   rM  r   r   r   rd  zGAsyncGenAsyncioTest.test_aiter_bad_args.<locals>.call_with_too_few_args  re  rf  c                  D   K   t                 d       d {    y 7 wr\  rM  ri  s   r   rj  zHAsyncGenAsyncioTest.test_aiter_bad_args.<locals>.call_with_too_many_args  s     q/!!rm  c                  6   K   t        d       d {    y 7 wr\  rM  r   r   r   call_with_wrong_type_argzIAsyncGenAsyncioTest.test_aiter_bad_args.<locals>.call_with_wrong_type_arg  s     (NNs   rq  )rA   rd  rj  r  r(   s       @r   test_aiter_bad_argsz'AsyncGenAsyncioTest.test_aiter_bad_args  s    			"	y) 	CII(()?)AB	Cy) 	DII(()@)BC	Dy) 	EII(()A)CD	E 	E		C 	C	D 	D	E 	Es#   !C#!C!!C#CC #C,c                 R   K   g }|2 3 d {   }|j                  |       7 6 |S wr#   r$   )rA   r(   r&   r'   s       r   r*   zAsyncGenAsyncioTest.to_list  s2      	 	!JJqM	s
s   '$"$'$'c                     d }| j                   j                  | j                   |                   }| j                  |ddg       y )Nc                    K   d t         j                  d       d {    d t         j                  d       d {    y 7 '7 wNr}   {Gz?r   r   sleepr   r   r   r(   z:AsyncGenAsyncioTest.test_async_gen_asyncio_01.<locals>.gen  s@     G--%%%G--%%% &%s!   AA!AA
A
Ar}   r   r  r    r*   r]   )rA   r(   r&   s      r   test_async_gen_asyncio_01z-AsyncGenAsyncioTest.test_async_gen_asyncio_01  s<    	 ii**4<<+>?q!f%r   c                     d }| j                  t              5  | j                  j                  | j	                   |                    d d d        y # 1 sw Y   y xY w)Nc                 r   K   d t         j                  d       d {    d ddz   d y 7 w)Nr}   r  r   r   r   r  r   r   r   r(   z:AsyncGenAsyncioTest.test_async_gen_asyncio_02.<locals>.gen  s3     G--%%%GEG &s   757)ry   r~   r  r    r*   rj   s     r   test_async_gen_asyncio_02z-AsyncGenAsyncioTest.test_async_gen_asyncio_02  sJ    	 01 	>II((ce)<=	> 	> 	>s   0AAc                     | j                   } G d d      }|j                  | j                   |                   }| j                  |ddg       y )Nc                       e Zd Zd Zy):AsyncGenAsyncioTest.test_async_gen_asyncio_03.<locals>.Genc                ^   K   d t         j                  d       d {    d y 7 
wr  r  r
  s    r   rq   zDAsyncGenAsyncioTest.test_async_gen_asyncio_03.<locals>.Gen.__aiter__  s'     mmD))) *s   -+-NrU  r   r   r   rV  r    s    r   rV  r}   r   r  )rA   r  rV  r&   s       r   test_async_gen_asyncio_03z-AsyncGenAsyncioTest.test_async_gen_asyncio_03  sF    yy	 	 %%dll35&9:q!f%r   c                      d  fd} fd} j                   j                   |               j                   j                   |              y )Nc                    K   d t         j                  d       d {    	 d d t         j                  d       d {    d y 7 2# t        $ r d Y 5w xY w7  w)Nr}   r  r   r        )r   r  r~   r   r   r   fooz@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_04.<locals>.foo  sc     G--%%% --%%%G & % 
%s=   A+AA+
A A+A)	A+A&#A+%A&&A+c                    K           j                         } j                  | j                          d {   d       j                  | j                          d {   d       j                  | j                          d {   d       j                  | j                          d {   d       j                  t              5  | j                          d {    d d d        j                  t              5  | j                          d {    d d d        y 7 7 7 7 |7 K# 1 sw Y   JxY w7 ## 1 sw Y   y xY ww)Nr}   r   r   r  )rq   r]   r/   ry   r.   )itr  rA   s    r   run1zAAsyncGenAsyncioTest.test_async_gen_asyncio_anext_04.<locals>.run1  s     "B2<<>1152<<>1152<<>1152<<>115""#56 %lln$$%""#56 %lln$$% % 2111$% % %% %s   4E
D&'E
D( 'E
D*'E
/D,0E
D0"D.#D0'E
D>D<D>
E
(E
*E
,E
.D00D95E
<D>>EE
c                    K           j                         } j                  | j                          d {   d       j                  | j                          d {   d       	 | j                         j                  t               j                  d       j                  | j                          d {   d       j                  t              5  | j                          d {    d d d        y 7 7 # t        $ r)}j                  |j                  d   d       Y d }~d }~ww xY w7 y7 H# 1 sw Y   y xY ww)Nr}   r   rp   r   r  r  )
rq   r]   r/   r   r~   rr   r   r   ry   r.   r  r   r  rA   s     r   run2zAAsyncGenAsyncioTest.test_async_gen_asyncio_anext_04.<locals>.run2  s     "B2<<>1152<<>115:$$%67 		892<<>115""#56 %lln$$% % 21 ! 3  T223 2$% %s   4EC='EC? 	E*#D /E<D6=ED:/D80D:4
E?E	D3
D.)E.D33E8D::E?Er  r    )rA   r  r  r  s   `  @r   test_async_gen_asyncio_anext_04z3AsyncGenAsyncioTest.test_async_gen_asyncio_anext_04  s<    		
	%	% 			$$TV,		$$TV,r   c                 Z     d  fd} j                   j                   |              y )Nc                 0   K   d} | } | dz   y wNr}   r   r   r   s    r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_05.<locals>.foo  s     AAc'Ms   c                  $  K           j                         } 	 | j                         j                  d        j                  d       	 | j                         j                  d       j                  d       	 | j                         j                  d       j                  d       j                  t              5  | j                          d {    d d d        y # t        $ r)}j                  |j                  d   d       Y d }~d }~ww xY w# t        $ r)}j                  |j                  d   d       Y d }~d }~ww xY w# t        $ r)}j                  |j                  d   d       Y d }~d }~ww xY w7 # 1 sw Y   y xY ww)Nrp   r   r}   r      i  )	rq   r/   r   rr   r   r]   r   ry   r.   r  s     r   runz@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_05.<locals>.run  sO    "B:##D) 		89:##B' 		89:##B' 		89""#56 %lln$$% %' ! 0  Q//0 ! 1  R001 ! 3  T223 %% %s   FC# FD *F<E &FFFF	F#	D,DFDF	E
!E FE

F	E?E:5F:E??FFF	Fr  rA   r  r  s   ` @r   test_async_gen_asyncio_anext_05z3AsyncGenAsyncioTest.test_async_gen_asyncio_anext_05  s#    	
	%6 			$$SU+r   c                 6    dd } |       }|j                  d         j                  t              5  |j                  d        d d d        fd fd} j                  j	                   |               j                  d       y # 1 sw Y   HxY w)Nr   c               3   $   K   	 d  y #  Y y xY wwr#   r   r   r   r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_06.<locals>.foo          	 c                 0   K   	 d  d y #  Y d y xY wwr\  r   DONEs   r   r(   z@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_06.<locals>.gen)  $      DD    c                     K           } | j                  d        d {    j                  t              5  | j                  d        d {    d d d        dz  y 7 A7 # 1 sw Y   xY wwNr   )r   ry   r.   rX   r  r(   rA   s    r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_06.<locals>.run1  sf     A''$-""#56 $ggdm##$BJD  #$ $s8   A1A!A1A%A#A%A1#A%%A.*A1   )r   ry   r   r  r    r]   rA   r  rX   r  r  r(   s   `   @@r   test_async_gen_asyncio_anext_06z3AsyncGenAsyncioTest.test_async_gen_asyncio_anext_06  s    	
 E	t}- 	FF4L	
		 			$$SU+r"-	 	s   BBc                 Z     d  fd} j                   j                   |              y )Nc                 @   K   	 d y # t         $ r d Y y w xY ww)Nr}   r   r  r   r   r   r  zCAsyncGenAsyncioTest.test_async_gen_asyncio_anext_tuple.<locals>.foo=  s#     
$ 
   
 c                     K           j                         } j                  | j                          d {   d       j                  t              5 }| j                         j                  t               d d d        j                  j                  j                  d   d       j                  t              5  | j                          d {    d d d        y 7 # 1 sw Y   kxY w7 # 1 sw Y   y xY ww)Nr  r   r  )
rq   r]   r/   ry   r   r   r~   	exceptionr   r.   )r  cmr  rA   s     r   r  zCAsyncGenAsyncioTest.test_async_gen_asyncio_anext_tuple.<locals>.runC  s     "B2<<>148""=1 8R$$%678R\\..q148""#56 %lln$$% %	 28 8 %% %sR   4C>C"C>$C$:AC> C2C0C2
C>$C-)C>0C22C;7C>r  r  s   ` @r   "test_async_gen_asyncio_anext_tuplez6AsyncGenAsyncioTest.test_async_gen_asyncio_anext_tuple<  s#    		% 			$$SU+r   c                 Z     d  fd} j                   j                   |              y )Nc                 d   K   	 t        d       y # t        $ r t        d       Y y w xY wwrh  )r   r~   r   r   r   r  zKAsyncGenAsyncioTest.test_async_gen_asyncio_anext_stopiteration.<locals>.fooP  s/     '#A&&$ '#A&&'s   0 0-0-0c                    K           j                         } | j                          d {   }j                  |t               j	                  |j
                  d       j                  t              5 }| j                         j                  t               d d d        j                  j                  d   }j                  |t               j	                  |j
                  d       j                  t              5  | j                          d {    d d d        y 7 # 1 sw Y   xY w7 # 1 sw Y   y xY ww)Nr}   r   r   )rq   r/   r   r   r]   r  ry   r   r~   r  r   r.   )r  r   r  r  rA   s      r   r  zKAsyncGenAsyncioTest.test_async_gen_asyncio_anext_stopiteration.<locals>.runV  s     "Blln$A!!!]3QWWa(""=1 8R$$%678!!!$A!!!]3QWWa(""#56 %lln$$% % %8 8 %% %sS   )ED&AE8$D(A(ED6D4D6
E(D1-E4D66D?;Er  r  s   ` @r   *test_async_gen_asyncio_anext_stopiterationz>AsyncGenAsyncioTest.test_async_gen_asyncio_anext_stopiterationO  s#    	'	% 			$$SU+r   c                     d fd}| j                  t        d      5  | j                  j                   |              d d d        y # 1 sw Y   y xY w)Nc                    K   	 d ddz   t         j                  d       d {    d y 7 
# t         j                  d       d {  7   d w xY ww)Nr}   r   r  r  r  r   r   r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_06.<locals>.foog  sJ     AmmD))) *gmmD)))s.   A
3 A1AAAAAc                     K           } | j                         }|j                          d {    | j                          d {    y 7 7 wr#   rq   r/   r  r(   r  r  s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_06.<locals>.runo  @     %CB,,.  **, !!   +AAAAAAz%async generator ignored GeneratorExit)r=   r   r  r    r  s     @r    test_async_gen_asyncio_aclose_06z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_06f  sN    		 ##79 	0 II((/	0 	0 	0s   !A

Ac                     dfdfd}| j                   j                   |              | j                  d       y )Nr   c                 @  K   	 d ddz   t         j                  d       d {    t         j                  d       d {     dz    dz   y 7 ,7 # t         j                  d       d {  7   t         j                  d       d {  7    dz   w xY ww)Nr}   r   r  r  r  r   s   r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_07.<locals>.foo}  s     AmmD)))mmD)))	DLD *) mmD)))mmD)))	sO   B
A BABABBB1A42BBBBc                     K           } | j                         }|j                          d {    | j                          d {    y 7 7 wr#   r  r  s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_07.<locals>.run  r  r  r}   rO  )rA   r  r  r  s     @@r    test_async_gen_asyncio_aclose_07z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_07z  s8    			 			$$SU+q!r   c                 H    dt         j                   j                        fd fd} j                  j                   |               j	                  d       j                           j                  j                  t         j                  d             y )Nr   r  c                 b  K   	 d  d {     dz   d t         j                  d       d {    t         j                  d       d {     dz    dz   y 7 S7 .7 # t         j                  d       d {  7   t         j                  d       d {  7    dz   w xY ww)Nr}   r  r   r  r  )r  r   s   r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_08.<locals>.foo  s     		mmD)))mmD)))	DLD  *) mmD)))mmD)))	se   B/
A) A#A) B/A%B/A'B/#A) %B/'B/)B,BB, B#!B,,B/c                     K           } | j                         }j                  |j                          d {   d       | j                          d {    y 7 "7 wr\  )rq   r]   r/   r  )r(   r  r  rA   s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_08.<locals>.run  sJ     %CB2<<>115**, 2s!   6A AA AA A r}   r  )r   Futurer  r    r]   cancelr  )rA   r  r  r  r   s   ` @@@r    test_async_gen_asyncio_aclose_08z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_08  sr    nn$))n,		 			$$SU+q! 	

		$$W]]4%89r   c                     dfdfd}| j                   j                   |              | j                  d       y )Nr   c                 f   K   	 	 d # t         j                  d       d {  7   d w xY wwNr}   r   r  r   s   r   r(   zDAsyncGenAsyncioTest.test_async_gen_asyncio_gc_aclose_09.<locals>.gen  s3     G  mmA&&&s   1 .(.1c                    K           } | j                          d {    | j                          d {    ~ t                t        j                  d       d {    t        j                  d       d {    y 7 b7 L7 &7 wr5  )r/   r   r   r  )rX   r(   s    r   r  zDAsyncGenAsyncioTest.test_async_gen_asyncio_gc_aclose_09.<locals>.run  sm     A++-++-L --"""--"""  
 #"sC   B	BB	B'B	BB	;B<B	B	B	B	r}   rO  )rA   r  r  r(   s     @@r   #test_async_gen_asyncio_gc_aclose_09z7AsyncGenAsyncioTest.test_async_gen_asyncio_gc_aclose_09  s8    	
	# 			$$SU+q!r   c                     dd } |       }|j                  d        |j                          fdfd}| j                  j                   |              | j	                  d       y )Nr   c               3   $   K   	 d  y #  Y y xY wwr#   r   r   r   r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_10.<locals>.foo  r  r  c                 0   K   	 d  d y #  Y d y xY wwr\  r   r   s   r   r(   zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_10.<locals>.gen  r  r  c                     K           } | j                  d        d {    | j                          d {    dz  y 7 "7 wr  )r   r  )rX   r  r(   s    r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_10.<locals>.run  s@     A''$-((*BJD  s   AAAAAAr  )r   r  r  r    r]   r  s       @@r    test_async_gen_asyncio_aclose_10z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_10  sZ    	
 E	t				 			$$SU+r"r   c                 6    dd } |       }|j                  d         j                  t        d      5  |j                          d d d        fd fd} j                  j                   |               j                  d       y # 1 sw Y   HxY w)Nr   c               3   ,   K   	 d  d  y #  Y 	xY wwr#   r   r   r   r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_11.<locals>.foo  s      s    ignored GeneratorExitc                 <   K   	 d  d   dz   y #  Y xY wwr\  r   r   s   r   r(   zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_11.<locals>.gen  s&      AIDs    c                     K           } | j                  d        d {    j                  t        d      5  | j                          d {    d d d        dz  y 7 A7 # 1 sw Y   xY ww)Nr6  r   )r   r=   r   r  r  s    r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_11.<locals>.run  sf     A''$-''6MN !hhj  !BJD   ! !s8   A1A!A1A%A#A%A1#A%%A.*A1r   )r   r=   r   r  r  r    r]   r  s   `   @@r    test_async_gen_asyncio_aclose_11z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_11  s    	 E	t##L2IJ 	GGI	
		 			$$SU+r"/	 	s   BBc                     dd fdfd}| j                   j                   |              | j                  d       y )Nr   c                  T   K   t         j                  d       d {    ddz   y 7 
w)Nr  r}   r   r  r   r   r   targetzDAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_12.<locals>.target  s$     --%%%E &   (&(c                    K   t         j                                } 	 d 	 |  d {    y 7 # t        $ r dY y w xY w# 	 |  d {  7   w # t        $ r dY w w xY wxY wwr\  )r   create_taskr~   )taskr  r<  s    r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_12.<locals>.foo  sb     &&vx0DJJ( DJJ( Dsp   A%A 2 02 A%2 A A%A  A%A"A
AAA"AA"AA""A%c                     K           } | j                         }|j                          d {    | j                          d {    y 7 7 wr#   r  r  s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_12.<locals>.run#  r  r  r}   rO  )rA   r  r  r  r<  s     @@@r    test_async_gen_asyncio_aclose_12z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_12  s=    				 			$$SU+q!r   c                 (    dd } |       }|j                  d       } j                  |d       |j                  d      } j                  |d       fd fd} j                  j                   |               j                  d       y )Nr   c               3   "   K   d} | dz   y wr,  r   r   s    r   sgenzAAsyncGenAsyncioTest.test_async_gen_asyncio_asend_01.<locals>.sgen0  s     Aa%Kr   r}   r      c                   K   	 t         j                  d       d {    d} t         j                  d       d {    | dz   t         j                  d       d {    	 t         j                  d       d {    t         j                  d       d {    dy 7 7 i7 F7 *7 # t         j                  d       d {  7   t         j                  d       d {  7   dw xY wwNr  r}   r   r  )r   r  s    r   r(   z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_01.<locals>.gen9  s     
mmD)))GmmD)))!emmD)))mmD)))mmD))) *)) *) mmD)))mmD)))s   C4B1 B'!B1 B) $B1 $B+%B1 *C4B-C4B/ C4'B1 )B1 +B1 -C4/C41C1
CC1(C+)C11C4c                  Z  K           } | j                  d        d {   }j                  |d       | j                  d       d {   }j                  |d       j                  t              5  | j                  d        d {    d d d        y 7 y7 P7 # 1 sw Y   y xY ww)Nr}   r   rF  )r   r]   ry   r.   rX   r   r(   rA   s     r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_01.<locals>.runG  s     Aggdm#AQ"ggcl"AQ$""#56 $ggdm##$ $ $ # $$ $K   B+B*B+
B+B+6BBB
B+B+BB($B+)r   r]   r  r    )rA   rE  r   r   r  r  r(   s   `    @@r   test_async_gen_asyncio_asend_01z3AsyncGenAsyncioTest.test_async_gen_asyncio_asend_01,  s    	 VGGDMAGGCLC 	
	$ 			$$SU+q!r   c                      dd fd fd} j                  t              5   j                  j                   |              d d d         j	                  d       y # 1 sw Y   xY w)Nr   c                 T   K   t         j                  |        d {    ddz   y 7 
wr,  r  )delays    r   sleep_n_crashzJAsyncGenAsyncioTest.test_async_gen_asyncio_asend_02.<locals>.sleep_n_crashY  s$     --&&&E 'r=  c                   K   	 t         j                  d       d {    d}  d       d {    dz  | dz   t         j                  d       d {    t         j                  d       d {    dy 7 c7 P7 (7 # t         j                  d       d {  7   t         j                  d       d {  7   dw xY wwNr  r}   r  r   r  r   r  rP  s    r   r(   z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_02.<locals>.gen]       	mmD)))G#D)))!emmD)))mmD))) *) *) mmD)))mmD)))x   CB	 BB	 BB	 CBC9B:CB	 B	 CC	C	"B%#C	 CC		Cc                     K           } | j                  d        d {   }j                  |d       | j                  d       d {    y 7 07 wr  r   r]   rJ  s     r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_02.<locals>.runj  J     Aggdm#AQ"''#, $ !   AA*A
AAAr}   )ry   r~   r  r    r]   rA   r  r  r(   rP  s   ` @@@r   test_async_gen_asyncio_asend_02z3AsyncGenAsyncioTest.test_async_gen_asyncio_asend_02V  sa    			 01 	0II((/	0q!	0 	0s   !A''A0c                      d fdfd fd} j                  t        j                        5   j                  j	                   |              d d d         j                  d       y # 1 sw Y   xY w)Nr   c                    K   t         j                  t         j                  |       j                        j                  j	                  | dz  fd        d {   S 7 w)Nr$  r   c                  $     j                         S r#   r(  r   s   r   <lambda>z\AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.sleep_n_crash.<locals>.<lambda>|      CJJL r   r   ensure_futurer  r  
call_laterrO  r   rA   s    @r   rP  zJAsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.sleep_n_crashy  Q     ''e(<-1YY ( 8CII  ,@A99   AA' A%!A'c                   K   	 t         j                  d       d {    d}  d       d {    dz  | dz   t         j                  d       d {    t         j                  d       d {    dy 7 c7 P7 (7 # t         j                  d       d {  7   t         j                  d       d {  7   dw xY wwrR  r  rS  s    r   r(   z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.gen  rT  rU  c                     K           } | j                  d        d {   }j                  |d       | j                  d       d {    y 7 07 wr  rW  rJ  s     r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.run  rX  rY  r}   )ry   r   CancelledErrorr  r    r]   rZ  s   ` @@@r   test_async_gen_asyncio_asend_03z3AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03v  sf    			 w556 	0II((/	0q!	0 	0s   !A33A<c                     d G d dt               fd} |       }|j                  d       } j                  |d       |j                        } j                  |d        j	                  t
              5  |j                  d        d d d        fd fd} j                  j                   |               j                  d       y # 1 sw Y   IxY w)	Nr   c                       e Zd Zy)CAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_01.<locals>.FooErNr
   r   r   r   FooErro    r   r   rp  c               3   @   K   	 d} | dz   y # $ r d} Y w xY ww)Nr}   r  r   r   )r   rp  s    r   rE  zBAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_01.<locals>.sgen  s3     G a%K  s    r}     c                   K   	 t         j                  d       d {    	 d} | dz   t         j                  d       d {    t         j                  d       d {    t         j                  d       d {    dy 7 l# $ r# d} t         j                  d       d {  7   Y w xY w7 n7 S7 8# t         j                  d       d {  7   t         j                  d       d {  7   dw xY wwrR  r  )r   r  rp  s    r   r(   zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_01.<locals>.gen  s     mmD))).A !emmD))) mmD)))mmD))) *  .A!-----. * *) mmD)))mmD)))s   D B= B
B= B  B= B7	B= D %B9&D B;D 
B= B4+B.,B41B= 3B44B= 9D ;D =C=CC=4C75C==D c                  Z  K           } | j                  d        d {   }j                  |d       | j                         d {   }j                  |d       j                  t              5  | j                  d        d {    d d d        y 7 y7 P7 # 1 sw Y   y xY ww)Nr}   rr  )r   r]   r   ry   r.   )rX   r   rp  r(   rA   s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_01.<locals>.run  s     Aggdm#AQ"hhuo%AQ%""#56 $ggdm##$ $ $ & $$ $rK  )rV   r   r]   r   ry   r   r  r    )rA   rE  r   r   r  r  rp  r(   s   `    @@@r    test_async_gen_asyncio_athrow_01z4AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_01  s    	I 		 VGGDMAHHUOD!}- 	GGDM		"
	$ 			$$SU+q!C	 	s   =CC c                 $    d G d dt                fdfd fd} j                  t        j                        5   j                  j                   |              d d d         j                  d       y # 1 sw Y   xY w)Nr   c                       e Zd Zy)CAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.FooErNr
   r   r   r   rp  rx    r   r   rp  c                    K   t         j                  t         j                  |       j                        j                  j	                  | dz  fd        d {   S 7 w)Nr$  r   c                  $     j                         S r#   r_  r`  s   r   ra  z]AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.sleep_n_crash.<locals>.<lambda>  rb  r   rc  rf  s    @r   rP  zKAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.sleep_n_crash  rg  rh  c                   K   	 t         j                  d       d {    	 d}  dz   t         j                  d       d {    t         j                  d       d {    t         j                  d       d {    dy 7 l# $ r  d       d {  7   Y |w xY w7 _7 D7 )# t         j                  d       d {  7   t         j                  d       d {  7   dw xY wwrH  r  )r   r  rp  rP  s    r   r(   zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.gen  s     mmD))).A !emmD))) mmD)))mmD))) *  .'---. * *) mmD)))mmD)))s   C1B. B
B. B  B. B(	B. C1%B*&C1B,C1
B. B%BB%"B. $B%%B. *C1,C1.C.C
C.%C(&C..C1c                  $  K           } | j                  d        d {   }j                  |d       	 | j                         d {    j                  d       y 7 B7 # t        j
                  $ r j                  d        w xY ww)Nr}   zCancelledError was not raised)r   r]   r   rr   r   rk  )rX   r   r  rp  r(   rA   s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.run  s     Aggdm#AQ";hhuo%%
 		9: $ &))   q)s8   BA"BA& A$A& B$A& &'BBr}   )rV   ry   r   rk  r  r    r]   )rA   r  r  rp  r(   rP  s   ` @@@@r    test_async_gen_asyncio_athrow_02z4AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02  sr    	I 			 	; w556 	0II((/	0q!	0 	0s   
!BBc                 >    dd } |       }|j                  d         j                  t              5  |j                  t               d d d        fd fd} j
                  j                   |               j                  d       y # 1 sw Y   HxY w)Nr   c               3   $   K   	 d  y #  Y y xY wwr#   r   r   r   r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_03.<locals>.foo  r  r  c                 0   K   	 d  d y #  Y d y xY wwr\  r   r   s   r   r(   zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_03.<locals>.gen  r  r  c                     K           } | j                  d        d {    j                  t              5  | j                  t               d {    d d d        dz  y 7 E7 # 1 sw Y   xY wwr  )r   ry   r.   r   
ValueErrorr  s    r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_03.<locals>.run  sg     A''$-""#56 +hhz***+BJD  *+ +s8   A5A%A5A)A'A)A5'A))A2.A5r  )r   ry   r   r   r  r  r    r]   r  s   `   @@r    test_async_gen_asyncio_athrow_03z4AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_03  s    	
 E	t}- 	 GGJ	 
		 			$$SU+r"-	  	 s   BBc                 Z     d  fd} j                   j                   |              y )Nc                 @   K   	 d y # t         $ r d Y y w xY wwNr}   r  r  r   r   r   r(   zDAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_tuple.<locals>.gen  s#     $ 
r  c                  b  K           } | j                  d        d {   }j                  |d       | j                  t               d {   }j                  |d       j	                  t
              5  | j                  d        d {    d d d        y 7 }7 P7 # 1 sw Y   y xY wwr  )r   r]   r   r~   ry   r.   rJ  s     r   r  zDAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_tuple.<locals>.run%  s     Aggdm#AQ"hh011AQ%""#56 $ggdm##$ $	 $1 $$ $sK   B/B.B/B+B/:B#B!B#
B/B/!B##B,(B/r  rA   r  r(   s   ` @r   #test_async_gen_asyncio_athrow_tuplez7AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_tuple  s#    		$ 			$$SU+r   c                 Z     d  fd} j                   j                   |              y )Nc                 R   K   	 d y # t         $ r t        d       Y y w xY wwr,  )r~   r   r   r   r   r(   zLAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_stopiteration.<locals>.gen1  s)     '$ '#A&&'s   '
 '$'$'c                    K           } | j                  d        d {   }j                  |d       | j                  t               d {   }j	                  |t
               j                  |j                  d       j                  t              5  | j                  d        d {    d d d        y 7 7 p7 # 1 sw Y   y xY wwr,  )	r   r]   r   r~   r   r   r  ry   r.   rJ  s     r   r  zLAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_stopiteration.<locals>.run7  s     Aggdm#AQ"hh011A!!!]3QWWa(""#56 $ggdm##$ $ $1 $$ $sL   CB=.CB?ACC/C0C4
C?CCCCr  r  s   ` @r   +test_async_gen_asyncio_athrow_stopiterationz?AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_stopiteration0  s#    	'	$ 			$$SU+r   c                    dfdfd}| j                   j                   |             }| j                   j                   |             }| j                   j                  t        j	                  d             |j                          |j                          | j                  t        j                        5  | j                   j                  |       d d d        | j                  t        j                        5  | j                   j                  |       d d d        | j                   j                  | j                   j                                | j                  d       y # 1 sw Y   xY w# 1 sw Y   [xY w)Nr   c                   K   	 t         j                  |        d {    d t         j                  d       d {    dz  y 7 ,7 # t         j                  d       d {  7   dz  w xY wwr,  r  )timeout	finalizeds    r   waiterzFAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_01.<locals>.waiterF  sd     mmG,,,mmA&&&Q		 - 'gmmA&&&Q	sH   A6A A
	A A6A 
A6
A A6A3'A*(A33A6c                  8   K    d      2 3 d {   } 
7 6 y wr\  r   )_r  s    r   waitzDAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_01.<locals>.waitO  s%     !!9  a9s   	g?r   )
r  r?  r    r   r  r(  ry   rk  shutdown_asyncgensr]   )rA   r  t1t2r  r  s       @@r   "test_async_gen_asyncio_shutdown_01z6AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_01C  s   			 YY""46*YY""46*		$$W]]3%78 			
		w556 	-II((,	-w556 	-II((,	- 			$$TYY%A%A%CDA&	- 	-	- 	-s   <E)?E5)E25E>c                     g fdd } |       fd}t         j                   |              | j                  g        y )Nc                 (    j                  |       y r#   r$   r  contextmessagess     r   exception_handlerzQAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02.<locals>.exception_handlerh      OOG$r   c                     K   d d y wr,  r   r   r   r   r\   zMAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02.<locals>.async_iteratek  r-  r   c                  x   K   t         j                         } | j                         2 3 d {   } y 7 6 y wr#   r   get_running_loopset_exception_handlerr  r'   r  r  s     r   mainzDAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02.<locals>.mainp  >     ++-D&&'89  a2   (:868:8:)r   r  r]   )rA   r\   r  r  r  r  s      @@@r   "test_async_gen_asyncio_shutdown_02z6AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02e  s@    	%	 _	 	DF2&r   c                     g fdd } |       fd}t         j                   |              \  }| j                  |d          | j                  |d   t               | j                  d|d          y )Nc                 (    j                  |       y r#   r$   r  s     r   r  z[AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_01.<locals>.exception_handler~  r  r   c                 @   K   	 d d ddz   y # ddz   w xY wwNr}   r   r   r   r   r   r   r\   zWAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_01.<locals>.async_iterate  #     !!   
 c                  x   K   t         j                         } | j                         2 3 d {   } y 7 6 y wr#   r  r  s     r   r  zNAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_01.<locals>.main  r  r  asyncgenr  z:an error occurred during closing of asynchronous generatormessage)r   r  r]   r   r~   r   )rA   r\   r  r  r  r  r  s       @@@r   ,test_async_gen_asyncio_shutdown_exception_01z@AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_01{  sy    	%	 _	 	DF,b1gk24EFRi(	*r   c                     g fdd fd}t         j                   |              \  }| j                  |d   t               | j	                  d|d          ~t                y )Nc                 (    j                  |       y r#   r$   r  s     r   r  z[AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_02.<locals>.exception_handler  r  r   c                 @   K   	 d d ddz   y # ddz   w xY wwr  r   r   r   r   r\   zWAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_02.<locals>.async_iterate  r  r  c                     K   t         j                         } | j                                 2 3 d {   } t                y 7 6 t                y wr#   )r   r  r  r   r  r'   r\   r  s     r   r  zNAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_02.<locals>.main  sJ     ++-D&&'89(?  aL?Ls%   -AAAAAAAr  z1unhandled exception during asyncio.run() shutdownr  )r   r  r   r~   r   r   )rA   r  r  r\   r  r  s      @@@r   ,test_async_gen_asyncio_shutdown_exception_02z@AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_02  se    	%		 	DFgk24EFIi(	*Xr   c                     d fdfd}| j                   j                   |             }| j                  |t        d      D cg c]  }|dz  	 c}       y c c}w )Nc                t   K   t        |       D ]$  }t        j                  d       d {    | & y 7 wNr  )ranger   r  )nr'   s     r   arangez@AsyncGenAsyncioTest.test_async_gen_expression_01.<locals>.arange  s3     1X mmD))))s   '868c                 "    d  |       2        S )Nc                8   K   | 3 d {   }|dz   7 6 y wNr   r   ).0r'   s     r   	<genexpr>zXAsyncGenAsyncioTest.test_async_gen_expression_01.<locals>.make_arange.<locals>.<genexpr>  s     33AAE33s   
r   )r  r  s    r   make_arangezEAsyncGenAsyncioTest.test_async_gen_expression_01.<locals>.make_arange  s    333r   c                  R   K    d      2  cg c3 d {   } | 7 6 c} S c c} w wr  r   r'   r  s    r   r  z=AsyncGenAsyncioTest.test_async_gen_expression_01.<locals>.run  &     %0_55A5555$   '"
""'r   r   r  r    r]   r  )rA   r  r&   r'   r  r  s       @@r   test_async_gen_expression_01z0AsyncGenAsyncioTest.test_async_gen_expression_01  sP    	
	4	6 ii**351eBi8q1u898s   	A
c                     d fdfd}| j                   j                   |             }| j                  |t        dd      D cg c]  }|dz  	 c}       y c c}w )Nc                 L   K   t         j                  d       d {    | S 7 wr  r  )r  s    r   wrapz>AsyncGenAsyncioTest.test_async_gen_expression_02.<locals>.wrap  s"     --%%%H &s   $"$c                 ,    fdt        |       D        S )Nc                P   K   | ]  } |       d {   s|dz    y 7 wr  r   )r  r'   r  s     r   r  zXAsyncGenAsyncioTest.test_async_gen_expression_02.<locals>.make_arange.<locals>.<genexpr>  s!     =aT!W}}AE=}s   &$&&)r  )r  r  s    r   r  zEAsyncGenAsyncioTest.test_async_gen_expression_02.<locals>.make_arange  s    =58==r   c                  R   K    d      2  cg c3 d {   } | 7 6 c} S c c} w wr  r   r  s    r   r  z=AsyncGenAsyncioTest.test_async_gen_expression_02.<locals>.run  r  r  r}   r   r   r  )rA   r  r&   r'   r  r  s       @@r   test_async_gen_expression_02z0AsyncGenAsyncioTest.test_async_gen_expression_02  sR    		>	6 ii**351eArl;q1u;<;s   
A
c                     g fdd fd}t         j                   |              | j                  g        t                y )Nc                 (    j                  |       y r#   r$   r  s     r   r  z]AsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable.<locals>.exception_handler  r  r   c                     K   d d y wr,  r   r   r   r   r\   zYAsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable.<locals>.async_iterate  r-  r   c                     K   t         j                         } | j                                 2 3 d {   } y 7 6 y wr#   r  r  s     r   r  zPAsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable.<locals>.main  s@     ++-D&&'89(?  a?s   -?=;=?=?)r   r  r]   r   )rA   r  r\   r  r  s     @@@r   .test_asyncgen_nonstarted_hooks_are_cancellablezBAsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable  s<    	%		 	DFX&r   c                 Z     d  fd} j                   j                   |              y )Nc                     K   d d y wr,  r   r   r   r   r\   zUAsyncGenAsyncioTest.test_async_gen_await_same_anext_coro_twice.<locals>.async_iterate  r-  r   c                     K           } | j                         }| d {    j                  t        d      5  | d {    d d d        | j                          d {    y 7 F7 '# 1 sw Y   &xY w7 w)Nr   )r/   r=   r   r  r  nxtr\   rA   s     r   r  zKAsyncGenAsyncioTest.test_async_gen_await_same_anext_coro_twice.<locals>.run  st     B,,.CII'' K  			 ))+ 
 	  sD   A9A'A9A+A)A+A9!A7"A9)A++A40A9r  rA   r  r\   s   ` @r   *test_async_gen_await_same_anext_coro_twicez>AsyncGenAsyncioTest.test_async_gen_await_same_anext_coro_twice  s#    	
	 			$$SU+r   c                 Z     d  fd} j                   j                   |              y )Nc                     K   d d y wr,  r   r   r   r   r\   zVAsyncGenAsyncioTest.test_async_gen_await_same_aclose_coro_twice.<locals>.async_iterate   r-  r   c                     K           } | j                         }| d {    j                  t        d      5  | d {    d d d        y 7 .7 # 1 sw Y   y xY ww)Nr   )r  r=   r   r  s     r   r  zLAsyncGenAsyncioTest.test_async_gen_await_same_aclose_coro_twice.<locals>.run  sb     B))+CII'' I  			  
 	 s8   AAAAAA
AAAAr  r  s   ` @r   +test_async_gen_await_same_aclose_coro_twicez?AsyncGenAsyncioTest.test_async_gen_await_same_aclose_coro_twice  s#    		 			$$SU+r   c                 6   d } |       }|j                         }| j                  t              5  |j                  t               d d d        | j                  t        d      5  |j                  t               d d d        y # 1 sw Y   >xY w# 1 sw Y   y xY w)Nc                     K   d d y wr,  r   r   r   r   r\   zVAsyncGenAsyncioTest.test_async_gen_throw_same_aclose_coro_twice.<locals>.async_iterate  r-  r   r   )r  ry   r   r   r   r=   r   )rA   r\   r  r  s       r   +test_async_gen_throw_same_aclose_coro_twicez?AsyncGenAsyncioTest.test_async_gen_throw_same_aclose_coro_twice  s    	 _iik}- 	%IIm$	% ##A
 	% IIm$		% 	%	% 	%	% 	%s   B$BBBc                 <   d } |       } G d dt               }|j                         }| j                  |      5  |j                  |       d d d        | j	                  t
        d      5  |j                  |       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nc                     K   d d y wr,  r   r   r   r   r\   z]AsyncGenAsyncioTest.test_async_gen_throw_custom_same_aclose_coro_twice.<locals>.async_iterate!  r-  r   c                       e Zd Zy)[AsyncGenAsyncioTest.test_async_gen_throw_custom_same_aclose_coro_twice.<locals>.MyExceptionNr
   r   r   r   MyExceptionr  '  r   r   r  r   )rV   r  ry   r   r=   r   rA   r\   r  r  r  s        r   2test_async_gen_throw_custom_same_aclose_coro_twicezFAsyncGenAsyncioTest.test_async_gen_throw_custom_same_aclose_coro_twice   s    	 _	) 	 iik{+ 	#IIk"	# ##A
 	# IIk"		# 	#	# 	#	# 	#s   B+BBBc                 >   d } |       } G d dt               }|j                  |      }| j                  |      5  |j                  |       d d d        | j	                  t
        d      5  |j                  |       d d d        y # 1 sw Y   :xY w# 1 sw Y   y xY w)Nc                     K   d d y wr,  r   r   r   r   r\   z]AsyncGenAsyncioTest.test_async_gen_throw_custom_same_athrow_coro_twice.<locals>.async_iterate5  r-  r   c                       e Zd Zy)[AsyncGenAsyncioTest.test_async_gen_throw_custom_same_athrow_coro_twice.<locals>.MyExceptionNr
   r   r   r   r  r  ;  r   r   r  r   )rV   r   ry   r   r=   r   r  s        r   2test_async_gen_throw_custom_same_athrow_coro_twicezFAsyncGenAsyncioTest.test_async_gen_throw_custom_same_athrow_coro_twice4  s    	 _	) 	 ii${+ 	#IIk"	# ##A
 	# IIk"		# 	#	# 	#	# 	#s   B,BBBc                 V    d fd}| j                   j                   |              y )Nc                     K   d d y wr,  r   r   r   r   r\   z[AsyncGenAsyncioTest.test_async_gen_aclose_twice_with_different_coros.<locals>.async_iterateJ  r-  r   c                     K           } | j                          d {    | j                          d {    y 7 7 wr#   r  )r  r\   s    r   r  zQAsyncGenAsyncioTest.test_async_gen_aclose_twice_with_different_coros.<locals>.runN  s5     B))+))+ s   A <A >A A r  r  s     @r   0test_async_gen_aclose_twice_with_different_coroszDAsyncGenAsyncioTest.test_async_gen_aclose_twice_with_different_corosH  s#    		
 			$$SU+r   c                 V    d fd}| j                   j                   |              y )Nc                     K   d d y wr,  r   r   r   r   r\   zQAsyncGenAsyncioTest.test_async_gen_aclose_after_exhaustion.<locals>.async_iterateW  r-  r   c                  l   K           } | 2 3 d {   }
7 6 | j                          d {  7   y wr#   r  )r  r  r\   s     r   r  zGAsyncGenAsyncioTest.test_async_gen_aclose_after_exhaustion.<locals>.run[  s7     B  a2))+s$   
44404r  r  s     @r   &test_async_gen_aclose_after_exhaustionz:AsyncGenAsyncioTest.test_async_gen_aclose_after_exhaustionU  s#    		 			$$SU+r   c                 V    d fd}| j                   j                   |              y )Nc                 &   K   t                y wr#   )objectr   r   r   async_generatorz\AsyncGenAsyncioTest.test_async_gen_aclose_compatible_with_get_stack.<locals>.async_generatord  s     (Ns   c                     K           } t         j                  | j                                t         j                         }|D ]  }|j	                           y wr#   )r   r?  r  	all_tasks	get_stack)agtasksr@  r  s      r   r  zPAsyncGenAsyncioTest.test_async_gen_aclose_compatible_with_get_stack.<locals>.rung  sJ      "B		,%%'E ! !s   AAr  )rA   r  r  s     @r   /test_async_gen_aclose_compatible_with_get_stackzCAsyncGenAsyncioTest.test_async_gen_aclose_compatible_with_get_stackc  s#    		! 			$$SU+r   N)<r   r   r   r  r  r  r  r/  rA  rI  rP  rY  r`  rr  r  r  r  r  r  r  r  r*   r  r  r  r  r  r	  r  r  r  r"  r)  r.  r3  r9  rB  rL  r[  rl  ru  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r  r  ;  s0   %,
?1.f.5B&&*"3<(.*...*obE 
&	>
&(-T!,F!#F,&,.0(".:>"6#B##J"6("T"@ "D3"j,"\!#F,$,& 'D',*:<: =.,&,"% #(#(,,,r   r  __main__)r   r   unittestr"  test.support.import_helperr   test.supportr   r   r   r  r6   rV   r	   r   r   r    r*   r7   TestCaser9   rQ   r  r   r  r   r   r   <module>r     s        4 <
	
" t $h	Y 	    )  + >.** .br98$$ r9jt,(++ t,n) zHMMO r   