
    z%i                     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__     F/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/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                   f    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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                     fd} |       j                         }|j                         }| j                  t        d      5  |j	                          d d d        y # 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   z4anext\(\): asynchronous generator is already running)rq   r/   r=   r   rU   )rA   r(   ru   r[   r   s       @r   test_async_gen_exception_12z(AsyncGenTest.test_async_gen_exception_12|  sY    	 U\\^\\^##LGI 	KKM	 	 	s   AA'c                     d }| j                  t              5   |       j                  t        t               d        d d d        y # 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   rj   s     r   (test_async_gen_3_arg_deprecation_warningz5AsyncGenTest.test_async_gen_3_arg_deprecation_warning  sA    	 01 	?ELL>	? 	? 	?s   %AA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_frametypes	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   rQ   rQ      sO    ) V
:;:&*9.9292(I>?9r   rQ   c                   P   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 Z8y7)8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.tearDown  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_anext  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>.consume  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_2  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_send  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_throw  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_anext  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   agenz<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}   r  r.   r   s    r   r/   zSAsyncGenAsyncioTest.test_python_async_iterator_anext.<locals>.MyAsyncIter.__anext__  s3     <<1$,..LLA%L<<'s   ;=N)r   r   r   __doc__r  rq   r/   r   r   r   MyAsyncIterr    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>.MyAsyncIterWithTypesCoror  c                     d| _         y r  r  r   s    r   r  zoAsyncGenAsyncioTest.test_python_async_iterator_types_coroutine_anext.<locals>.MyAsyncIterWithTypesCoro.__init__  r	  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  r  rq   	coroutiner/   )r   s   r   MyAsyncIterWithTypesCoror    s&    1!__( (r   r  )r   r   )rA   r  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   Genr$    s    r   r'  c                     K   t              } 	 	 j                  t        |        d {          $7 	# t        $ r Y y w xY wwr#   )r  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   r   )rA   r'  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   )r  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>.gen5  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_args7       '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_args9  s     q!$$$s   !!c                  D   K   t        d                d {    y 7 wr-  r   r:  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   r:  s   r   call_with_kwargz@AsyncGenAsyncioTest.test_anext_bad_args.<locals>.call_with_kwarg=  s     #%(((r>  ry   r5   r   r    )rA   r5  r;  r=  rA  r(   s        @r   test_anext_bad_argsz'AsyncGenAsyncioTest.test_anext_bad_args4  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__K  s    r   Nr   r   r   r   r   r   r   BadAwaitablerG  J  s    r   rK  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__N  s    Kr   c                             S r#   r   )rA   rK  s    r   r/   z^AsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitable.<locals>.MyAsyncIter.__anext__P  s    '>)r   Nr   r   r   rq   r/   )rK  s   r   r  rM  M  s     *r   r  z__await__.*iteratorr0   r   )r   r=   r5   )r  regexr   rK  rA   s      @r   bad_awaitablez?AsyncGenAsyncioTest.test_anext_bad_await.<locals>.bad_awaitableI  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   r   )rA   rR  r   s   `  r   test_anext_bad_awaitz(AsyncGenAsyncioTest.test_anext_bad_awaitH  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__h  r  r   c                     t        d      S )Nabc)iterr   s    r   r/   zOAsyncGenAsyncioTest.test_anext_return_iterator.<locals>.WithIterAnext.__anext__j  s    E{"r   NrP  r   r   r   WithIterAnextrZ  g  s    #r   r_  r   r   r    rW  r]   )rA   r_  r   s      r   test_anext_return_iteratorz.AsyncGenAsyncioTest.test_anext_return_iteratorf  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__q  r  r   c              3      K   d  y wr#   r   r   s    r   r/   zOAsyncGenAsyncioTest.test_anext_return_generator.<locals>.WithGenAnext.__anext__s  s	     s   NrP  r   r   r   WithGenAnextrd  p  s    r   rg  r   r`  )rA   rg  r   s      r   test_anext_return_generatorz/AsyncGenAsyncioTest.test_anext_return_generatoro  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__z  s     '))s   NrJ  r   r   r   RaisingAwaitablerk  y  s    r   rn  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   rn  s    r   r/   zXAsyncGenAsyncioTest.test_anext_await_raises.<locals>.WithRaisingAwaitableAnext.__anext__  s    '))r   NrP  )rn  s   r   WithRaisingAwaitableAnextrp  }  s    *r   rs  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rU  )r   ry   r~   )r   rs  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   r   )rA   ru  r   rn  rs  s   `  @@r   test_anext_await_raisesz+AsyncGenAsyncioTest.test_anext_await_raisesx  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   vs    r   _async_yieldz9AsyncGenAsyncioTest.test_anext_iter.<locals>._async_yield  s     Gs   c                       e Zd Zy)4AsyncGenAsyncioTest.test_anext_iter.<locals>.MyErrorNr
   r   r   r   MyErrorr}        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   agenfnz3AsyncGenAsyncioTest.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>.test1  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>.test3  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   ry  s    r   r{  zHAsyncGenAsyncioTest.test_anext_iter.<locals>.test4.<locals>._async_yield        "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>.agenfn  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>.test4  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   ry  s    r   r{  zHAsyncGenAsyncioTest.test_anext_iter.<locals>.test5.<locals>._async_yield  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>.agenfn  s6     &q/))  * s(   (  ( %(%(r0   r   )
r   r  r   r   r   r]   r   r=   r   r   r  s       @r   test5z2AsyncGenAsyncioTest.test_anext_iter.<locals>.test5  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   ry  s    r   r{  zHAsyncGenAsyncioTest.test_anext_iter.<locals>.test6.<locals>._async_yield  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>.test6  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#   r  r   r   r   r5  zGAsyncGenAsyncioTest.test_aiter_bad_args.<locals>.call_with_too_few_args  r6  r7  c                  D   K   t                 d       d {    y 7 wr-  r  r:  s   r   r;  zHAsyncGenAsyncioTest.test_aiter_bad_args.<locals>.call_with_too_many_args  s     q/!!r>  c                  6   K   t        d       d {    y 7 wr-  r  r   r   r   call_with_wrong_type_argzIAsyncGenAsyncioTest.test_aiter_bad_args.<locals>.call_with_wrong_type_arg  s     (NNs   rB  )rA   r5  r;  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   -+-Nr&  r   r   r   r'  r  .  s    r   r'  r}   r   r  )rA   r   r'  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>.foo8  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>.run1C  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>.run2O  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_047  s<    		
	%	% 			$$TV,		$$TV,r   c                 Z     d  fd} j                   j                   |              y )Nc                 0   K   d} | } | dz   y wNr}   r   r   ry  s    r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_anext_05.<locals>.foob  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>.rung  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_05a  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>.run  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   rm  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>.run  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r9  )r   r~   r   r   r   r  zKAsyncGenAsyncioTest.test_async_gen_asyncio_anext_stopiteration.<locals>.foo  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  rz  r  r  rA   s      r   r  zKAsyncGenAsyncioTest.test_async_gen_asyncio_anext_stopiteration.<locals>.run  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_stopiteration  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>.foo  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>.run  @     %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_06  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}   r   )rA   r  r  r  s     @@r    test_async_gen_asyncio_aclose_07z4AsyncGenAsyncioTest.test_async_gen_asyncio_aclose_07  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r  )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}   r   )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>.genE  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>.runM  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_106  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>.genh  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)Nr  r   )r   r=   r   r   r  s    r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_aclose_11.<locals>.runq  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_11W  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}   r   )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   ry  s    r   sgenzAAsyncGenAsyncioTest.test_async_gen_asyncio_asend_01.<locals>.sgen  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  )rz  r  s    r   r(   z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_01.<locals>.gen  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   r  )r   r]   ry   r.   rX   rz  r(   rA   s     r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_01.<locals>.run  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   r  r   rz  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_crash  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  rz  r  r&  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]   r   s     r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_02.<locals>.run  J     Aggdm#AQ"''#, $ !   AA*A
AAAr}   )ry   r~   r   r    r]   rA   r  r  r(   r&  s   ` @@@r   test_async_gen_asyncio_asend_02z3AsyncGenAsyncioTest.test_async_gen_asyncio_asend_02  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r%  r   rA   s    @r   r&  zJAsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.sleep_n_crash  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r(  r  r)  s    r   r(   z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.gen  r*  r+  c                     K           } | j                  d        d {   }j                  |d       | j                  d       d {    y 7 07 wr  r-  r   s     r   r  z@AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03.<locals>.run  r.  r/  r}   )ry   r   CancelledErrorr   r    r]   r0  s   ` @@@r   test_async_gen_asyncio_asend_03z3AsyncGenAsyncioTest.test_async_gen_asyncio_asend_03  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   FooErrE    r  r   rF  c               3   @   K   	 d} | dz   y # $ r d} Y w xY ww)Nr}   r  r   r   )rz  rF  s    r   r  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r(  r  )rz  r  rF  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}   rH  )r   r]   r   ry   r.   )rX   rz  rF  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##$ $ $ & $$ $r!  )rV   r   r]   r   ry   r   r   r    )rA   r  r   rz  r  r  rF  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   rF  rN  ;  r  r   rF  c                    K   t         j                  t         j                  |       j                        j                  j	                  | dz  fd        d {   S 7 w)Nr  r   c                  $     j                         S r#   r5  r6  s   r   r7  z]AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.sleep_n_crash.<locals>.<lambda>A  r8  r   r9  r<  s    @r   r&  zKAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.sleep_n_crash>  r=  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       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r  r  )rz  r  rF  r&  s    r   r(   zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.genD  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   rA  )rX   rz  r  rF  r(   rA   s     r   r  zAAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_02.<locals>.runT  s     Aggdm#AQ";hhuo%%
 		9: $ &))   q)s8   BA"BA& A$A& B$A& &'BBr}   )rV   ry   r   rA  r   r    r]   )rA   r  r  rF  r(   r&  s   ` @@@@r    test_async_gen_asyncio_athrow_02z4AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_028  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>.fooj  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>.genv  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   rX  r   r    r]   r  s   `   @@r    test_async_gen_asyncio_athrow_03z4AsyncGenAsyncioTest.test_async_gen_asyncio_athrow_03f  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  rm  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.   r   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>.gen  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.   r   s     r   r  zLAsyncGenAsyncioTest.test_async_gen_asyncio_athrow_stopiteration.<locals>.run  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_stopiteration  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>.waiter  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   )_rh  s    r   waitzDAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_01.<locals>.wait  s%     !!9  a9s   	g?r   )
r   r  r    r   r  r  ry   rA  shutdown_asyncgensr]   )rA   rk  t1t2rg  rh  s       @@r   "test_async_gen_asyncio_shutdown_01z6AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_01  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_handler      OOG$r   c                     K   d d y wr   r   r   r   r   r\   zMAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02.<locals>.async_iterate  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'   ru  r  s     r   mainzDAsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02.<locals>.main  >     ++-D&&'89  a2   (:868:8:r   r  r]   )rA   r\   r}  ru  r  rt  s      @@@r   "test_async_gen_asyncio_shutdown_02z6AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_02  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$   rr  s     r   ru  z[AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_01.<locals>.exception_handler  rv  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#   ry  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  ru  r  rt  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          y )Nc                 (    j                  |       y r#   r$   rr  s     r   ru  z[AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_02.<locals>.exception_handler  rv  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   rz  r{  r   r   r'   r\   ru  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   )rA   r}  r  r\   ru  rt  s      @@@r   ,test_async_gen_asyncio_shutdown_exception_02z@AsyncGenAsyncioTest.test_async_gen_asyncio_shutdown_exception_02  s[    	%		 	DFgk24EFIi(	*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>.wrap0  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>6  s!     =aT!W}}AE=}s   &$&&)r  )r  r  s    r   r  zEAsyncGenAsyncioTest.test_async_gen_expression_02.<locals>.make_arange4  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>.run8  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        y )Nc                 (    j                  |       y r#   r$   rr  s     r   ru  z]AsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable.<locals>.exception_handlerB  rv  r   c                     K   d d y wr   r   r   r   r   r\   zYAsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable.<locals>.async_iterateE  r   r   c                     K   t         j                         } | j                                 2 3 d {   } y 7 6 y wr#   ry  r  s     r   r}  zPAsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable.<locals>.mainI  s@     ++-D&&'89(?  a?s   -?=;=?=?r  )rA   r}  r\   ru  rt  s     @@@r   .test_asyncgen_nonstarted_hooks_are_cancellablezBAsyncGenAsyncioTest.test_asyncgen_nonstarted_hooks_are_cancellable>  s7    	%		 	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_iterateU  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)Nz4cannot reuse already awaited __anext__\(\)/asend\(\))r/   r=   r   r   r  nxtr\   rA   s     r   r  zKAsyncGenAsyncioTest.test_async_gen_await_same_anext_coro_twice.<locals>.runY  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_twiceT  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_iterateh  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)Nz2cannot reuse already awaited aclose\(\)/athrow\(\))r   r=   r   r  s     r   r  zLAsyncGenAsyncioTest.test_async_gen_await_same_aclose_coro_twice.<locals>.runl  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_twiceg  s#    		 			$$SU+r   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_iteratez  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>.run~  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_corosx  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_iterate  r   r   c                  l   K           } | 2 3 d {   }
7 6 | j                          d {  7   y wr#   r  )r  rj  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_exhaustion  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_generator  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>.run  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_stack  s#    		! 			$$SU+r   N)9r   r   r   r   r   r   r   r   r  r  r!  r*  r1  rC  rS  rW  ra  rh  rv  r  r  r*   r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r"  r1  rB  rK  rS  rY  r_  rc  ro  r  r  r  r  r  r  r  r  r  r  r  r   r   r   r   r     s!   %,
?1.f.5B&&*"3<(.*...*obE 
&	>
&(-T!,F!#F,&,.0(".:>"6#B##J"6("T"@ "D3"j,"\!#F,$,& 'D',*:*8: =',,&,",,,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]98$$ ]9@	y,(++ y,x' zHMMO r   