
    2hh                    f   S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SK
Jr  S SK	Jr  S SKrS SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S	 rS
 rSHS jrS r " S S5      r " S S5      r " S S5      rS r " S S5      r\
R@                  " \!" \S5      =(       a	    \!" \S5      S5       " S S\\\RD                  5      5       r#\
R@                  " \!" \S5      =(       a	    \!" \S5      S5      \ " S S\\RD                  5      5       5       r$\
R@                  " \!" \S5      S5      \ " S S\\RD                  5      5       5       r%\
R@                  " \!" \S5      S5      \ " S S \\RD                  5      5       5       r&\
R@                  " \!" \S5      S5       " S! S"\\RD                  5      5       r'\
R@                  " \!" \S5      S5       " S# S$\\RD                  5      5       r( " S% S&\\\RD                  5      r)\ " S' S(\\RD                  5      5       r*\
R@                  " \!" \S5      S5       " S) S*\RD                  5      5       r+ " S+ S,5      r, " S- S.\RD                  \,5      r-\
R@                  " \!" \S/5      S5       " S0 S1\RD                  \,5      5       r. " S2 S35      r/ " S4 S5\/\RD                  5      r0\
R@                  " \!" \S5      =(       a	    \!" \S65      S5       " S7 S8\/\RD                  5      5       r1 " S9 S:\RD                  5      r2 " S; S<5      r3 " S= S>\3\RD                  5      r4 " S? S@\3\RD                  5      r5 " SA SB\RD                  5      r6 " SC SD\RD                  5      r7 " SE SF\RD                  5      r8\9SG:X  a  \
Rt                  " 5         gg)I    N)mock)GenericAlias)futures)tasks)utils)support)assert_python_okc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     E/opt/python-3.13.8/usr/lib/python3.13/test/test_asyncio/test_tasks.pytearDownModuler      s    !!$'r   c                     #    g 7fr   r   r   r   r   coroutine_functionr      s        c                     U(       a  SU-  nOSU-  nUb!  US   nSU < SU< SU< SUS   < S	US
   < 3
$ SU < SU< SU< S3$ )Nz%sz%s, definedzcoro=<z() z at z> created at r   :   >r   )qualnamestatesrcsource_traceback	generatorframes         r   format_coroutiner    !   sY    u%# $UCq58= 	> $
 *25#>>r   c                 j    Sn U R                   nUc  O	Un US-  nM  [        U 5      U R                  U4$ )Nr   r   )__context__typeargs)excdepthcontexts      r   get_innermost_contextr(   .   sG     E
//?
  Isxx''r   c                        \ rS rSrS rS rSrg)Dummy>   c                     g)Nz<Dummy>r   selfs    r   __repr__Dummy.__repr__@   s    r   c                     g r   r   )r.   r$   s     r   __call__Dummy.__call__C       r   r   N)__name__
__module____qualname____firstlineno__r/   r2   __static_attributes__r   r   r   r*   r*   >   s    r   r*   c                   ,    \ rS rSrS rS rS rS rSrg)CoroLikeObjectG   c                     [        S5      eN*   )StopIteration)r.   vs     r   sendCoroLikeObject.sendH   s    Br   c                     g r   r   )r.   r%   s     r   throwCoroLikeObject.throwK   r4   r   c                     g r   r   r-   s    r   closeCoroLikeObject.closeN   r4   r   c                     U $ r   r   r-   s    r   	__await__CoroLikeObject.__await__Q   s    r   r   N)	r5   r6   r7   r8   rB   rE   rH   rK   r9   r   r   r   r;   r;   G   s     r   r;   c                   L  ^  \ rS rSrSrSrS|S jrS rU 4S jrS r	S r
S rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S  r#S! r$S" r%S# r&S$ r'S% r(S& r)S' r*S( r+S) r,S* r-S+ r.S, r/S- r0S. r1S/ r2S0 r3S1 r4S2 r5S3 r6S4 r7S5 r8S6 r9S7 r:S8 r;S9 r<S: r=S; r>S< r?S= r@S> rAS? rBS@ rCSA rDSB rESC rFSD rGSE rHSF rISG rJSH rKSI rLSJ rMSK rNSL rOSM rPSN rQSO rRSP rSSQ rTSR rUSS rVST rWSU rXSV rYSW rZSX r[SY r\SZ r]S[ r^S\ r_S] r`S^ raS_ rbS` rcSa rdSb reSc rfSd rgSe rh\iR                  " Sf5      Sg 5       rkSh rlSi rmSj rnSk ro\iR                  " Sf5      Sl 5       rpSm rqSn rrSo rsSp rtSq ruSr rvSs rwSt rxSu rySv rzSw r{Sx r|Sy r}Sz r~S{rU =r$ )}BaseTaskTestsU   Nc                 6    U R                   R                  X!X4S9$ )N)loopnamer'   )	__class__Task)r.   rQ   cororR   r'   s        r   new_taskBaseTaskTests.new_taskZ   s    ~~""4"OOr   c                 4    U R                   R                  US9$ NrQ   )rS   Futurer.   rQ   s     r   
new_futureBaseTaskTests.new_future]   s    ~~$$$$//r   c                    >^  [         TT ]  5         T R                  5       T l        T R                  R	                  T R
                  5        U 4S jT R                  l        g )Nc                  :   > T R                  T R                  5      $ r   )r]   rQ   r-   s   r   <lambda>%BaseTaskTests.setUp.<locals>.<lambda>d   s    $//$))*Dr   )supersetUpnew_test_looprQ   set_task_factoryrV   create_futurer.   rS   s   `r   rd   BaseTaskTests.setUp`   s>    &&(			""4==1"D		r   c                     U R                   R                  [           nU R                  UR                  [        45        U R                  U[        5        g r   )rS   rT   strassertEqual__args__assertIsInstancer   r.   tasks     r   test_generic_alias BaseTaskTests.test_generic_aliasf   s<    ~~""3'/dL1r   c                    S nU R                  U R                  U" 5       5      nU R                  [        US5      5        U R	                  UR
                  S 5        UR                  S5        U R	                  UR
                  S5        U R                  [        R                  5       nU R                  R                  U5        S S S 5        U R	                  SWR                  R                  S   5        g ! , (       d  f       N8= f)Nc                     #    g 7fr   r   r   r   r   rU   ;BaseTaskTests.test_task_cancel_message_getter.<locals>.corol        r   _cancel_message
my messager   )rV   rQ   
assertTruehasattrrl   rw   cancelassertRaisesr   CancelledErrorrun_until_complete	exceptionr$   r.   rU   tcms       r   test_task_cancel_message_getter-BaseTaskTests.test_task_cancel_message_getterk   s    	MM$))TV,#456**D1	**L9w556"II((+ 7 	r||'8'8';< 76s   (C66
Dc                    S nU R                  U R                  U" 5       5      nUR                  S5        SUl        U R	                  UR                  S5        U R                  [        R                  5       nU R                  R                  U5        S S S 5        U R	                  SWR                  R                  S   5        g ! , (       d  f       N8= f)Nc                     #    g 7fr   r   r   r   r   rU   ;BaseTaskTests.test_task_cancel_message_setter.<locals>.coro{   rv   r   rx   zmy new messager   )rV   rQ   r{   rw   rl   r|   r   r}   r~   r   r$   r   s       r   test_task_cancel_message_setter-BaseTaskTests.test_task_cancel_message_setterz   s    	MM$))TV,	,**,<=w556"II((+ 7 	)2<<+<+<Q+?@ 76s   8C
Cc                    ^  " S S5      mU4S jnU R                   R                  [        R                  " [	        S5       Vs/ s H#  o R                  U R                   U" 5       5      PM%     sn6 5        g s  snf )Nc                       \ rS rSrS rSrg)1BaseTaskTests.test_task_del_collect.<locals>.Evil   c                 .    [         R                  " 5         g r   )gccollectr-   s    r   __del__9BaseTaskTests.test_task_del_collect.<locals>.Evil.__del__   s    

r   r   N)r5   r6   r7   r8   r   r9   r   r   r   Evilr      s    r   r   c                     >#    T " 5       $ 7fr   r   )r   s   r   run0BaseTaskTests.test_task_del_collect.<locals>.run   s     6Ms   d   )rQ   r~   r   gatherrangerV   )r.   r   _r   s      @r   test_task_del_collect#BaseTaskTests.test_task_del_collect   sa    	 		 			$$NN9>s9CAdii/ 	s   *A7c                 D   [         R                  " 5       nU R                  U5      nS n U R                  [        S5         U R
                  R                  U" U5      5        S S S 5        UR                  5         g ! , (       d  f       N= f! UR                  5         f = f)Nc                 $   #    U I S h  vN   g  N7fr   r   futs    r   r   1BaseTaskTests.test_other_loop_future.<locals>.run   s     IIs   zTask .* got Future .* attached)r   new_event_loopr]   assertRaisesRegexRuntimeErrorrQ   r~   rH   )r.   
other_loopr   r   s       r   test_other_loop_future$BaseTaskTests.test_other_loop_future   s    ++-
ooj)		''(IK		,,SX6K 	K K s#   B "A<#B <
B
B Bc                    ^ U4S jn[         R                  " U" 5       U R                  S9mU R                  [        S5         U R                  R                  T5        S S S 5        g ! , (       d  f       g = f)Nc                  &   >#    T I S h  vN   g  N7fr   r   )rp   s   r   test6BaseTaskTests.test_task_awaits_on_itself.<locals>.test   s     JJ   rZ   zTask cannot await on itself)r   ensure_futurerQ   r   r   r~   )r.   r   rp   s     @r   test_task_awaits_on_itself(BaseTaskTests.test_task_awaits_on_itself   s[    	 $$TV$))<##L$ACII((.C C Cs   A''
A5c                    S nU R                  U R                  U" 5       5      nU R                  R                  U5        U R                  UR	                  5       5        U R                  UR                  5       S5        U R                  UR                  U R                  5        U R                  UR                  5       U R                  5        [        R                  " 5       nU R                  U5        U R                  X1" 5       5      nU R                  UR                  U5        UR                  U5        UR                  5         g )Nc                     #    g7fNokr   r   r   r   notmuch.BaseTaskTests.test_task_class.<locals>.notmuch        r   r   )rV   rQ   r~   ry   donerl   resultassertIs_loopget_loopr   r   set_event_looprH   )r.   r   r   rQ   s       r   test_task_classBaseTaskTests.test_task_class   s    	MM$))WY/		$$Q'!T*aggtyy)ajjlDII.%%'D!MM$	*aggt$"

r   c                 (  ^ S m[         R                  " T" 5       U R                  S9nU R                  UR                  U R                  5        U R                  R                  U5        U R                  UR                  5       5        U R                  UR                  5       S5        T" 5       nU R                  UR                  5        U R                  [        S5         [         R                  " U5        S S S 5        U4S jnU R                  R                  U" 5       5      nU R                  UR                  U R                  5        U R                  R                  U5        U R                  UR                  5       5        U R                  UR                  5       S5        [         R                  " U R                  5        U R                  [         R                  S 5        [         R                  " T" 5       5      nU R                  UR                  U R                  5        U R                  R                  U5        U R                  UR                  5       5        U R                  UR                  5       S5        g ! , (       d  f       GN= f)Nc                     #    g7fr   r   r   r   r   r   ;BaseTaskTests.test_ensure_future_coroutine.<locals>.notmuch   r   r   rZ   r   no current event loopc                  B   >#    [         R                  " T " 5       5      $ 7fr   )r   r   )r   s   r   r   8BaseTaskTests.test_ensure_future_coroutine.<locals>.test   s     ((33   )r   r   rQ   r   r   r~   ry   r   rl   r   
addCleanuprH   r   r   r   )r.   r   ar   r   s       @r   test_ensure_future_coroutine*BaseTaskTests.test_ensure_future_coroutine   s   	!!')$))<aggtyy)		$$Q'!T*I ##L2IJ!!!$ K	4II((0aggtyy)		$$Q'!T* 	tyy)..5!!'),aggtyy)		$$Q'!T*% KJs   !J
Jc                    U R                  U R                  5      nUR                  S5        [        R                  " U5      nU R                  R                  U5        U R                  UR                  5       5        U R                  UR                  5       S5        U R                  X!5        [        R                  " 5       nU R                  U5        U R                  [        5         [        R                  " XS9nS S S 5        UR                  5         [        R                  " XR                  S9nU R                  X!5        g ! , (       d  f       NN= f)NkorZ   )r]   rQ   
set_resultr   r   r~   ry   r   rl   r   r   r   r   r|   
ValueErrorrH   )r.   f_origfrQ   s       r   test_ensure_future_future'BaseTaskTests.test_ensure_future_future   s    +$!!&)		$$Q'!T*a %%'D!z*%%f8A + 	

!!&yy9a  +*s   )E
Ec                    S nU R                  U R                  U" 5       5      n[        R                  " U5      nU R                  R	                  U5        U R                  UR                  5       5        U R                  UR                  5       S5        U R                  X25        [        R                  " 5       nU R                  U5        U R                  [        5         [        R                  " X$S9nS S S 5        UR                  5         [        R                  " X R                  S9nU R                  X25        g ! , (       d  f       NN= f)Nc                     #    g7fr   r   r   r   r   r   6BaseTaskTests.test_ensure_future_task.<locals>.notmuch   r   r   r   rZ   )rV   rQ   r   r   r~   ry   r   rl   r   r   r   r   r|   r   rH   )r.   r   t_origr   rQ   s        r   test_ensure_future_task%BaseTaskTests.test_ensure_future_task   s    	tyy')4!!&)		$$Q'!T*a %%'D!z*%%f8A + 	

!!&yy9a  +*s   !D>>
Ec                     " S S5      nS n[         R                  " 5       nU R                  U5        [         R                  " U" U" 5       5      US9nUR	                  U5        U R                  UR                  5       S5        g )Nc                        \ rS rSrS rS rSrg)6BaseTaskTests.test_ensure_future_awaitable.<locals>.Awi  c                     Xl         g r   rU   r.   rU   s     r   __init__?BaseTaskTests.test_ensure_future_awaitable.<locals>.Aw.__init__	  s     	r   c                 6    U R                   R                  5       $ r   )rU   rK   r-   s    r   rK   @BaseTaskTests.test_ensure_future_awaitable.<locals>.Aw.__await__  s    yy**,,r   r   N)r5   r6   r7   r8   r   rK   r9   r   r   r   Awr     s    !-r   r   c                     #    g7fr   r   r   r   r   rU   8BaseTaskTests.test_ensure_future_awaitable.<locals>.coro  r   r   rZ   r   )r   r   r   r   r~   rl   r   )r.   r   rU   rQ   r   s        r   test_ensure_future_awaitable*BaseTaskTests.test_ensure_future_awaitable  sk    	- 	-	 %%'D!##BtvJT:$t,r   c                     " S S5      n[         R                  " 5       nU R                  U5        [         R                  " U" 5       US9nUR	                  U5        U R                  UR                  5       5        U R                  UR                  5       S5        U R                  UR                  5       [        R                  5        UR                  5         g )Nc                       \ rS rSrS rSrg);BaseTaskTests.test_ensure_future_task_awaitable.<locals>.Awi  c                 H    [         R                  " SSS9R                  5       $ )Nr   r   r   )r   sleeprK   r-   s    r   rK   EBaseTaskTests.test_ensure_future_task_awaitable.<locals>.Aw.__await__  s    }}Qt4>>@@r   r   N)r5   r6   r7   r8   rK   r9   r   r   r   r   r     s    Ar   r   rZ   r   )r   r   r   r   r~   ry   r   rl   r   rn   get_corotypesCoroutineTyperH   )r.   r   rQ   rp   s       r   !test_ensure_future_task_awaitable/BaseTaskTests.test_ensure_future_task_awaitable  s    	A 	A %%'D!$$RT5%		$-dmmou/B/BC

r   c                     U R                  [        5         [        R                  " S5        S S S 5        g ! , (       d  f       g = fr   )r|   	TypeErrorr   r   r-   s    r   test_ensure_future_neither(BaseTaskTests.test_ensure_future_neither%  s*    y)!!$' *))s	   6
Ac                    [         R                  " 5       nU R                  U R                  5      nU R	                  [
        S5         [         R                  " X!S9  S S S 5        UR                  5         g ! , (       d  f       N= f)NzRThe future belongs to a different loop than the one specified as the loop argumentrZ   )r   r   r]   rQ   r   r   r   rH   )r.   rQ   r   s      r   test_ensure_future_error_msg*BaseTaskTests.test_ensure_future_error_msg)  sb    %%'OODII&##J 18 9 !!!/9 	

	9 9s   A55
Bc                 z   ^ ^^^ S mU4S jmUU 4S jmUUU 4S jnT R                   R                  U" 5       5        g )Nc                  0   >#    T " 5       I S h  vN   g  N7fr   r   )bars   r   foo)BaseTaskTests.test_get_stack.<locals>.foo5  s     %KKs   c                  B  >#    TR                  SS9n  TR                  U S   R                  R                  S5        S n [        R
                  " 5       nTR                  SUS9  UR                  S5        UR                  5       nTR                  US5        g ! S n f = f7f)Nr   )limitr   r   )r   filezfoo\(\) running)
	get_stackrl   f_codeco_nameioStringIOprint_stackseekreadassertRegex)r   r  tbTr.   s      r   r   )BaseTaskTests.test_get_stack.<locals>.bar8  s     !$A  1!4!4e< ;;=DMMM-IIaLBR!34 s   B)B ABBBc                  n   >#    [         R                  " T" 5       TR                  S9m T I S h  vN   g  N7frY   )r   r   rQ   )r  r   r.   s   r   runner,BaseTaskTests.test_get_stack.<locals>.runnerG  s%     %%ce$))<AGGs   *535rQ   r~   )r.   r  r  r   r   s   ` @@@r   test_get_stackBaseTaskTests.test_get_stack2  s-    		5	
 			$$VX.r   c                    U R                   R                  S5        S nU R                  UR                  S5        U R	                  UR
                  S5        U R                  UR                  [        5        [        R                  " U5      u  p#U< SU< 3nU" 5       nSnU R                  UR                  S5        U R                  UR
                  U5        U R                  U R                   U5      nUR                  [        5       5        [        USUUR                  SS	9nU R                  [        U5      S
U-  5        UR                  5         U R                  [        U5      SU-  5        U R!                  ["        R$                  U R                   R&                  U5        [        USUUR                  5      nU R                  [        U5      SU-  5        U R                  U R                   U" 5       5      nU R                   R'                  U5        [        USUUR                  5      nU R                  [        U5      SU-  5        g )NFc                     #    g7fNabcr   r   r   r   r   -BaseTaskTests.test_task_repr.<locals>.notmuchQ       r   r   z#\w+.test_task_repr.<locals>.notmuchr   z-BaseTaskTests.test_task_repr.<locals>.notmuchrunningT)r   z0<Task pending name='TestTask' %s cb=[<Dummy>()]>z3<Task cancelling name='TestTask' %s cb=[<Dummy>()]>r   z#<Task cancelled name='TestTask' %s>z/<Task finished name='TestTask' %s result='abc'>)rQ   	set_debugrl   r5   r
  r7   r6   
test_utilsget_function_sourcerV   add_done_callbackr*   r    _source_tracebackreprr{   r|   r   r}   r~   )	r.   r   filenamelinenor   gencoro_qualnamer   rU   s	            r   test_task_reprBaseTaskTests.test_task_reprN  s   		E"	 	))95--?	A++X6%99'B!6* iGy1))=9 MM$))S)	EG$y# ! 3 3tEaKdR	T 	

aNQUU	W 	'00))66	;vs ! 3 35a>E	G MM$))WY/		$$Q'vs ! 3 35aJTQ	Sr   c                    S nU R                  U R                  U" 5       S 5      nU R                  U R                  U" 5       S 5      nU R                  [        U5      [        U5      5        [        R
                  " S[        U5      5      nU R                  U5        [        R
                  " S[        U5      5      nU R                  U5        U R                  [        UR                  S5      5      [        UR                  S5      5      5        U R                  R                  U5        U R                  R                  U5        g )Nc                     #    g7fN{   r   r   r   r   r   ;BaseTaskTests.test_task_repr_autogenerated.<locals>.notmuch       r   z ^<Task pending name='Task-(\d+)'r   )rV   rQ   assertNotEqualr   rematchassertIsNotNone
assertLessintgroupr~   )r.   r   t1t2match1match2s         r   test_task_repr_autogenerated*BaseTaskTests.test_task_repr_autogenerated  s    	 ]]499gi6]]499gi6DHd2h/=tBxHV$=tBxHV$ 	FLLO,c&,,q/.BC		$$R(		$$R(r   c                 "   S nU R                  U R                  U" 5       SS9nU R                  UR                  5       S5        UR	                  S5        U R                  UR                  5       S5        U R                  R                  U5        g )Nc                     #    g7fr)  r   r   r   r   r   8BaseTaskTests.test_task_set_name_pylong.<locals>.notmuch  r,  r   ih:rR   	987654321i[	123456789)rV   rQ   rl   get_nameset_namer~   r.   r   r   s      r   test_task_set_name_pylong'BaseTaskTests.test_task_set_name_pylong  sm    	 MM$))WYYM?{3	

9{3		$$Q'r   c                     S nU R                  U R                  U" 5       5      nUR                  S15        U R                  UR	                  5       S5        U R                  R                  U5        g )Nc                     #    g7fr)  r   r   r   r   r   :BaseTaskTests.test_task_repr_name_not_str.<locals>.notmuch  r,  r      z{6})rV   rQ   rA  rl   r@  r~   rB  s      r   test_task_repr_name_not_str)BaseTaskTests.test_task_repr_name_not_str  sT    	 MM$))WY/	

A3u-		$$Q'r   c           	         U R                   R                  S5        S nU R                  U R                   5      nU R                  U R                   U" U5      5      n[        R
                  " U R                   5        U R                  [        U5      S[        R                  " [        U5      5      -  5        UR                  S 5        U R                   R                  U5        g )NFc                 "   #    U I S h  vN $  N7fr   r   r   s    r   wait_for7BaseTaskTests.test_task_repr_wait_for.<locals>.wait_for  s     99   z<Task .* wait_for=%s>)rQ   r  r]   rV   r  run_brieflyr
  r   r.  escaper   r~   )r.   rM  r   rp   s       r   test_task_repr_wait_for%BaseTaskTests.test_task_repr_wait_for  s    		E"	 oodii(}}TYY6tyy)d0299T#Y3GG	I 	t		$$T*r   c                    ^^ UU4S jnS mS mU" 5       nU R                  U R                  R                  U5      S5        g )Nc                  X   >#    T" 5       I S h  vN n T" 5       I S h  vN nX-   $  N N
7fr   r   )r   binner1inner2s     r   outer-BaseTaskTests.test_task_basics.<locals>.outer  s'     hAhA3J s   *&*(	**c                     #    g7fr>   r   r   r   r   rW  .BaseTaskTests.test_task_basics.<locals>.inner1       r   c                     #    g7f)Ni  r   r   r   r   rX  .BaseTaskTests.test_task_basics.<locals>.inner2  r   r   i  )rl   rQ   r~   )r.   rY  r   rW  rX  s      @@r   test_task_basicsBaseTaskTests.test_task_basics  s:    	
		 G55a8$?r   c                   ^ ^^ [         R                  " 5       mT R                  T5        S mUUU 4S jn T R                  TU" 5       5      nTR	                  U5        TR                  5         g ! TR                  5         f = f)Nc                     #    [         e7fr   r   r   r   r   raise_errorFBaseTaskTests.test_exception_chaining_after_await.<locals>.raise_error  s        	c                  ~  >#     [        S5      e! [         a  n TR                  TT" 5       5      n UI S h  vN     S n A g ! [         af  n TR                  [	        U 5      [
        5        U R                  nTR                  [	        U5      UR                  4[         S45         S n A  S n A g S n A ff = fS n A ff = f7f)N   )ri  )KeyError	ExceptionrV   rl   r#   r   r"   r$   )r%   rp   chainedrQ   re  r.   s      r   r   >BaseTaskTests.test_exception_chaining_after_await.<locals>.run  s     
*qk! *}}T;=9*JJ  *$$T#Y
;!ooG$$d7mW\\%B!4(* **	*sW   B= 
B:B5A:AB=
B2AB-$B5(B=-B22B55B::B=)r   r   r   rV   r~   rH   )r.   r   rp   rQ   re  s   `  @@r   #test_exception_chaining_after_await1BaseTaskTests.test_exception_chaining_after_await  sc     %%'D!		*	==su-D##D)JJLDJJLs   (A/ /Bc                 4  ^ ^^^ S m[         R                  " 5       mT R                  T5        S mUUUU 4S jn T R                  TU" 5       5      nTR	                  U5        TR                  5         T R                  TS5        g ! TR                  5         f = f)Nc                    #    U e7fr   r   )r%   s    r   process_excYBaseTaskTests.test_exception_chaining_after_await_with_context_cycle.<locals>.process_exc  s
     I   c                     >#     [        S5      e! [         a]  n TR                  TT" U 5      5      n UI S h  vN     S n A g ! [         a"  n X R                  L mS U l         S n A  S n A g S n A ff = fS n A ff = f7f)Nr   )rj  rk  rV   BaseExceptionr"   )r%   rp   	has_cyclerQ   rr  r.   s     r   r   QBaseTaskTests.test_exception_chaining_after_await_with_context_cycle.<locals>.run  si     	+sm# +}}T;s+;<+JJ$ +!$!7I&*COO+	+sV   A: 
A7A2A;AA:
A/A*!A2%A:*A//A22A77A:F)r   r   r   rV   r~   rH   rl   )r.   r   rp   rw  rQ   rr  s   `  @@@r   6test_exception_chaining_after_await_with_context_cycleDBaseTaskTests.test_exception_chaining_after_await_with_context_cycle  s     	%%'D!		+ 	+	==su-D##D)JJLE* JJLs   (B Bc                    [         R                  " 5       nS n U R                  X" 5       5      nU R                  UR	                  5       5        U R                  S[        U5      5        U R                  UR                  5       5        U R                  UR	                  5       5        U R                  S[        U5      5        U R                  UR                  5       5        U R                  [         R                  5         UR                  U5        S S S 5        UR                  5         g ! , (       d  f       N= f! UR                  5         f = f)Nc                  L   #    [         R                  " S5      I S h  vN   g  N7fN
   r   r   r   r   r   rp   +BaseTaskTests.test_cancelling.<locals>.task       --###   $"$ cancelling )r   r   rV   assertFalse
cancellingassertNotInr   ry   r{   assertInr|   r}   r~   rH   r.   rQ   rp   r   s       r   test_cancellingBaseTaskTests.test_cancelling  s    %%'	$	dDF+AQ\\^,^T!W5OOAHHJ'OOALLN+MM.$q'2
 OOAHHJ'""7#9#9:''* ; JJL ;: JJLs$   C'D= D,D= ,
D:6D= =Ec                 N   [         R                  " 5       nS n U R                  X" 5       5      nUR                  [         R                  " S5      5        U R                  UR                  5       5        U R                  S[        U5      5        U R                  UR                  5       S5        U R                  UR                  5       5        UR                  [         R                  " S5      5        U R                  S[        U5      5        U R                  UR                  5       S5        U R                  UR                  5       5        U R                  UR                  5       5        U R                  UR                  5       S5        U R                  UR                  5       5        U R                  [         R                  5         UR                  U5        S S S 5        U R                  UR                  5       5        U R                  UR!                  5       5        UR#                  5         U R                  UR                  5       5        U R                  UR!                  5       5        UR%                  5         g ! , (       d  f       N= f! UR%                  5         f = f)Nc                    #     [         R                  " S5      I S h  vN   g  N! [         R                   aE    [         R                  " 5       R	                  5         [         R                  " S5      I S h  vN     g f = f7fr}  )r   r   r}   current_taskuncancelr   r   r   rp   /BaseTaskTests.test_uncancel_basic.<locals>.task  sW     (mmB''')) ($$&//1mmB'''(s>   B% #% B% AA>5A86A>;B=A>>B{Gz?r  r   r   )r   r   rV   r~   r   ry   r{   r  r   rl   r  r  	cancelledr  r|   r}   r   r  rH   r  s       r   test_uncancel_basic!BaseTaskTests.test_uncancel_basic  s   %%'	(	dDF+A##GMM$$78 OOAHHJ'MM.$q'2Q\\^Q/Q[[]+##GMM$$78 ^T!W5Q\\^Q/Q[[]+ OOAHHJ'Q\\^Q/Q[[]+""7#9#9:''* ;OOAKKM*OOAFFH% JJLOOAKKM*OOAFFH%JJL ;: JJLs%   F0J 
JBJ 
JJ J$c                   ^  [         R                  " 5       nS[        S[        4U 4S jjn T R                  X" SSS95      nUR	                  U5      u  pEnT R                  U5        T R                  U5        T R                  U5        T R                  UR                  5       S5        T R                  X" SSS95      nUR	                  U5      u  pEnT R                  U5        T R                  U5        T R                  U5        T R                  UR                  5       S5        UR                  5         g ! UR                  5         f = f)Nr   timeoutc                   >^^#    [         R                  " 5       mTR                  5       nSmSnSnUU4S jnUR                  X5      n  [         R                  " U 5      I S h  vN   SnUR                  5         T(       aI  TR                  5       S:X  a5  [        [        R                  " 5       5      [         R                  L a  [        eSn[         R                  " S5      I S h  vN   TX44$  N! UR                  5         T(       aK  TR                  5       S:X  a6  [        [        R                  " 5       5      [         R                  L a  [        ef f f = f! [         a    T	R                  T5         Nf = f N7f)NFc                  *   > SmT R                  5         g NTr{   )rp   	timed_outs   r   
on_timeoutdBaseTaskTests.test_uncancel_structured_blocks.<locals>.make_request_with_timeout.<locals>.on_timeout^  s     	r   Tr   )r   r  r   
call_laterr   r{   r  r#   sysr   r}   TimeoutErrorry   )
r   r  rQ   structured_block_finishedouter_code_reachedr  timeout_handlerp   r  r.   s
          @@r   make_request_with_timeoutPBaseTaskTests.test_uncancel_structured_blocks.<locals>.make_request_with_timeoutV  sE    '')D==?DI(-%!&
 "__WAN++(+!--...04-"))+! MMOq0 1W5K5KK> +*
 "&--"""7KK[ / #))+! MMOq0 1W5K5KK> +*? L 1 "D   +	*+
 #s\   AE;C1 $C/%C1 +A E E;&E9'E;/C1 1A$EE E63E;5E66E;      $@皙?)r   r  r   )
r   r   floatrV   r~   ry   r  rl   r  rH   )r.   rQ   r  r4  r  r  r  r5  s   `       r   test_uncancel_structured_blocks-BaseTaskTests.test_uncancel_structured_blocksF  s*    %%'>	Le >	Le >	L@	t%>TSV%WXB''+ EI2D OOI&67OO./ R]]_a0 t%>QPT%UVB''+ EI2D Y'OO56OO./R]]_a0JJLDJJLs   C:D7 7E	c                    ^ U4S jn[         R                  " 5       n[         R                  " US9mU R                  X!" 5       5      nUR	                  [         R
                  " S5      5        TR                  S 5         UR                  5         U R                  UR                  5       S5        U R                  UR                  5        UR                  5         U R                  UR                  5       S5        U R                  UR                  5        UR	                  U5      nU R                  US5        UR                  5         g ! UR	                  U5      nU R                  US5        UR                  5         f = f)Nc                  &   >#    T I S h  vN   g N7fr>   r   r   s   r   rU   <BaseTaskTests.test_uncancel_resets_must_cancel.<locals>.coro  s     II r   rZ   r   r   r?   )r   r   r[   rV   r~   r   r   r{   rl   r  ry   _must_cancelr  r  rH   )r.   rU   rQ   rp   resr   s        @r    test_uncancel_resets_must_cancel.BaseTaskTests.test_uncancel_resets_must_cancel  s   	 %%'nn$'}}T46*a 01t	KKMT__.2OOD--.MMOT__.2T../))$/CS"%JJL ))$/CS"%JJLs   >BE 5E=c                   ^  U 4S jnT R                  U5      nS nT R                  X#" 5       5      nUR                  UR                  5        T R	                  [
        R                  5         UR                  U5        S S S 5        T R                  UR                  5       5        T R                  UR                  5       5        T R                  UR                  5       5        g ! , (       d  f       Nl= f)Nc               3   B   >#    S v n TR                  SU 5        Sv   g 7fNr  r   assertAlmostEqualwhenr.   s    r   r#  &BaseTaskTests.test_cancel.<locals>.gen        D""4.Gr   c                  L   #    [         R                  " S5      I S h  vN   g N7f)Nr     r  r   r   r   rp   'BaseTaskTests.test_cancel.<locals>.task  s     --%%% &r  )re   rV   	call_soonr{   r|   r   r}   r~   ry   r   r  r  )r.   r#  rQ   rp   r   s   `    r   test_cancelBaseTaskTests.test_cancel  s    	
 !!#&	 MM$'qxx w556##A& 7!&$	 76s   ,C$$
C2c                 T  ^ ^^	^
 / SQnU H  u  mnT R                  TS9   [        R                  " 5       m	T R                  T	5        S m
UU	U U
4S jnT R	                  T	U" 5       5      nT R                  [        R                  5       nT	R                  U5        S S S 5        WR                  nT R                  UR                  U5        [        U5      nT R                  U[        R                  US45        S S S 5        M     g ! , (       d  f       Nq= f! , (       d  f       GM  = f)N)r   r   )r   r   )rx   r  )   r  cancel_argsc                  L   #    [         R                  " S5      I S h  vN   g  N7fr}  r  r   r   r   r   HBaseTaskTests.test_cancel_with_message_then_future_result.<locals>.sleep       !--+++r  c                     >#    TR                  TT" 5       5      n [        R                  " S5      I S h  vN   U R                  " T6   [        R                  " U /5      I S h  vN u  pU R                  5         g  NE N7fNr   )rV   r   r   r{   waitr   rp   r   pendingr  rQ   r.   r   s      r   rU   GBaseTaskTests.test_cancel_with_message_then_future_result.<locals>.coro  s\     ==uw7D!--***KK-*1,,v*>$>MDKKM +$>!   1A>A:-A>"A<#A><A>r   subTestr   r   r   rV   r|   r}   r~   r   rl   r$   r(   r.   casesexpected_argsrU   rp   r   r%   actualr  rQ   r   s   `       @@@r   +test_cancel_with_message_then_future_result9BaseTaskTests.test_cancel_with_message_then_future_result  s    
 +0&K+6--/##D)," " }}T462&&w'='=>"++D1 ?ll  =9.s3  ++]A>@+ 76 +0  ?> 76%   A)D	DAD
DD
D'	c                 T  ^ ^^	^
 / SQnU H  u  mnT R                  TS9   [        R                  " 5       m	T R                  T	5        S m
UU	U U
4S jnT R	                  T	U" 5       5      nT R                  [        R                  5       nT	R                  U5        S S S 5        WR                  nT R                  UR                  U5        [        U5      nT R                  U[        R                  US45        S S S 5        M     g ! , (       d  f       Nq= f! , (       d  f       GM  = f)Nr  r  c                  L   #    [         R                  " S5      I S h  vN   g  N7fr}  r  r   r   r   r   KBaseTaskTests.test_cancel_with_message_then_future_exception.<locals>.sleep  r  r  c                     >#    TR                  TT" 5       5      n [        R                  " S5      I S h  vN   U R                  " T6   [        R                  " U /5      I S h  vN u  pU R                  5         g  NE N7fr  rV   r   r   r{   r  r   r  s      r   rU   JBaseTaskTests.test_cancel_with_message_then_future_exception.<locals>.coro  s]     ==uw7D!--***KK-*1,,v*>$>MDNN$ +$>r  r   r  r  s   `       @@@r   .test_cancel_with_message_then_future_exception<BaseTaskTests.test_cancel_with_message_then_future_exception  s    
 +0&K+6--/##D),% % }}T462&&w'='=>"++D1 ?ll  =9.s3  ++]A>@+ 76 +0  ?> 76r  c                   ^ ^^^ [         R                  " 5       mT R                  T5        TR                  5       mU4S jmUUU U4S jnT R	                  TU" 5       5      nT R                  [        5       nTR                  U5        S S S 5        WR                  nT R                  UR                  S5        [        U5      nT R                  U[         R                  SS45        g ! , (       d  f       Ne= f)Nc                  p   >#    T R                  S 5        [        R                  " S5      I S h  vN   g  N7fr}  )r   r   r   r   s   r   r   @BaseTaskTests.test_cancellation_exception_context.<locals>.sleep%  s$     NN4 --###s   +646c                     >#    TR                  TT" 5       5      n TI S h  vN   TR                  U R                  S5         U I S h  vN   g  N, N! [        R                   a  n[        S5      UeS nAff = f7f)Nmsgr  )rV   r  r{   r   r}   r   )
inner_taskexr   rQ   r.   r   s     r   rU   ?BaseTaskTests.test_cancellation_exception_context.<locals>.coro)  sm     tUW5JIINN:,,e46     !)) 6 -256sE   A9A A9A AA A9A A6%A11A66A9)r  )r  r   )r   r   r   rg   rV   r|   r   r~   r   rl   r$   r(   r}   )	r.   rU   rp   r   r%   r  r   rQ   r   s	   `     @@@r   #test_cancellation_exception_context1BaseTaskTests.test_cancellation_exception_context   s    %%'D!  "	$	6 	6 }}T46*z*b##D) +ll>2&s+##Xq1	3 +*s   6C''
C5c                   ^ ^^ [         R                  " 5       mT R                  T5        S mUU U4S jnT R                  TU" 5       5      nT R	                  [         R
                  5       nTR                  U5        S S S 5        WR                  nT R                  UR                  S5        [        U5      nT R                  U[         R
                  SS45        g ! , (       d  f       Ne= f)Nc                  L   #    [         R                  " S5      I S h  vN   g  N7fr}  r  r   r   r   r   JBaseTaskTests.test_cancel_with_message_before_starting_task.<locals>.sleep@  r  r  c                     >#    TR                  TT" 5       5      n U R                  S5        [        R                  " U /5      I S h  vN u  pU R	                  5         g  N7f)Nrx   )rV   r{   r   r  r   )rp   r   r  rQ   r.   r   s      r   rU   IBaseTaskTests.test_cancel_with_message_before_starting_task.<locals>.coroC  sH     ==uw/DKK%"),,v"66MDNN 7s   AA AA r  r   )r   r   r   rV   r|   r}   r~   r   rl   r$   r(   )r.   rU   rp   r   r%   r  rQ   r   s   `     @@r   -test_cancel_with_message_before_starting_task;BaseTaskTests.test_cancel_with_message_before_starting_task<  s    %%'D!	$	 }}T46*w556"##D) 7ll?3&s+##_a8	: 76s   +C
C*c                    S nU R                  U R                  U" 5       5      n[        R                  " U R                  5        UR	                  5         U R                  [        R                  U R                  R                  U5        U R                  UR                  5       5        U R                  UR                  5       5        U R                  UR	                  5       5        g )Nc                     #    [         R                  " S5      I S h  vN   [         R                  " S5      I S h  vN   g N# N7f)Nr   r  r  r   r   r   rp   -BaseTaskTests.test_cancel_yield.<locals>.taskU  s4     --"""--""" #"   AA AAAA)rV   rQ   r  rP  r{   r|   r   r}   r~   ry   r   r  r  )r.   rp   r   s      r   test_cancel_yieldBaseTaskTests.test_cancel_yieldT  s    	
 MM$))TV,tyy)	
""DII$@$@!	E!&$r   c                   ^ U R                  U R                  5      mU4S jnU R                  U R                  U" 5       5      n[        R                  " U R                  5        TR                  5         U R                  [        R                  5         U R                  R                  U5        S S S 5        U R                  TR                  5       5        U R                  UR                  5       5        g ! , (       d  f       NM= f)Nc                  &   >#    T I S h  vN   g N7fNr  r   r   s   r   rp   4BaseTaskTests.test_cancel_inner_future.<locals>.taskf       GG r   )r]   rQ   rV   r  rP  r{   r|   r   r}   r~   ry   r  r.   rp   r   r   s      @r   test_cancel_inner_future&BaseTaskTests.test_cancel_inner_futurec  s    OODII&	 MM$))TV,tyy)	
w556II((+ 7&& 76s   C66
Dc                 l  ^ U R                  U R                  5      mU4S jnU R                  U R                  U" 5       5      n[        R                  " U R                  5        TR                  5         UR                  5         U R                  [        R                  5         U R                  R                  U5        S S S 5        U R                  UR                  5       5        U R                  TR                  5       5        U R                  UR                  5       5        g ! , (       d  f       Nl= f)Nc                  &   >#    T I S h  vN   g N7fr  r   r  s   r   rp   BBaseTaskTests.test_cancel_both_task_and_inner_future.<locals>.tasku  r  r   )r]   rQ   rV   r  rP  r{   r|   r   r}   r~   ry   r   r  r  s      @r   &test_cancel_both_task_and_inner_future4BaseTaskTests.test_cancel_both_task_and_inner_futurer  s    OODII&	 MM$))TV,tyy)	
	
w556II((+ 7 	!&& 76s   #D%%
D3c                   ^^ U R                  U R                  5      mU R                  U R                  5      mUU4S jnU R                  U R                  U" 5       5      n[        R                  " U R                  5        U R                  UR                  T5        TR                  S 5        [        R                  " U R                  5        U R                  UR                  T5        UR                  5         U R                  TR                  5       5        U R                  R                  U5      nU R                  US5        U R                  UR                  5       5        g )Nc                  t   >#    T I S h  vN    TI S h  vN   g  N N! [         R                   a     gf = f7fr>   r   r}   )fut1fut2s   r   rp   5BaseTaskTests.test_cancel_task_catching.<locals>.task  s8     JJ

 )) s0   88  8 5858r?   r]   rQ   rV   r  rP  r   _fut_waiterr   r{   ry   r  r~   rl   r  )r.   rp   r   r  r
  r  s       @@r   test_cancel_task_catching'BaseTaskTests.test_cancel_task_catching  s    tyy)tyy)	 MM$))TV,tyy)ammT*tyy)ammT*	
()ii**1-b!'r   c                   ^^^ U R                  U R                  5      mU R                  U R                  5      mU R                  U R                  5      mUUU4S jnU R                  U R                  U" 5       5      n[        R                  " U R                  5        U R                  UR                  T5        TR                  S 5        [        R                  " U R                  5        U R                  UR                  T5        UR                  5         U R                  TR                  5       5        [        R                  " U R                  5        U R                  UR                  T5        TR                  S5        U R                  R                  U5      nU R                  US5        U R                  TR                  5       5        U R                  UR                  5       5        g )Nc                     >#    TI S h  vN    TI S h  vN   TI S h  vN n U $  N N! [         R                   a     N&f = f N$7fr   r	  )r  r
  r  fut3s    r   rp   5BaseTaskTests.test_cancel_task_ignoring.<locals>.task  sJ     JJ

 *CJ )) sB   A%A) ') AAA) A AA  Ar?   r  )r.   rp   r   r  r
  r  r  s       @@@r   test_cancel_task_ignoring'BaseTaskTests.test_cancel_task_ignoring  sC   tyy)tyy)tyy)	 MM$))TV,tyy)ammT*tyy)ammT*	
()tyy)ammT*ii**1-b!)*'r   c                   ^ ^ [         R                  " 5       nT R                  U5        U U4S jnT R                  X" 5       5      mT R	                  TR                  5       5        T R                  [         R                  UR                  T5        T R                  TR                  5       5        T R                  TR                  5       5        T R	                  TR                  5        T R	                  TR                  5       5        g )Nc                     >#    TR                  5         T R                  TR                  5        [        R                  " S5      I S h  vN   g N7f)Nr   r  )r{   ry   r  r   r   r.   r   s   r   rp   4BaseTaskTests.test_cancel_current_task.<locals>.task  s9     HHJOOANN+--$$$ %s   AAA	Ar   r   r   rV   r  r  r|   r}   r~   ry   r   r  r{   r  s   `  @r   test_cancel_current_task&BaseTaskTests.test_cancel_current_task  s    %%'D!	 MM$''""D$;$;Q	@!&($r   c                   ^ ^ [         R                  " 5       nT R                  U5        U U4S jnT R                  X" 5       5      mT R	                  TR                  5       5        T R                  [         R                  UR                  T5        T R                  TR                  5       5        T R                  TR                  5       5        T R	                  TR                  5        T R	                  TR                  5       5        g )Nc                  d   >#    TR                  5         T R                  TR                  5        g7fr  )r{   ry   r  r  s   r   rp   .BaseTaskTests.test_cancel_at_end.<locals>.task  s"     HHJOOANN+s   -0r  r  s   `  @r   test_cancel_at_end BaseTaskTests.test_cancel_at_end  s    %%'D!	
 MM$''""D$;$;Q	@!&($r   c                 *  ^ ^^^^^ [         R                  " 5       mT R                  U4S j5        S =mmT R                  T5      mU4S jmUUUU U4S jnT R	                  TU" 5       5      mT R                  [         R                  5         TR                  T5        S S S 5        T R                  TR                  5       5        T R                  TR                  5       5        T R                  TR                  5       5        g ! , (       d  f       Nl= f)Nc                  $   > T R                  5       $ r   )rH   rZ   s   r   ra   8BaseTaskTests.test_cancel_awaited_task.<locals>.<lambda>  s    

r   c                  &   >#    T I S h  vN   g  N7fr   r   r   s   r   nested6BaseTaskTests.test_cancel_awaited_task.<locals>.nested       IIr   c                     >#    TR                  T T" 5       5      m[        R                  " S5      I S h  vN   TR                  5         TI S h  vN   g  N N7fr  rV   r   r   r{   )rQ   r'  nested_taskr.   rp   s   r   rU   4BaseTaskTests.test_cancel_awaited_task.<locals>.coro  sL      --fh7K--""" KKM  # !   1AAAAAA)
r   r   r   r]   rV   r|   r}   r~   ry   r  )r.   rU   r   rQ   r'  r,  rp   s   ` @@@@@r   test_cancel_awaited_task&BaseTaskTests.test_cancel_awaited_task  s     %%',-!!{ood#	
	 
	 }}T46*w556##D) 7 	()--/0( 76s   D
Dc                 4    X!;  a  [        SU< SU S35      eg )Nztext z not found in:
>>>z<<<r   )r.   textsubstrs      r   assert_text_contains"BaseTaskTests.assert_text_contains  s(    vj0CD6MNN r   c                   ^ ^^ [         R                  " 5       mT R                  T5        S mUUU 4S jnT R                  TU" 5       5      n TR	                  U5        T R                  S5        g ! [         R                   a<    [        R                  " 5       nT R                  US5        T R                  US5         g f = f)Nc                  L   #    [         R                  " S5      I S h  vN   g  N7fr}  r  r   r   r   r'  EBaseTaskTests.test_cancel_traceback_for_future_result.<locals>.nested       --###r  c                     >#    TR                  TT" 5       5      n [        R                  " S5      I S h  vN   U R                  5         U I S h  vN   g  N N7fr  r+  )rp   rQ   r'  r.   s    r   rU   CBaseTaskTests.test_cancel_traceback_for_future_result.<locals>.coro  sB     ==vx0D--"""KKMJJ #r.  CancelledError did not occurawait asyncio.sleep(10)zawait task  # search target
r   r   r   rV   r~   failr}   	traceback
format_excr5  r.   rU   rp   r  rQ   r'  s   `   @@r   'test_cancel_traceback_for_future_result5BaseTaskTests.test_cancel_traceback_for_future_result
  s     %%'D!	$	 }}T46*	6##D) II45 %% 	I%%'B%%b*CD%%b*GH		I   A0 0AC ?C c                   ^ ^^ [         R                  " 5       mT R                  T5        S mUUU 4S jnT R                  TU" 5       5      n TR	                  U5        T R                  S5        g ! [         R                   a<    [        R                  " 5       nT R                  US5        T R                  US5         g f = f)Nc                  L   #    [         R                  " S5      I S h  vN   g  N7fr}  r  r   r   r   r'  HBaseTaskTests.test_cancel_traceback_for_future_exception.<locals>.nested+  r:  r  c                    >#    TR                  TT" 5       5      n [        R                  " S5      I S h  vN   U R                  5         [        R                  " U /5      I S h  vN u  pU R                  5         g  NF N7fr  r  )rp   r   r  rQ   r'  r.   s      r   rU   FBaseTaskTests.test_cancel_traceback_for_future_exception.<locals>.coro/  sZ     ==vx0D--"""KKM"),,v"66MDNN #6s!   1A?A;.A?#A=$A?=A?r=  r>  z!task.exception()  # search targetr?  rC  s   `   @@r   *test_cancel_traceback_for_future_exception8BaseTaskTests.test_cancel_traceback_for_future_exception%  s     %%'D!	$	 }}T46*		6##D) II45 %% 	5%%'B%%b*CD%%b35		5rF  c                 Z  ^ ^^ U 4S jnT R                  U5      mSmUU4S jnT R                  TU" 5       5      nT R                  [        5       nTR	                  U5        S S S 5        T R                  [        WR                  5      S5        T R                  UR                  5       5        T R                  TS5        T R                  STR                  5       5        UR                  5         T R                  [        R                  TR                  U5        g ! , (       d  f       N= f)Nc               3      >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)Nr  皙?333333?r  r  s    r   r#  :BaseTaskTests.test_stop_while_run_in_complete.<locals>.genD  sN     D""3-9D""3-9D""3-I   AAr   c                     >#    TS:  aB  [         R                  " S5      I S h  vN   TS-  mTS:X  a  T R                  5         TS:  a  MA  g g  N)7f)Nr~  r  r      )r   r   stop)rQ   xs   r   rp   ;BaseTaskTests.test_stop_while_run_in_complete.<locals>.taskQ  sD     b&mmC(((Q6IIK	 b&(s    AA%AAz+Event loop stopped before Future completed.rU  rQ  )re   rV   r|   r   r~   rl   rk   r   r  r   r  timer{   r   r}   )r.   r#  rp   r   r   rQ   rW  s   `    @@r   test_stop_while_run_in_complete-BaseTaskTests.test_stop_while_run_in_completeB  s    	 !!#&	  MM$'|,##A& -R\\*F	H"AsDIIK0	
'00$2I2I1M -,s   D
D*c                     S nU R                  U R                  U" 5       5      nU R                  [        S5         SUl        S S S 5        U R                  R                  U5        g ! , (       d  f       N*= f)Nc                     #    g 7fr   r   r   r   r   rU   .BaseTaskTests.test_log_traceback.<locals>.corof  rv   r   zcan only be set to FalseT)rV   rQ   r   r   _log_tracebackr~   r.   rU   rp   s      r   test_log_traceback BaseTaskTests.test_log_tracebacke  sZ    	 }}TYY/##J0JK"&D L		$$T* LKs   A''
A5c                 <  ^ ^^ U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      mT R                  U[        R                  " S5      5      mUUU 4S jnUR	                  T R                  X#" 5       5      5      nT R                  US5        T R                  SUR                  5       5        UR	                  T R                  X#" 5       5      5      nT R                  SUR                  5       5        T R                  US5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7fNr  r   333333?r  r  s    r   r#  $BaseTaskTests.test_wait.<locals>.genp  7     D""3-7D""4.J   25r  rf  c                     >#    [         R                  " TT/5      I S h  vN u  pTR                  U [        TT/5      5        TR                  U[        5       5        g N>7fr>   r   r  rl   setr   r  r   rV  r.   s     r   r   $BaseTaskTests.test_wait.<locals>.foo|  sO     "),,1v"66MDT31v;/Wce, 7s   A A?A r?   re   rV   r   r   r~   rl   r  rY  r.   r#  rQ   r   r  r   rV  s   `    @@r   	test_waitBaseTaskTests.test_waitn  s    	 !!#&MM$c 23MM$d 34	 %%dmmD#%&@Ab!tTYY[1 %%dmmD#%&@AtTYY[1b!r   c                    S nU R                   R                  U" S5      5      nU R                  U R                   [        R                  " X"U R                   R                  U" S5      5      /5      5      nU R                   R                  U5      u  pEU R                  U5        U R                  [        S U 5       5      SS15        g )Nc                    #    U $ 7fr   r   ss    r   rU   :BaseTaskTests.test_wait_duplicate_coroutines.<locals>.coro  
     Hrt  r   spamc              3   @   #    U  H  oR                  5       v   M     g 7fr   r   .0r   s     r   	<genexpr>?BaseTaskTests.test_wait_duplicate_coroutines.<locals>.<genexpr>  s     6AXXZZ   )	rQ   create_taskrV   r   r  r~   r  rl   rl  )r.   rU   crp   r   r  s         r   test_wait_duplicate_coroutines,BaseTaskTests.test_wait_duplicate_coroutines  s    	II!!$v,/}}IILL!		 5 5d6l CDEG 		44T:!6668HIr   c                 `   U R                  [        U R                  R                  [        R
                  " [        5       5      5        [        R                  " S5      n[        R
                  " U/SS9nU R                  [        U R                  R                  U5        UR                  5         g )Nr  r   return_when)	r|   r   rQ   r~   r   r  rl  r   rH   )r.   
sleep_coro	wait_coros      r   test_wait_errorsBaseTaskTests.test_wait_errors  s}    		44LL	!
 ]]4(
LL*2>	*))66		C 	r   c                   ^  U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      nT R                  U[        R                  " S5      5      nT R                  U[        R                  " XC/[        R
                  S95      nUR                  U5      u  pgT R                  U1U5        T R                  U1U5        T R                  UR                  5       5        T R                  UR                  5       5        T R                  UR                  5       5        T R                  SUR                  5       5        UR                  S5        UR                  [        R                  " X4/5      5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)Nr  r   r  r  r  s    r   r#  4BaseTaskTests.test_wait_first_completed.<locals>.gen  s7     D""4.7D""3-Iri  r  r  r  r~  )re   rV   r   r   r  FIRST_COMPLETEDr~   rl   r  r   ry   assertIsNoner   r  rY  advance_time)r.   r#  rQ   r   rV  rp   r   r  s   `       r   test_wait_first_completed'BaseTaskTests.test_wait_first_completed  s%   	 !!#&MM$d 34MM$c 23}}LL!W-D-DEG //5!d#!g&"!!((*%sDIIK0 	"aV 45r   c                 h   S nS nU R                  U R                  U" 5       5      nU R                  U R                  U" 5       5      nU R                  U R                  [        R                  " XC/[        R                  S95      nU R                  R                  U5      u  pgU R                  X41U5        U R                  UR                  5       5        U R                  UR                  5       5        U R                  UR                  5       5        U R                  UR                  5       5        g )Nc                  L   #    [         R                  " S5      I S h  vN   g  N7fr  r  r   r   r   coro12BaseTaskTests.test_wait_really_done.<locals>.coro1  s     --"""r  c                     #    [         R                  " S5      I S h  vN   [         R                  " S5      I S h  vN   g  N# N7fr  r  r   r   r   coro22BaseTaskTests.test_wait_really_done.<locals>.coro2  s1     --"""--""" #"r  r  )rV   rQ   r   r  r  r~   rl   ry   r   r  r   )r.   r  r  r   rV  rp   r   r  s           r   test_wait_really_done#BaseTaskTests.test_wait_really_done  s    	#	# MM$))UW-MM$))UW-}}IILL!W-D-DEG 		44T:!&!!((*%!!((*%r   c                 :  ^  U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      nS nT R                  X$" 5       5      nT R                  U[        R                  " XS/[        R
                  S95      nUR                  U5      u  pxT R                  U1U5        T R                  U1U5        T R                  SUR                  5       5        UR                  S5        UR                  [        R                  " X5/5      5        g )Nc               3   B   >#    S v n TR                  SU 5        Sv   g 7fr  r  r  s    r   r#  4BaseTaskTests.test_wait_first_exception.<locals>.gen  r  r   r  c                      #    [        S5      e7f)Nerr)ZeroDivisionErrorr   r   r   r%   4BaseTaskTests.test_wait_first_exception.<locals>.exc  s     #E**s   r  r   r~  re   rV   r   r   r  FIRST_EXCEPTIONr~   rl   r  rY  r  	r.   r#  rQ   r   r%   rV  rp   r   r  s	   `        r   test_wait_first_exception'BaseTaskTests.test_wait_first_exception  s    	
 !!#& MM$d 34	+ MM$&}}LL!W-D-DEG //5!d#!g&q$))+. 	"aV 45r   c                   ^  U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      nS nT R                  X$" 5       5      n[        R                  " XS/[        R
                  S9nUR                  U5      u  pxT R                  U1U5        T R                  U1U5        T R                  SUR                  5       5        UR                  S5        UR                  [        R                  " X5/5      5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)Nr  r   r  r  r  s    r   r#  <BaseTaskTests.test_wait_first_exception_in_wait.<locals>.gen  7     D""4.7D""4.Jri  r  c                  `   #    [         R                  " S5      I S h  vN   [        S5      e N7f)Nr  r  r   r   r  r   r   r   r%   <BaseTaskTests.test_wait_first_exception_in_wait.<locals>.exc  s'     --%%%#E** &   .,.r  r  r~  r  r  s	   `        r   !test_wait_first_exception_in_wait/BaseTaskTests.test_wait_first_exception_in_wait  s    	 !!#& MM$d 34	+ MM$&||QF0G0GH//5!d#!g&tTYY[1 	"aV 45r   c                   ^ ^^ U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      mS nT R                  X#" 5       5      mUUU 4S jnUR	                  T R                  X$" 5       5      5        T R                  SUR                  5       5        UR	                  T R                  X$" 5       5      5        T R                  SUR                  5       5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7fre  r  r  s    r   r#  3BaseTaskTests.test_wait_with_exception.<locals>.gen  rh  ri  r  c                  `   #    [         R                  " S5      I S h  vN   [        S5      e N7f)Nrf  reallyr  r   r   r   sleeper7BaseTaskTests.test_wait_with_exception.<locals>.sleeper#  s'     --%%%#H-- &r  c                    >#    [         R                  " TT/5      I S h  vN u  pTR                  [        U 5      S5        TR                  U[	        5       5        [	        S U  5       5      nTR                  [        U5      S5        g  Ni7f)NrU  c              3   J   #    U  H  oR                  5       c  M  Uv   M     g 7fr   )r   r{  s     r   r}  FBaseTaskTests.test_wait_with_exception.<locals>.foo.<locals>.<genexpr>-  s     FDqKKMDs   #	#r   )r   r  rl   lenrl  )r   r  errorsr   rV  r.   s      r   r   3BaseTaskTests.test_wait_with_exception.<locals>.foo)  sl     "),,1v"66MDSY*Wce,FDFFFS[!,	 7s   BB	A*Brf  )re   rV   r   r   r~   r  rY  )r.   r#  rQ   r  r   r   rV  s   `    @@r   test_wait_with_exception&BaseTaskTests.test_wait_with_exception  s    	 !!#&MM$c 23	. MM$	*	- 	dCE :;tTYY[1dCE :;tTYY[1r   c                   ^ ^^ U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      mT R                  U[        R                  " S5      5      mUUU 4S jnUR	                  T R                  X#" 5       5      5        T R                  SUR                  5       5        UR                  S5        UR	                  [        R                  " TT/5      5        g )Nc               3      >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)Nr  r   rf  )\(?r  r  s    r   r#  1BaseTaskTests.test_wait_with_timeout.<locals>.gen8  sN     D""3-7D""4.7D""4.JrS  r  rf  c                     >#    [         R                  " TT/SS9I S h  vN u  pTR                  U [        T/5      5        TR                  U[        T/5      5        g  N?7f)Nr  r  rk  rm  s     r   r   1BaseTaskTests.test_wait_with_timeout.<locals>.fooF  sQ     "),,1vt"DDMDT3s8,Wc1#h/ Es   A AA A r  r~  )	re   rV   r   r   r~   r  rY  r  r  )r.   r#  rQ   r   r   rV  s   `   @@r   test_wait_with_timeout$BaseTaskTests.test_wait_with_timeout6  s    	 !!#&MM$c 23MM$d 34	0
 	dCE :;tTYY[1 	"aV 45r   c                 8  ^  U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      nT R                  U[        R                  " S5      5      nUR	                  [        R
                  " XC/SS95      u  pVT R                  U[        U/5      5        T R                  U[        U/5      5        T R                  SUR                  5       5        UR                  S5        UR	                  [        R
                  " X4/5      5        g )Nc               3      >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7fre  r  r  s    r   r#  8BaseTaskTests.test_wait_concurrent_complete.<locals>.genT  sN     D""3-7D""4.7D""3-IrS  r  rf  r  r~  )re   rV   r   r   r~   r  rl   rl  r  rY  r  )r.   r#  rQ   r   rV  r   r  s   `      r   test_wait_concurrent_complete+BaseTaskTests.test_wait_concurrent_completeR  s    	 !!#&MM$c 23MM$d 34//LL!-/ 	sA3x(#qc(+sDIIK0 	"aV 45r   c                   ^ ^^ U 4S jnT R                  U5      nT R                  U[        R                  " S5      5      mT R                  U[        R                  " S5      5      mUUU 4S jnUR	                  T R                  X#" 5       5      5      nT R                  US5        T R                  SUR                  5       5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7fre  r  r  s    r   r#  ;BaseTaskTests.test_wait_with_iterator_of_tasks.<locals>.geno  rh  ri  r  rf  c                     >#    [         R                  " [        TT/5      5      I S h  vN u  pTR                  U [	        TT/5      5        TR                  U[	        5       5        g N>7fr>   )r   r  iterrl   rl  rm  s     r   r   ;BaseTaskTests.test_wait_with_iterator_of_tasks.<locals>.foo{  sS     "),,tQF|"<<MDT31v;/Wce, =s   %A)A'?A)r?   ro  rp  s   `    @@r    test_wait_with_iterator_of_tasks.BaseTaskTests.test_wait_with_iterator_of_tasksm  s    	 !!#&MM$c 23MM$d 34	 %%dmmD#%&@Ab!tTYY[1r   c                 l   ^ ^^ S mT R                  5       mUUU 4S jnTR                  U" 5       5        g )Nc                    #    U $ 7fr   r   )r   s    r   func/BaseTaskTests.test_wait_generator.<locals>.func  rx  rt  c                    >#    UUU4S j[        S5       5       n [        R                  " U [        R                  S9I S h  vN u  pTR	                  [        U5      S5        TR	                  [        U5      S5        g  N=7f)Nc              3   T   >#    U  H  nTR                  TT" U5      5      v   M     g 7fr   )rV   )r|  ir  rQ   r.   s     r   r}  BBaseTaskTests.test_wait_generator.<locals>.main.<locals>.<genexpr>  s#     E9aT]]4a119s   %(r~  r  r   )r   r   r  ALL_COMPLETEDrl   r  )r   r   r  r  rQ   r.   s      r   main/BaseTaskTests.test_wait_generator.<locals>.main  s]     E59EE"),,u'BWBW"XXMDSY+S\1- Ys   >BA?>Bre   r~   )r.   r  r  rQ   s   ` @@r   test_wait_generator!BaseTaskTests.test_wait_generator  s/    	 !!#	. 	'r   c                 @  ^
^^ S nU
UU4S jnS nS nX44 H  nU R                  UR                  S9   U R                  U5      mSTl        [	        5       m
SmU" SS	5      nU" SS
5      nU" SS5      nTR                  U R                  TU" XxU/5      5      5      n	U R                  STR                  5       5        U R                  S	U	S S ;   5        U R                  S
U	S S ;   5        U R                  U	S   S5        S S S 5        M     g ! , (       d  f       GM  = f)Nc               3   ,   #    Sv   Sv   Sv   Sv   g 7fNr   r  r   r   r   r   r#  ,BaseTaskTests.test_as_completed.<locals>.gen  s     GGJG   c                    >#    [         R                  " U 5      I S h  vN   TR                  U5        T(       d  ST;   a  ST;   a  SmTR                  S5        U$  N=7f)Nr   rV  TgQ?)r   r   addr  )dtrW  	completedrQ   time_shifteds     r   r  0BaseTaskTests.test_as_completed.<locals>.sleeper  sR     --###MM!C9$4	9I#!!$'H $s   AA>Ac                    #    / n[         R                  " U 5       H  nUR                  UI S h  vN 5        M     U$  N7fr   r   as_completedappend
awaitablesvaluesr   s      r   try_iterator5BaseTaskTests.test_as_completed.<locals>.try_iterator  s7     F))*5Ag& 6M &s   ,?=
?c                    #    / n[         R                  " U 5        S h  vN nUR                  UI S h  vN 5        M$   N N
 U$ 7fr   r  r  s      r   try_async_iterator;BaseTaskTests.test_as_completed.<locals>.try_async_iterator  s?     F"//
; 'aAg&'% <Ms3   AA?AAA

AAAAmethodg      ?Fr  r   rV  rf  r  rU  )r  r5   re   slow_callback_durationrl  r~   rV   r  rY  ry   rl   )r.   r#  r  r  r  r   r   rV  r  r  r  rQ   r  s             @@@r   test_as_completedBaseTaskTests.test_as_completed  s   				  3CS\\2))#..1+E	$D#&D#&D#&--dmmD#qQi..QR&&tTYY[9s2Aw/s2Aw/  Q-! 32 422s   CD
D	c           	      >   S nS n[         R                  " [        R                  " 5       5       n[	        U" S5      U" S5      U" S5      U" S5      45      nUR                  U" U5      5      nXE-
  U:w  a  U R                  S5      eU" S5      nUR                  U" S	5      5      nU" S
5      nUR                  U" S5      5      n	[	        XgX45      nUR                  U" U5      5      nXE-  Xy1:w  a  U R                  S5      e S S S 5        g ! , (       d  f       g = f)Nc                    #    [        5       n[        R                  " U 5        S h  vN nUR                  U5        M   N
 U$ 7fr   )rl  r   r  r  )r  awaitables_outout_aws      r   r  PBaseTaskTests.test_as_completed_same_tasks_in_as_out.<locals>.try_async_iterator  s=      UN ' 4 4Z @ +f""6*+ @!!s#   !AA?AAAAc                    #    U $ 7fr   r   r  s    r   rU   BBaseTaskTests.test_as_completed_same_tasks_in_as_out.<locals>.coro  rx  rt  r   r   rU  ri  z5Got original coroutines out of as_completed iterator.r   rV  r  dz>Only tasks should be yielded from as_completed iterator as-is.)
contextlibclosingr   r   	frozensetr~   failureExceptionr  )
r.   r  rU   rQ   awaitables_inr  
coro_obj_atask_b
coro_obj_ctask_ds
             r   &test_as_completed_same_tasks_in_as_out4BaseTaskTests.test_as_completed_same_tasks_in_as_out  s3   	"	  6 6 89T &a$q'47DG4M "44"=1N ->++ -L M M cJ%%d3i0FcJ%%d3i0F%Z8M "44"=1N -&1AA++ -5 6 6 B1 :99s   CD
Dc           	      F  ^^^ S nUUU4S jnUUU4S jnX#4 GHp  nU R                  UR                  S9   U R                  U5      mTR                  [        R
                  " SS5      5      mTR                  [        R
                  " SS5      5      mTR                  U R                  TU" 5       5      5      nU R                  [        U5      S	U5        U R                  US
   S5        U R                  US   S
   S	5        U R                  US   S   [        R                  5        U R                  STR                  5       5        TR                  S5        TR                  [        R                  " TT/5      5        S S S 5        GMs     g ! , (       d  f       GM  = f)Nc               3   ,   #    S v   Sv   Sv   Sv   g 7f)Nr   r  r   r   r   r   r#  9BaseTaskTests.test_as_completed_with_timeout.<locals>.gen  s     GGIr  c                  *  >#    / n [         R                  " TT/SS9 H9  nU (       a  TR                  S5         UI S h  vN nU R                  SU45        M;     U $  N! [         R                   a  nU R                  SU45         S nAMn  S nAff = f7f)NQ?r  {Gz?r   rU  )r   r  r  r  r  r  r   rA   r%   r   rV  rQ   s       r   r  BBaseTaskTests.test_as_completed_with_timeout.<locals>.try_iterator  s     F))1a&$?%%d+,AMM1a&) @ M	  ++ ,MM1c(++,s>   5BAAABAB2BBBBc                  *  >#    / n  [         R                  " TT/SS9  S h  vN nUI S h  vN nU R                  SU45        TR                  S5        M9   N4 N,
 U $ ! [         R                   a  nU R                  SU45         S nAU $ S nAff = f7f)Nr  r  r   r  rU  )r   r  r  r  r  r  s       r   r  HBaseTaskTests.test_as_completed_with_timeout.<locals>.try_async_iterator  s     F(&33QFDI ,!AMM1a&)%%d+,  J M '' (q#h''M(s^   BA AAAA A*A AA A BB2BBBBr  r  r   rf  rV  rU  r   )r   r   r   r  r~  )r  r5   re   r  r   r   r~   rV   rl   r  rn   r  r  rY  r  r  )	r.   r#  r  r  r   r  r   rV  rQ   s	         @@@r   test_as_completed_with_timeout,BaseTaskTests.test_as_completed_with_timeout  sF   	
			  3CS\\2))#.$$W]]3%<=$$W]]4%=>--dmmD#%.HI  S1c2  Q2  QA.%%c!fQi1E1EF&&tTYY[9 !!"%''aV(<= 32 422s   EF
F 	c           	      `  ^ ^ S nUU 4S jnUU 4S jnX#4 H  nT R                  UR                  S9   [        R                  " SS5      mT R	                  U5      nUR                  T R                  XT" 5       5      5        UR                  5         S S S 5        M     g ! , (       d  f       M  = f)Nc               3   $   #    S v   Sv   Sv   g 7fr  r   r   r   r   r#  @BaseTaskTests.test_as_completed_with_unused_timeout.<locals>.gen!  s     GJ   c                     >#    [         R                  " T/SS9 H  n U I S h  vN nTR                  US5        M!     g  N7fNr   r  r   r   r  rl   r   rA   r   r.   s     r   r  IBaseTaskTests.test_as_completed_with_unused_timeout.<locals>.try_iterator&  s9     ))1#q9G  C( :s   A >A c                     >#    [         R                  " T/SS9  S h  vN n U I S h  vN nTR                  US5        M'   N" N
 g 7fr&  r'  r(  s     r   r  OBaseTaskTests.test_as_completed_with_unused_timeout.<locals>.try_async_iterator+  sD     "//Q? )aG  C() @s5   AAAAAAAAAAr  r  r   )r  r5   r   r   re   r~   rV   rH   )r.   r#  r  r  r   rQ   r   s   `     @r   %test_as_completed_with_unused_timeout3BaseTaskTests.test_as_completed_with_unused_timeout  s    	
	)
	)
  3CS\\2MM$,))#.''dCE(BC

	 32 422s   AB
B-	c                   ^  U 4S jnU 4S jnS n[         R                  " [        R                  " 5       5       nX4 Hj  nT R	                  UR
                  S9   UR                  U" U" S5      U" S5      U" S5      U" S5      45      5      nT R                  US	5        S S S 5        Ml     S S S 5        g ! , (       d  f       M  = f! , (       d  f       g = f)
Nc                 $  >#    Sn[         R                  " U 5      n/ nU H)  nUR                  UI S h  vN 5        US-  nUS:X  d  M)    O   TR                  [	        U5      S5        U H  nUR                  UI S h  vN 5        M     U$  NX N7fNr   r   rU  r   r  r  rl   r  r  
iterationsiterator	collectedr   r.   s        r   r  EBaseTaskTests.test_as_completed_resume_iterator.<locals>.try_iterator;  s     J++J7HI  q)a
?	 
 S^Q/   q)  ") ")s'   0BB
B	4B=B
>BBc                 @  >#    Sn[         R                  " U 5      n/ nU  S h  vN nUR                  UI S h  vN 5        US-  nUS:X  d  M/    TR                  [	        U5      S5        U  S h  vN nUR                  UI S h  vN 5        M$   Nl NY
 NG N% N
 U$ 7fr0  r1  r2  s        r   r  KBaseTaskTests.test_as_completed_resume_iterator.<locals>.try_async_iteratorK  s     J++J7HI# a  q)a
?S^Q/ $ *a  q)!( $*!( $sq   BBBBBB
BB-B1B2B5BB

BBBBBBBc                    #    U $ 7fr   r   r  s    r   rU   =BaseTaskTests.test_as_completed_resume_iterator.<locals>.coro[  rx  rt  r  r   r   rU  ri  )r   r   rU  ri  )r
  r  r   r   r  r5   r~   assertCountEqual)r.   r  r  rU   rQ   r   resultss   `      r   !test_as_completed_resume_iterator/BaseTaskTests.test_as_completed_resume_iterator7  s    	 	 	  6 6 89T#7\\\6"55T!Wd1gtAwQ@AG ))'<@	 76 8 :966 :9s$    CAB5 C5
C?C
Cc                    ^ ^^ S nT R                  U5      m[        R                  " SS5      n[        R                  " SS5      nX#1mUUU 4S jnTR                  U" 5       5        g )Nc               3   $   #    Sv   Sv   Sv   g 7f)Nr   皙?r   r   r   r   r#  9BaseTaskTests.test_as_completed_reverse_wait.<locals>.genk  s     GJGr$  rA  r   r  rV  c                    >#    [        [        R                  " T5      5      n TR                  [	        U 5      S5        U S   I S h  vN nTR                  US5        TR                  STR                  5       5        TR                  S5        U S   I S h  vN nTR                  US5        TR                  STR                  5       5        g  N N97f)NrU  r   r   rA  r   rV  r  )listr   r  rl   r  r  rY  r  )futsrW  yfsrQ   r.   s      r   r   :BaseTaskTests.test_as_completed_reverse_wait.<locals>.testv  s     ,,R01DSY*1gAQ$""45d#1gAQ$""45  s%   ACCACC8CC)re   r   r   r~   )r.   r#  r   rV  r   rG  rQ   s   `    @@r   test_as_completed_reverse_wait,BaseTaskTests.test_as_completed_reverse_waitf  sX    
	
 !!#&MM$$MM$$V
	6 	'r   c                 ^  ^ ^^	 U 4S jnS nS nX#4 H  m	T R                  T	R                  S9   [        R                  " SS5      n[        R                  " SS5      nXE1mUU	U 4S jnT R	                  U5      nUR                  U" 5       5        S S S 5        M     g ! , (       d  f       M  = f)	Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)NrA  r   r  r  s    r   r#  7BaseTaskTests.test_as_completed_concurrent.<locals>.gen  r  ri  c                 H   #    [        [        R                  " U 5      5      $ 7fr   )rD  r   r  )rG  s    r   r  @BaseTaskTests.test_as_completed_concurrent.<locals>.try_iterator  s     ,,R011s    "c                 l   #    [         R                  " U 5       Vs/ s S h  vN oPM   N
 sn$ s  snf 7fr   r   r  )rG  r   s     r   r  FBaseTaskTests.test_as_completed_concurrent.<locals>.try_async_iterator  s'     %,%9%9"%=>>A>>>s$   4/+)
+/+/4r  rA  r   rV  c                  H  >#    T" T5      I S h  vN n TR                  [        U 5      S5        [        R                  " U  Vs/ s H  n[        R                  " U5      PM     sn5      I S h  vN u  p#TR                  [        S U 5       5      SS15        g  Ns  snf  N27f)NrU  c              3   @   #    U  H  oR                  5       v   M     g 7fr   r   r{  s     r   r}  KBaseTaskTests.test_as_completed_concurrent.<locals>.test.<locals>.<genexpr>  s     (BTTr  r   rV  )rl   r  r   r  r   rl  )rE  r   r   r  rG  r  r.   s       r   r   8BaseTaskTests.test_as_completed_concurrent.<locals>.test  s     !'+D$$SY2*1,,?CDt..s3tD+ %MD $$S(BT(B%BS#JO , E%s-   B"B3B" B#
B"-B .,B"B")r  r5   r   r   re   r~   )
r.   r#  r  r  r   rV  r   rQ   rG  r  s
   `       @@r   test_as_completed_concurrent*BaseTaskTests.test_as_completed_concurrent  s    		2	? #6FV__5MM$,MM$,VP ))#.''/ 65 755s   A!B
B,	c                   ^ S mU4S jnU4S jnX4 H  nU R                  UR                  S9   U R                  U R                  U" 5       5      nU R                  R	                  U5        UR                  5       nU R                  [        U5      SS15        U R                  [        U5      S5        S S S 5        M     g ! , (       d  f       M  = f)Nc                    #    U $ 7fr   r   ru  s    r   rU   BBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.coro  rx  rt  c                     >#    / n T" S5      n[         R                  " XT" S5      /5       H  nU R                  UI S h  vN 5        M     U $  N7fNhamry  r  r   r  r   rU   s      r   r  JBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.try_iterator  sK     FUA))1f*>?Ag& @M &s   <AA
 Ac                     >#    / n T" S5      n[         R                  " XT" S5      /5        S h  vN nU R                  UI S h  vN 5        M$   N N
 U $ 7fr]  r  r_  s      r   r  PBaseTaskTests.test_as_completed_duplicate_coroutines.<locals>.try_async_iterator  sS     FUA"//tF|0DE 'aAg&'% FMs7   )AAAAAA

AAAAr  r^  ry  rU  )	r  r5   rV   rQ   r~   r   rl   rl  r  )r.   r  r  r  r   r   rU   s         @r   &test_as_completed_duplicate_coroutines4BaseTaskTests.test_as_completed_duplicate_coroutines  s    			 #6FV__5mmDIIvx8		,,S1  Vufo>  Va0 65 755s   BC
C	c                     S nU" 5       nU R                  UR                  5        U R                  [        S5         [        R
                  " U/5      n[        U5        S S S 5        g ! , (       d  f       g = f)Nc                     #    g7fr>   r   r   r   r   rU   DBaseTaskTests.test_as_completed_coroutine_without_loop.<locals>.coro  r]  r   r   )r   rH   r   r   r   r  rD  )r.   rU   r   rE  s       r   (test_as_completed_coroutine_without_loop6BaseTaskTests.test_as_completed_coroutine_without_loop  sW    	 F ##L2IJ'',DJ KJJs   #A((
A6c                 h   ^ ^ T R                  5       nS mUU 4S jnUR                  U" 5       5        g )Nc                     #    g7fr>   r   r   r   r   rU   HBaseTaskTests.test_as_completed_coroutine_use_running_loop.<locals>.coro  r]  r   c                     >#    [        [        R                  " T" 5       /5      5      n TR                  [	        U 5      S5        TR                  U S   I S h  vN S5        g  N
7f)Nr   r   r?   )rD  r   r  rl   r  )rE  rU   r.   s    r   r   HBaseTaskTests.test_as_completed_coroutine_use_running_loop.<locals>.test  sK     ,,dfX67DSY*47]B/]s   AA$A"A$r  )r.   rQ   r   rU   s   `  @r   ,test_as_completed_coroutine_use_running_loop:BaseTaskTests.test_as_completed_coroutine_use_running_loop  s-    !!#		0
 	'r   c                 J  ^  U 4S jnT R                  U5      nS nT R                  X#" SS5      5      nUR                  U5        T R                  UR	                  5       5        T R                  UR                  5       S5        T R                  SUR                  5       5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)NrA  r  r  r  s    r   r#  %BaseTaskTests.test_sleep.<locals>.gen  s7     D""4.:D""3-Jri  c                    #    [         R                  " U S-  5      I S h  vN   [         R                  " U S-  U5      I S h  vN nU$  N( N7f)NrU  r  )r  argr  s      r   r  )BaseTaskTests.test_sleep.<locals>.sleeper  s?     --1%%%bdC00CJ &0s!   AA!AA
A
Ar  yeah)	re   rV   r~   ry   r   rl   r   r  rY  r.   r#  rQ   r  r   s   `    r   
test_sleepBaseTaskTests.test_sleep  s    	 !!#&	
 MM$V 45"!V,sDIIK0r   c                     S nU R                  U5      nS nU R                  X#" 5       5      nU R                  [        5         UR	                  U5        S S S 5        g ! , (       d  f       g = f)Nc               3      #    S v   g 7fr   r   r   r   r   r#  7BaseTaskTests.test_sleep_when_delay_is_nan.<locals>.gen          c                  ^   #    [         R                  " [        S5      5      I S h  vN   g  N7f)Nnan)r   r   r  r   r   r   r  ;BaseTaskTests.test_sleep_when_delay_is_nan.<locals>.sleeper  s     --e---s   #-+-)re   rV   r|   r   r~   rx  s        r   test_sleep_when_delay_is_nan*BaseTaskTests.test_sleep_when_delay_is_nan  sZ    	 !!#&	. MM$	*z*##A& +**s   A
A,c                   ^ ^^ U 4S jnT R                  U5      nT R                  U[        R                  " SS5      5      nS mUR                  mUU4S jnXBl        [
        R                  " U5        T R                  TR                  5        UR                  5         [
        R                  " U5        T R                  TR                  5        g )Nc               3   B   >#    S v n TR                  SU 5        Sv   g 7fr  r  r  s    r   r#  ,BaseTaskTests.test_sleep_cancel.<locals>.gen  r  r   r  rw  c                    > T" X/UQ76 mT$ r   r   )delaycallbackr$   handleorig_call_laters      r   r  3BaseTaskTests.test_sleep_cancel.<locals>.call_later  s    $U<t<FMr   )re   rV   r   r   r  r  rP  r  
_cancelledr{   ry   )r.   r#  rQ   r   r  r  r  s   `    @@r   test_sleep_cancelBaseTaskTests.test_sleep_cancel  s    	
 !!#&MM$dF ;<//	
 %t$**+	
t$))*r   c                    ^ ^^ U 4S jnT R                  U5      mS mUU U4S jnU" 5       nT R                  TR                  U5      S5        T R                  STR	                  5       5        g )Nc               3   n   >#    S v n TR                  SU 5        Sv n TR                  SU 5        Sv   g 7f)Nr  r     r  r  s    r   r#  9BaseTaskTests.test_task_cancel_sleeping_task.<locals>.gen  s7     D""3-7D""4.Iri  c                 L   #    [         R                  " U 5      I S h  vN   g  N7fr   r  )r  s    r   r   ;BaseTaskTests.test_task_cancel_sleeping_task.<locals>.sleep$  r  r  c                     >#    TR                  TT" S5      5      n TR                  SU R                  5         U I S h  vN   g N! [        R                   a     gf = f7f)Nr  r  zslept inr  )rV   r  r{   r   r}   )r  rQ   r.   r   s    r   doit:BaseTaskTests.test_task_cancel_sleeping_task.<locals>.doit'  sY     mmD%+6GOOC0" "	 )) #"#s8   5A A AA A A AA AA r  r  )re   rl   r~   r  rY  )r.   r#  r  doerrQ   r   s   `   @@r   test_task_cancel_sleeping_task,BaseTaskTests.test_task_cancel_sleeping_task  s^    	 !!#&	$	" v006DsDIIK0r   c                 @  ^ U R                  U R                  5      mU4S jnU R                  U R                  U" 5       5      n[        R                  " U R                  5        U R                  UR                  T5        UR                  5         [        R                  " U R                  5        U R                  [        R                  U R                  R                  U5        U R                  UR                  5        U R                  TR                  5       5        g )Nc                  &   >#    T I S h  vN   g  N7fr   r   r   s   r   rU   :BaseTaskTests.test_task_cancel_waiter_future.<locals>.coro8  r)  r   )r]   rQ   rV   r  rP  r   r  r{   r|   r   r}   r~   r  ry   r  )r.   rU   rp   r   s      @r   test_task_cancel_waiter_future,BaseTaskTests.test_task_cancel_waiter_future5  s    oodii(	 }}TYY/tyy)d&&,tyy)""DII$@$@$	H$**+(r   c                    S nU" 5       nU R                  U R                  U5      nU R                  [        S5         UR	                  S5        S S S 5        U R                  [        S5         UR                  [        5       5        S S S 5        U R                  U R                  R                  U5      S5        g ! , (       d  f       Nr= f! , (       d  f       NK= f)Nc                     #    g7f)Nr   r   r   r   r   r   4BaseTaskTests.test_task_set_methods.<locals>.notmuchG  r   r   znot support set_resultr   znot support set_exceptionr   )	rV   rQ   r   r   r   set_exceptionr   rl   r~   )r.   r   r#  rp   s       r   test_task_set_methods#BaseTaskTests.test_task_set_methodsF  s    	 i}}TYY,##L2JKOOD! L ##L2MNz|, O 	II((.	 LK ONs   B;-C;
C	
Cc                 :  ^^  " S S[         R                  5      nU" U R                  S9mS mUU4S jnU R                  U R                  U" 5       5      n[        R
                  " U R                  5        U R                  TR                  5        [        5       nTR                  U5        [        R
                  " U R                  5        U R                  UT5        U R                  UR                  5       5        U R                  UR                  5       5        g )Nc                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )2BaseTaskTests.test_step_result_future.<locals>.FutiZ  c                 4   > SU l         [        TU ]  " U0 UD6  g NF)cb_addedrc   r   )r.   r$   kwdsrS   s      r   r   ;BaseTaskTests.test_step_result_future.<locals>.Fut.__init__[  s     % $/$/r   c                 4   > SU l         [        TU ]  " U0 UD6  g r  )r  rc   r  r.   r$   kwargsrS   s      r   r  DBaseTaskTests.test_step_result_future.<locals>.Fut.add_done_callback_  s     $)4:6:r   )r  r5   r6   r7   r8   r   r  r9   __classcell__rS   s   @r   Futr  Z  s    0; ;r   r  rZ   c                  &   >#    T I S h  vN mg  N7fr   r   )r   r   s   r   wait_for_future>BaseTaskTests.test_step_result_future.<locals>.wait_for_futuref  s     YFYr   )r   r[   rQ   rV   r  rP  ry   r  objectr   r   r   r  r   )r.   r  r  r   r  r   r   s        @@r   test_step_result_future%BaseTaskTests.test_step_result_futureW  s    	;'.. 	; tyy!	 MM$))_%67tyy)%hstyy)c6"!!((*%r   c                   ^ ^^ U 4S jnT R                  U5      nS m[        5       mUU4S jnT R                  X#" 5       5      n[        R                  " U5        UR                  5         T R                  UR                  5       5        T R                  [        [        R                  U5        T R                  UR                  5       5        T R                  UR                  5       5        T R                  UR                  5       T5        g )Nc               3   B   >#    S v n TR                  SU 5        Sv   g 7fr  r  r  s    r   r#  ;BaseTaskTests.test_baseexception_during_cancel.<locals>.genw  r  r   c                  L   #    [         R                  " S5      I S h  vN   g  N7fr}  r  r   r   r   r  ?BaseTaskTests.test_baseexception_during_cancel.<locals>.sleeper~  r  r  c                  f   >#     T" 5       I S h  vN   g  N! [         R                   a    T ef = f7fr   r	  )base_excr  s   r   notmutch@BaseTaskTests.test_baseexception_during_cancel.<locals>.notmutch  s-     i)) s    1
  1 .1)re   
SystemExitrV   r  rP  r{   r  r   r|   ry   r  r   r   )r.   r#  rQ   r  rp   r  r  s   `    @@r    test_baseexception_during_cancel.BaseTaskTests.test_baseexception_during_cancelu  s    	
 !!#&	$ <	 }}T8:.t$%*j&<&<dC		$)*dnn&1r   c                    S nU R                  [        R                  " U5      5        S nU R                  [        R                  " U5      5        S nU R                  [        R                  " U5      5        U R                  [        R                  " [        R
                  " 5       5      5        U R                  [        R                  " [        R                  " 5       5      5        g )Nc                      g r   r   r   r   r   fn2BaseTaskTests.test_iscoroutinefunction.<locals>.fn  s    r   c               3      #    S v   g 7fr   r   r   r   r   fn13BaseTaskTests.test_iscoroutinefunction.<locals>.fn1  r~  r  c                     #    g 7fr   r   r   r   r   fn23BaseTaskTests.test_iscoroutinefunction.<locals>.fn2  rv   r   )r  r   iscoroutinefunctionry   r   Mock	AsyncMock)r.   r  r  r  s       r   test_iscoroutinefunction&BaseTaskTests.test_iscoroutinefunction  s    	 	44R89	44S9:	33C8944TYY[AB33DNN4DEFr   c                    S nU R                  [        R                  " U5      5        U" 5       nU R                  [        R                  " U5      5        U R                  R                  U5      nU R                  US5        g )Nc                     #    g7fNr   r   r   r   r   r  ;BaseTaskTests.test_coroutine_non_gen_function.<locals>.func  s     r   r   )ry   r   r  iscoroutinerQ   r~   rl   )r.   r  rU   r  s       r   test_coroutine_non_gen_function-BaseTaskTests.test_coroutine_non_gen_function  sb    	 	33D9:v++D12ii**40f%r   c                 p  ^ U R                  U R                  5      mU4S jnU4S jnU R                  U R                  U" 5       5      nU R                  U R                  U" 5       5      nU R                  R                  U5      nU R	                  UT5        U R                  UR                  5       5        g )Nc                     >#    T $ 7fr   r   r   s   r   r  IBaseTaskTests.test_coroutine_non_gen_function_return_future.<locals>.func  s     Js   c                  0   >#    T R                  S5        g 7fr  r   r   s   r   rU   IBaseTaskTests.test_coroutine_non_gen_function_return_future.<locals>.coro  s     NN6"s   )r]   rQ   rV   r~   rl   r  r   )r.   r  rU   r4  r5  r  r   s         @r   -test_coroutine_non_gen_function_return_future;BaseTaskTests.test_coroutine_non_gen_function_return_future  s    oodii(		# ]]499df-]]499df-ii**2.c""))+&r   c                 X  ^ ^ T R                  [        R                  " T R                  S95        U U4S jnT R	                  T R                  U" T R                  5      5      mT R                  R                  T5        T R                  [        R                  " T R                  S95        g )NrZ   c                    >#    TR                  [        R                  " 5       T5        TR                  [        R                  " S 5      T5        TR                  [        R                  " 5       T5        g 7fr   )r   r   r  )rQ   r.   rp   s    r   rU   -BaseTaskTests.test_current_task.<locals>.coro  sM     MM'..0$7MM'..t4d;MM'..0$7s   A2A5)r  r   r  rQ   rV   r~   r`  s   ` @r   test_current_taskBaseTaskTests.test_current_task  sr    '..DII>?	8 }}TYYTYY8		$$T*'..DII>?r   c                 d  ^ ^^^^ T R                  [        R                  " T R                  S95        T R	                  T R                  5      mT R	                  T R                  5      mUUU U4S jnUUU U4S jnT R                  T R                  U" T R                  5      5      mT R                  T R                  U" T R                  5      5      mT R                  R                  [        R                  " TT45      5        T R                  [        R                  " T R                  S95        g )NrZ   c                    >#    TR                  [        R                  " 5       TL 5        TI S h  vN   TR                  [        R                  " 5       TL 5        TR                  S5        g  N<7fr  ry   r   r  r   )rQ   r
  r  r.   task1s    r   r  FBaseTaskTests.test_current_task_with_interleaving_tasks.<locals>.coro1  sR     OOG002e;<JJOOG002e;<OOD! s   ,A.A,=A.c                    >#    TR                  [        R                  " 5       TL 5        TR                  S5        TI S h  vN   TR                  [        R                  " 5       TL 5        g  N+7fr  r  )rQ   r
  r  r.   task2s    r   r  FBaseTaskTests.test_current_task_with_interleaving_tasks.<locals>.coro2  sR     OOG002e;<OOD!JJOOG002e;< s   =A. A,,A.)r  r   r  rQ   r]   rV   r~   r  )r.   r  r  r
  r  r  r  s   `  @@@@r   )test_current_task_with_interleaving_tasks7BaseTaskTests.test_current_task_with_interleaving_tasks  s    '..DII>?tyy)tyy)	" 	"	= 	= diityy)9:diityy)9:		$$W\\5%.%AB'..DII>?r   c                   ^ ^^^ SmT R                  T R                  5      mUU U4S jmUU4S jn[        R                  " U" 5       T R                  S9n[        R
                  " T R                  5        UR                  5         T R                  R                  U5        T R                  TS5        T R                  TR                  5       5        g )Nr   c                     >#     TI S h  vN   TR                  S5        g  N! [        R                   a    T S-  m e f = f7f)Nzgot past sleep() in inner()r   )r@  r   r}   )proofr.   waiters   r   inner<BaseTaskTests.test_yield_future_passes_cancel.<locals>.inner  sF     9
 		78 )) 
s#   A# !# A# >Ac                  z   >#     T " 5       I S h  vN   TS-  mg  N
! [         R                   a    TS-  m g f = f7f)Nr~  r   r	  r  r  s   r   rY  <BaseTaskTests.test_yield_future_passes_cancel.<locals>.outer  sA     g 	 )) s(   ;
  ; 8;8;rZ   e   )r]   rQ   r   r   r  rP  r{   r~   rl   ry   r  r.   rY  r   r  r  r  s   `  @@@r   test_yield_future_passes_cancel-BaseTaskTests.test_yield_future_passes_cancel  s    +	9	 !!%'		:tyy)	
		$$Q'$((*+r   c                   ^ ^^^ SmT R                  T R                  5      mUU4S jmUUU 4S jn[        R                  " U" 5       T R                  S9n[        R
                  " T R                  5        UR                  5         T R                  [        R                  T R                  R                  U5        TR                  S 5        [        R
                  " T R                  5        T R                  TS5        g )Nr   c                  0   >#    TI S h  vN   T S-  m g  N
7fNr   r   r  r  s   r   r  CBaseTaskTests.test_yield_wait_does_not_shield_cancel.<locals>.inner       LLQJE    c                     >#    TR                  [        5         [        R                  " [        R                  " T" 5       5      /5      I S h  vN u  pS S S 5        TS-  mg  N! , (       d  f       N= f7fNr   )assertWarnsDeprecationWarningr   r  r  )r	  pr  r  r.   s     r   rY  CBaseTaskTests.test_yield_wait_does_not_shield_cancel.<locals>.outer  sT     !!"45$\\7+>+>uw+G*HII 6SLE J 65s.   A54A$A"A$A5"A$$
A2.A5rZ   r   r]   rQ   r   r   r  rP  r{   r|   r}   r~   r   rl   r  s   `  @@@r   &test_yield_wait_does_not_shield_cancel4BaseTaskTests.test_yield_wait_does_not_shield_cancel  s     +	
	 !!%'		:tyy)	
""DII$@$@!	E$tyy)"r   c                     U R                  U R                  5      n[        R                  " U5      nUR	                  S5        U R                  R                  U5      nU R                  US5        g r>   )r]   rQ   r   shieldr   r~   rl   )r.   r  rY  r  s       r   test_shield_result BaseTaskTests.test_shield_result"  sT    		*u%ii**51b!r   c                 ^   U R                  U R                  5      n[        R                  " U5      n[        R
                  " U R                  5        [        S5      nUR                  U5        [        R
                  " U R                  5        U R                  UR                  5       U5        g )Nexpected)
r]   rQ   r   r  r  rP  r   r  r   r   )r.   r  rY  r%   s       r   test_shield_exception#BaseTaskTests.test_shield_exception)  ss    		*u%tyy):&C tyy)eoo'-r   c                 D   U R                  U R                  5      n[        R                  " U5      n[        R
                  " U R                  5        UR                  5         [        R
                  " U R                  5        U R                  UR                  5       5        g r   )	r]   rQ   r   r  r  rP  r{   ry   r  r.   r  rY  s      r   test_shield_cancel_inner&BaseTaskTests.test_shield_cancel_inner2  sb    		*u%tyy)tyy))*r   c                    U R                  U R                  5      n[        R                  " U5      n[        R
                  " U R                  5        UR                  5         [        R
                  " U R                  5        U R                  UR                  5       5        U R                  SUR                  c  S5        g [        UR                  5      5        g r  )r]   rQ   r   r  r  rP  r{   ry   r  rl   
_callbacksr  r  s      r   test_shield_cancel_outer&BaseTaskTests.test_shield_cancel_outer:  s    		*u%tyy)tyy))*!1!1!9AUs5CSCS?TUr   c                     U R                  U R                  5      nUR                  S5        U R                  R                  [        R
                  " U5      5      nU R                  US5        g r>   )r]   rQ   r   r~   r   r  rl   )r.   r   r  s      r   test_shield_shortcut"BaseTaskTests.test_shield_shortcutC  sM    oodii(rii**7>>#+>?b!r   c                 6  ^^^ SmU R                  U R                  5      mUU4S jmUU4S jn[        R                  " U" 5       U R                  S9n[        R
                  " U R                  5        UR                  5         U R                  [        R                  5         U R                  R                  U5        S S S 5        TR                  S 5        [        R
                  " U R                  5        U R                  TS5        g ! , (       d  f       NR= f)Nr   c                  0   >#    TI S h  vN   T S-  m g  N
7fr  r   r  s   r   r  /BaseTaskTests.test_shield_effect.<locals>.innerN  r	  r
  c                  b   >#    [         R                  " T " 5       5      I S h  vN   TS-  mg  N
7fr  r   r  r  s   r   rY  /BaseTaskTests.test_shield_effect.<locals>.outerS  s(     ..)))SLE *s   /-/rZ   r   r  r  s      @@@r   test_shield_effect BaseTaskTests.test_shield_effectI  s    +	
	
 !!%'		:tyy)	
w556II((+ 7$tyy)"	 76s   "D


Dc                 n   U R                  U R                  5      nU R                  U R                  5      n[        R                  " X5      n[        R                  " U5      n[
        R                  " U R                  5        UR                  5         [
        R                  " U R                  5        U R                  UR                  5       5        UR                  S5        UR                  S5        [
        R                  " U R                  5        U R                  UR                  5       SS/5        g Nr   rU  )r]   rQ   r   r   r  r  rP  r{   ry   r  r   rl   r   )r.   child1child2parentrY  s        r   test_shield_gather BaseTaskTests.test_shield_gathera  s    ++/v&tyy)tyy))*!!tyy)1a&1r   c                    U R                  U R                  5      nU R                  U R                  5      n[        R                  " U5      n[        R                  " U5      n[        R                  " X45      n[
        R                  " U R                  5        UR                  5         [
        R                  " U R                  5        U R                  UR                  5       [        R                  5        U R                  UR                  5       5        U R                  UR                  5       5        UR                  S5        UR                  S5        [
        R                  " U R                  5        g r0  )r]   rQ   r   r  r   r  rP  r{   rn   r   r}   ry   r  r   )r.   r1  r2  rW  rX  r3  s         r   test_gather_shield BaseTaskTests.test_gather_shieldo  s    ++''/tyy)tyy)f..0'2H2HI((*+((*+!!tyy)r   c                     S nU" 5       nU R                  UR                  5        U R                  [        S5         [        R
                  " U5        S S S 5        g ! , (       d  f       g = f)Nc                     #    g7fr>   r   r   r   r   rU   >BaseTaskTests.test_shield_coroutine_without_loop.<locals>.coro  r]  r   r   )r   rH   r   r   r   r  r.   rU   r  s      r   "test_shield_coroutine_without_loop0BaseTaskTests.test_shield_coroutine_without_loop  sJ    	 $##L2IJNN5! KJJs   A
A*c                    ^ S mU4S jnU R                   R                  U" 5       5      nU R                  UR                  U R                   5        U R                   R                  U5      nU R                  US5        g )Nc                     #    g7fr>   r   r   r   r   rU   BBaseTaskTests.test_shield_coroutine_use_running_loop.<locals>.coro  r]  r   c                  B   >#    [         R                  " T " 5       5      $ 7fr   r+  r   s   r   r   BBaseTaskTests.test_shield_coroutine_use_running_loop.<locals>.test  s     >>$&))r   r?   )rQ   r~   rl   r   )r.   r   rY  r  rU   s       @r   &test_shield_coroutine_use_running_loop4BaseTaskTests.test_shield_coroutine_use_running_loop  s_    		*		,,TV4dii0ii**51b!r   c                 f   S n[         R                  " U R                  5        U R                  [         R                  S 5        [         R                  " U" 5       5      nU R                  UR                  U R                  5        U R                  R                  U5      nU R                  US5        g )Nc                     #    g7fr>   r   r   r   r   rU   ABaseTaskTests.test_shield_coroutine_use_global_loop.<locals>.coro  r]  r   r?   )r   r   rQ   r   r  rl   r   r~   )r.   rU   rY  r  s       r   %test_shield_coroutine_use_global_loop3BaseTaskTests.test_shield_coroutine_use_global_loop  s{    	 	tyy)..5tv&dii0ii**51b!r   c                 `   U R                  U R                  5      nU R                  [        5         [        R
                  " U5      n[        U5        S S S 5        [        5       nU R                  [        5         [        R
                  " U5      n[        U5        S S S 5        UR                  5         S nU R                  U R                  5      nU R                  [        5         U R                  R                  U" U5      5        S S S 5        [        5       nU R                  [        5         U R                  R                  U" U5      5        S S S 5        UR                  5         g ! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       NS= f)Nc                 T   #    [         R                  " U 5        S h  vN n  g  N
 g 7fr   rQ  )awr   s     r   r  HBaseTaskTests.test_as_completed_invalid_args.<locals>.try_async_iterator  s%     "//3 a3s   (&$&(&()
r]   rQ   r|   r   r   r  nextr   rH   r~   )r.   r   r4  rU   r  s        r   test_as_completed_invalid_args,BaseTaskTests.test_as_completed_invalid_args  s#    oodii(y)++C0HN * "#y)++D1HN * 	

	 oodii(y)II(();C)@A *!#y)II(();D)AB *

) *) *) *) *)s/   "E+:"E='"F0"F+
E:=
F
F
F-c                    U R                  U R                  5      nU R                  [        U R                  R                  [
        R                  " U5      5        [        5       nU R                  [        U R                  R                  [
        R                  " U5      5        UR                  5         U R                  [        U R                  R                  [
        R                  " / 5      5        g r   )
r]   rQ   r|   r   r~   r   r  r   rH   r   )r.   r   rU   s      r   test_wait_invalid_args$BaseTaskTests.test_wait_invalid_args  s    oodii( 	)TYY%A%ALL	!#)TYY%A%ALL	 

 	*dii&B&BLL	r   c                   ^  T R                   R                  nU 4S jn[        R                  " 5       nT R                  R                  S5        T R                  R                  U5        U" T R                  5      n[        R                  " UT R                  S9nT R                  [        R                  " T R                  S9U15        [        R                  " S 5        T R                  R                  5         T R                  [        T R                  R                  5      S5        S nUR                  nS n[         R"                  " 5         T R                  [        R                  " T R                  S9[%        5       5        UR'                  T R                  S[        R(                  US.5        UR+                  5         g )Nc                 \   >#    TR                  U 5      nUI S h  vN   [        S5      e N7f)Nzcode never reached)r]   rk  )rQ   futurer.   s     r   kill_me>BaseTaskTests.test_log_destroyed_pending_task.<locals>.kill_me  s.     __T*FLL 011 s   ,*,TrZ   r   z%Task was destroyed but it is pending!)messagerp   r   )rS   rT   r   r  rQ   r  set_exception_handlerr   r   rl   	all_tasksr   	_run_oncer  _readyr  r   
gc_collectrl  assert_called_withANY
reset_mock)r.   rT   rX  mock_handlerrU   rp   r   s   `      r   test_log_destroyed_pending_task-BaseTaskTests.test_log_destroyed_pending_task  sG   ~~""	2 yy{		D!		''5 tyy!$$T		:**		:TFCt$ 			TYY--.211 	**		:CEB''		>HH 04
 	
 	!r   zasyncio.base_events.loggerc                    ^ ^^ [         R                  " 5       mT R                  T5        S mUUU 4S jnTR                  U" 5       5        T R	                  UR
                  R                  5        g )Nc                     #    [         e7fr   )r   r   r   r   rU   BBaseTaskTests.test_tb_logger_not_called_after_cancel.<locals>.coro  s
     Org  c                     >#    TR                  TT" 5       5      n [        R                  " S5      I S h  vN   U R                  5         S n g  N7f)NrA  r+  )rp   rU   rQ   r.   s    r   r  DBaseTaskTests.test_tb_logger_not_called_after_cancel.<locals>.runner  s=     ==tv.D--%%%KKMD &s   1AAA)r   r   r   r~   r  errorcalled)r.   m_logr  rU   rQ   s   `  @@r   &test_tb_logger_not_called_after_cancel4BaseTaskTests.test_tb_logger_not_called_after_cancel  sS    %%'D!		 	)++,r   c                    U R                   R                  S5        U R                  U R                   [        5       5      n[        R
                  " 5       R                  S-
  nU R                  UR                  [        5        U R                  UR                  S   S S [        US45        U R                   R                  U5        g )NTr   ri  test_task_source_traceback)rQ   r  rV   r   r  	_getframef_linenorn   r  rD  rl   __file__r~   )r.   rp   r"  s      r   rr  (BaseTaskTests.test_task_source_traceback	  s    		D!}}TYY(:(<=))A-d44d;//3BQ7" 68	9 			$$T*r   c                   ^^^ [         R                  " 5       nU R                  UR                  5        U R	                  U5      mU4S jnUR                  U" 5       5      mS mUU4S jnTR                  U5        TR                  S5        UR                  T5        U R                  TS5        U R                  TR                  5       5        U R                  TR                  5       S/5        g )Nc                  z   >#    U4S jn [         R                  " U " 5       5      n[         R                  " U5      $ 7f)Nc                  $   >#    T I S h  vN $  N7fr   r   r   s   r   
child_coroFBaseTaskTests.test_cancel_gather_1.<locals>.create.<locals>.child_coro	  s      y ys   )r   r   r   )rz  gather_futurer   s     r   create2BaseTaskTests.test_cancel_gather_1.<locals>.create	  s,     !#NN:<8M((77s   8;c                 &   > TR                  5       mg r   r  )r   cancel_resultgather_tasks    r   cancelling_callback?BaseTaskTests.test_cancel_gather_1.<locals>.cancelling_callback$	  s    '..0Mr   r?   F)r   r   r   rH   r]   r~   r  r   rl   r  r  r   )r.   rQ   r}  r  r  r   r  s       @@@r   test_cancel_gather_1"BaseTaskTests.test_cancel_gather_1	  s     %%'

#ood#	8 --fh7	1 	12r 	, 	...01++-t4r   c           	         ^ ^^^ / SQnU H  u  mnT R                  TS9   [        R                  " 5       mT R                  TR                  5        S mUUU U4S jn TR                  U" 5       5        T R                  S5        S S S 5        M     g ! [        R                   aT  nT R                  UR                  U5        [        U5      nT R                  U[        R                  US45         S nANpS nAff = f! , (       d  f       GM  = f)Nr  r  c                     #    Sn  U S-  n [         R                  " [         R                  " S5      SS9I S h  vN   U S:  a  g M?   N7f)Nr   TrA  return_exceptionsr   )r   r   r   )rY  s    r   r   0BaseTaskTests.test_cancel_gather_2.<locals>.test@	  sR     D%nnW]]4-@?CE E E!8" Es   5AAAc                     >#    TR                  TT" 5       5      n [        R                  " S5      I S h  vN   U R                  " T6   U I S h  vN   g  N N7f)NrP  r+  )qwer  rQ   r.   r   s    r   r  0BaseTaskTests.test_cancel_gather_2.<locals>.mainI	  sE     --df5C!--,,,JJ,II -s!   1AAAAAAzWgather() does not propagate CancelledError raised by inner task to the gather() caller.r   )r  r   r   r   rH   r~   r@  r}   rl   r$   r(   )	r.   r  r  r  r%   r  r  rQ   r   s	   `     @@@r   test_cancel_gather_2"BaseTaskTests.test_cancel_gather_23	  s    
 +0&K+6--/

+# ++DF3 IIG; 76 +0, -- $$SXX}=237F$$ //B + 76s6   =C=B4C=C:&A
C50C=5C::C==
D	c                 \   ^ ^ S mUU 4S jnT R                   R                  U" 5       5        g )Nc                     #    SS-    g 7f)Nr   r   r   r   r   r   r   3BaseTaskTests.test_exception_traceback.<locals>.fooa	  s     Erg  c                     >#    TR                  TR                  T" 5       5      n [        R                  " S5      I S h  vN   TR	                  U R                  5       R                  5        g  N.7fr  )rV   rQ   r   r   r0  r   __traceback__)rp   r   r.   s    r   r  4BaseTaskTests.test_exception_traceback.<locals>.maind	  sN     ==CE2D--"""  !1!?!?@ #s   ;A/A-/A/r  )r.   r  r   s   ` @r   test_exception_traceback&BaseTaskTests.test_exception_traceback^	  s$    		A
 			$$TV,r   c                    S nX R                   l        S nU R                  UR                  R                  5        U R                  [        5         U" 5       n U R                  U R                   U5        UR                  5          S S S 5        [        R                  " 5         U R                  UR                  R                  5        UR                  R                  S   S   nU R                  SU5        U R                  [        R                   " U R                   5      [#        5       5        g ! UR                  5         f = f! , (       d  f       N= f)Nc                     [         er   rd  )r  r$   r  s      r   r  8BaseTaskTests.test_error_in_call_soon.<locals>.call_soonm	  s    r   c                     #    g 7fr   r   r   r   r   rU   3BaseTaskTests.test_error_in_call_soon.<locals>.coroq	  rv   r   r   z$Task was destroyed but it is pending)rQ   r  r  rk  rl  r|   r   rV   rH   r   r   ry   	call_argsr  rl   r   r\  rl  )r.   rm  r  rU   r#  rZ  s         r   test_error_in_call_soon%BaseTaskTests.test_error_in_call_soonk	  s    	'			 	++,z*&Cdii-		 + 	

**+++''*1-<gF**4995su= 		 +*s$   ED06E0EE
Ec                 4   U R                  [        S5         U R                  U R                  S5        S S S 5        U R                  [        S5         U R                  U R                  S5        S S S 5        g ! , (       d  f       NJ= f! , (       d  f       g = f)Nz!a coroutine was expected, got 123r*  )r   r   rV   rQ   r-   s    r   "test_create_task_with_noncoroutine0BaseTaskTests.test_create_task_with_noncoroutine	  s|    ##I$GIMM$))S)I ##I$GIMM$))S)I II II Is   A8B	8
B	
Bc                 f   S nU R                  U R                  U" 5       5      nU R                  X R                  5        U R                  R	                  U5        U R                  U R                  U" 5       5      nU R                  X R                  5        U R                  R	                  U5        g )Nc                     #    g 7fr   r   r   r   r   rU   @BaseTaskTests.test_create_task_with_async_function.<locals>.coro	  rv   r   )rV   rQ   rn   rT   r~   r`  s      r   $test_create_task_with_async_function2BaseTaskTests.test_create_task_with_async_function	  s    	 }}TYY/dII.		$$T* }}TYY/dII.		$$T*r   c                    U R                  U R                  [        5       5      nU R                  XR                  5        U R                  U R                  R                  U5      S5        U R                  U R                  [        5       5      nU R                  XR                  5        U R                  U R                  R                  U5      S5        g r>   )rV   rQ   r;   rn   rT   rl   r~   ro   s     r   (test_create_task_with_asynclike_function6BaseTaskTests.test_create_task_with_asynclike_function	  s    }}TYY(89dII.55d;R@ }}TYY(89dII.55d;R@r   c                 \   ^ ^ S mUU 4S jnT R                   R                  U" 5       5        g )Nc                     #    g7fr  r   r   r   r   r  2BaseTaskTests.test_bare_create_task.<locals>.inner	  s     r   c                     >#    [         R                  " T" 5       5      n TR                  U TR                  5        U I S h  vN nTR	                  SU5        g  N7fr  )r   r  rn   rT   rl   )rp   retr  r.   s     r   rU   1BaseTaskTests.test_bare_create_task.<locals>.coro	  sH     &&uw/D!!$		2*CQ$ s   =A AAr  r<  s   ` @r   test_bare_create_task#BaseTaskTests.test_bare_create_task	  s#    		% 			$$TV,r   c                 \   ^ ^ S mUU 4S jnT R                   R                  U" 5       5        g )Nc                     #    g 7fr   r   r   r   r   	coro_noop<BaseTaskTests.test_bare_create_named_task.<locals>.coro_noop	  rv   r   c                     >#    [         R                  " T" 5       SS9n TR                  U R                  5       S5        U I S h  vN   g  N7f)NzNo-opr=  )r   r  rl   r@  )rp   r  r.   s    r   rU   7BaseTaskTests.test_bare_create_named_task.<locals>.coro	  s7     &&y{ADT]]_g6JJs   A AA	Ar  )r.   rU   r  s   ` @r   test_bare_create_named_task)BaseTaskTests.test_bare_create_named_task	  s#    		
 			$$TV,r   c                   ^ ^^^ [         R                  " SSS9mUU 4S jmUUU U4S jn[        R                  " 5       m T R	                  TU" 5       5      nTR                  U5        TR                  5         g ! TR                  5         f = f)Ncvarnopedefaultc                     >#    [         R                  " S5      I S h  vN   TR                  T R                  5       S5        T R	                  S5        g  N67f)Nr  r  something else)r   r   rl   getrl  )r  r.   s   r   sub)BaseTaskTests.test_context_1.<locals>.sub	  s@     --%%%TXXZ0HH%& &s   AA7Ac                  6  >#    TR                  TR                  5       S5        TR                  TT" 5       5      n TR                  S5        TR                  TR                  5       S5        U I S h  vN   TR                  TR                  5       S5        g  N%7f)Nr  yes)rl   r  rV   rl  )subtaskr  rQ   r.   r  s    r   r  *BaseTaskTests.test_context_1.<locals>.main	  sq     TXXZ0mmD#%0GHHUOTXXZ/MMTXXZ/ s   A.B1B2&B)contextvars
ContextVarr   r   rV   r~   rH   )r.   r  rp   r  rQ   r  s   `  @@@r   test_context_1BaseTaskTests.test_context_1	  sl    %%ff=	'
	0 	0 %%'	==tv.D##D)JJLDJJLs    (A9 9Bc                 J  ^ ^^ [         R                  " SSS9mUUU 4S jn[        R                  " 5       m T R	                  TU" 5       5      nTR                  U5        TR                  5         T R                  TR                  5       S5        g ! TR                  5         f = f)Nr  r  r  c            	      ^  >#    U4S jn TR                  TR                  5       S5        [        S5       H  nTR                  T5      nUR	                  U 5        TR                  SU 35        TR                  UR                  S 5        UI S h  vN   TR                  TR                  5       SU 35        [        S5       H^  nTR                  SU SU 35        [        R                  " S5      I S h  vN   TR                  TR                  5       SU SU 35        M`     M     g  N N57f)Nc                 (   > TR                  S5        g )Nr  )rl  )r   r  s    r   fut_on_done?BaseTaskTests.test_context_2.<locals>.main.<locals>.fut_on_done	  s     )*r   r  rU  r  ri  -MbP?)
rl   r  r   r]   r  rl  r  r   r   r   )r  jr   r  r  rQ   r.   s       r   r  *BaseTaskTests.test_context_2.<locals>.main	  s     +
 TXXZ01Xood+%%k23qc#s~~t4		  s1#Y7qAHHs1#Qqc]+!--...$$TXXZ3qc1#?	 " 
  /s%   BD-D)A%D-5D+64D-+D-)	r  r  r   r   rV   r~   rH   rl   r  )r.   r  rp   r  rQ   s   `  @@r   test_context_2BaseTaskTests.test_context_2	  s|    %%ff=	@, %%'	==tv.D##D)JJLV, JJLs   (B B"c                 4  ^ ^^^ [         R                  " SSS9mUU 4S jmUU4S jn[        R                  " 5       m TR	                  U" 5       5        TR                  5         T R                  TR                  5       S5        g ! TR                  5         f = f)Nr  r   r  c                   >#    [        S5       Hk  nTR                  X-   5        [        R                  " [        R
                  " SS5      5      I S h  vN   TR                  TR                  5       X-   5        Mm     g  N+7f)Nr~  r  rA  )r   rl  r   r   randomuniformrl   r  )numr  r  r.   s     r   r  )BaseTaskTests.test_context_3.<locals>.sub 
  sZ     2Y!mmFNN5$$?@@@  SW5 @s   ABA?,Bc            	         >#    / n [        S5       HA  nTR                  T" [        R                  " SS5      5      5      nU R                  " U5        MC     [
        R                  " U 6 I S h  vN   g  N7f)Nr   r   r~  )r   r  r  randintr  r   r   )r   r  rp   rQ   r  s      r   r  *BaseTaskTests.test_context_3.<locals>.main
  sY     E3Z''FNN1b,A(BCT"   ..%(((s   A)A4,A2-A4)r  r  r   r   r~   rH   rl   r  )r.   r  r  rQ   r  s   ` @@@r   test_context_3BaseTaskTests.test_context_3	  sr     %%fb9	6	) %%'	##DF+JJLR( JJLs   B Bc                 D  ^ ^^^ [         R                  " S5      mU4S jmUUUU 4S jn[        R                  " 5       m T R	                  TU" 5       5      nTR                  U5      nTR                  5         T R                  / SQU5        g ! TR                  5         f = f)Nr  c                 p   >#    [         R                  " S5      I S h  vN   TR                  U 5        g  N7fr  r   r   rl  valr  s    r   rU   *BaseTaskTests.test_context_4.<locals>.coro
  (     --"""HHSM #   646c                    >#    / n [         R                  " 5       nU R                  UR                  T5      5        TR	                  TT" S5      US9nUI S h  vN   U R                  UR                  T5      5        TR	                  TT" S5      US9nUI S h  vN   U R                  UR                  T5      5        U $  Ng N(7fNr   r'   rU  )r  copy_contextr  r  rV   )r  ctxr4  r5  rU   r  rQ   r.   s       r   r  *BaseTaskTests.test_context_4.<locals>.main
  s     C**,CJJswwt}%tT!Wc:BHHJJswwt}%tT!Wc:BHHJJswwt}%J  s%   ACB?A CC'CCr0  r  r  r   r   rV   r~   rH   rl   r.   r  rp   r  rU   r  rQ   s   `   @@@r   test_context_4BaseTaskTests.test_context_4
  s    %%f-	
	 
	 %%'	==tv.D))$/CJJLs+ JJLs    (B Bc                 :  ^^ [         R                  " S5      mU4S jmUU4S jn[        R                  " 5       n U R	                  X!" 5       5      nUR                  U5      nUR                  5         U R                  / SQU5        g ! UR                  5         f = f)Nr  c                 p   >#    [         R                  " S5      I S h  vN   TR                  U 5        g  N7fr  r  r  s    r   rU   *BaseTaskTests.test_context_5.<locals>.coro5
  r  r  c                    >#    / n [         R                  " 5       nU R                  UR                  T5      5        [        R
                  " T" S5      US9nUI S h  vN   U R                  UR                  T5      5        [        R
                  " T" S5      US9nUI S h  vN   U R                  UR                  T5      5        U $  Nk N(7fr  )r  r  r  r  r   r  )r  r  r4  r5  rU   r  s       r   r  *BaseTaskTests.test_context_5.<locals>.main9
  s     C**,CJJswwt}%$$T!Wc:BHHJJswwt}%$$T!Wc:BHHJJswwt}%J  s%   ACCAC C	!'C	Cr0  r  )r.   r  rQ   rp   r  rU   r  s        @@r   test_context_5BaseTaskTests.test_context_52
  sz    %%f-	
	 %%'	==tv.D))$/CJJLs+ JJLs   'B Bc                 >  ^^^ [         R                  " S5      mU4S jmUUU4S jn[        R                  " 5       m TR	                  U" 5       5      nTR                  U5      nTR                  5         U R                  / SQU5        g ! TR                  5         f = f)Nr  c                 p   >#    [         R                  " S5      I S h  vN   TR                  U 5        g  N7fr  r  r  s    r   rU   *BaseTaskTests.test_context_6.<locals>.coroQ
  r  r  c                    >#    / n [         R                  " 5       nU R                  UR                  T5      5        TR	                  T" S5      US9nUI S h  vN   U R                  UR                  T5      5        TR	                  T" S5      US9nUI S h  vN   U R                  UR                  T5      5        U $  Nf N(7fr  )r  r  r  r  r  )r  r  r4  r5  rU   r  rQ   s       r   r  *BaseTaskTests.test_context_6.<locals>.mainU
  s     C**,CJJswwt}%!!$q'3!7BHHJJswwt}%!!$q'3!7BHHJJswwt}%J  s$   ACB=?CB?'C?Cr0  )r  r  r   r   r  r~   rH   rl   r  s       @@@r   test_context_6BaseTaskTests.test_context_6N
  sz    %%f-	
	 %%'	##DF+D))$/CJJLs+ JJLs   'B
 
Bc                    [         R                  " 5       n[        5       n U R                  X5      nUR	                  U5        U R                  UR                  5       U5        UR                  5         g ! UR                  5         f = fr   )r   r   r   rV   r~   r   r   rH   )r.   rQ   rU   rp   s       r   test_get_coroBaseTaskTests.test_get_coroj
  s`    %%'!#	==,D##D)MM$--/40JJLDJJLs   AA4 4Bc                 :   [         R                  " 5       n[        5       n[        R                  " 5       n U R                  XUS9nUR                  U5        U R                  UR                  5       U5        UR                  5         g ! UR                  5         f = f)Nr  )
r   r   r   r  r  rV   r~   r   get_contextrH   )r.   rQ   rU   r'   rp   s        r   test_get_contextBaseTaskTests.test_get_contextt
  su    %%'!#**,	==W==D##D)MM$**,g6JJLDJJLs   AB Bc           
      j    " S S5      n[        5       n[        R                  " U5      n[        5       n[        R
                  " [        R                  " 5       5       n[        R                  R                  [        R                  5      n[        S5       H7  nU R                  [        S5         UR                  XEX!" 5       S9  S S S 5        M9     UR                  5         AU R                  [        R                  " U5      U5        S S S 5        g ! , (       d  f       M  = f! , (       d  f       g = f)Nc                       \ rS rSrS rSrg)2BaseTaskTests.test_proper_refcounts.<locals>.Breaki
  c                     [        S5      e)Nbreakr2  r-   s    r   __str__:BaseTaskTests.test_proper_refcounts.<locals>.Break.__str__
  s    "7++r   r   N)r5   r6   r7   r8   r  r9   r   r   r   Breakr  
  s    ,r   r  r  r  )rQ   r'   rR   )r  r  getrefcountr   r
  r  r   	EventLooprT   __new__r   r   r   r   rH   rl   )r.   r  objinitial_refcountrU   rQ   rp   r   s           r   test_proper_refcounts#BaseTaskTests.test_proper_refcounts
  s    	, 	, h??3/!# 1 1 34<<''5D1X++L'BMM$3UWMM CB  JJLS__S13CD 54 CB	 54s&   AD$0DAD$
D!D$$
D2rZ   )TestTaskN)r5   r6   r7   r8   rT   r[   rV   r]   rd   rq   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r%  r8  rC  rI  rR  r`  rn  ry  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r!  r/  r5  rD  rL  rZ  ra  rq  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r,  r=  rI  rW  rc  rh  ro  ry  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r%  r-  r4  r7  r=  rD  rI  rP  rS  rd  r   patchrn  rr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r9   r  r  s   @r   rN   rN   U   s   DFP0E2
=A	/"+>!*!*- (/81Sf)$
((+@ :+@0(TgR0%* @D @D38:0%''((.(<%(%&")HO666:!NF+":J6:&06:6<2@686622(..`(6T.>`0-A^(<0B16	(1,'+818)""&<2@G"
&'@@6,>#4".+V"#02*""	"
":("T 
ZZ,-- .- 
+5@)V- 
ZZ,-> .>0	*+	A-
-. -D)6,8,8,8	E Er   rN   c                     U R                   nU R                  nUb  Uc  U $  " S S5      n " S SX15      n " S SX25      nS nX@l         XPl        X`l        S U l        U $ )Nc                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )(add_subclass_tests.<locals>.CommonFuturei
  c                 ^   > [         R                  " S 5      U l        [        TU ]  " U0 UD6  g )Nc                      gr  r   r   r   r   ra   Cadd_subclass_tests.<locals>.CommonFuture.__init__.<locals>.<lambda>
  s    r   )collectionsdefaultdictcallsrc   r   r  s      r   r   1add_subclass_tests.<locals>.CommonFuture.__init__
  s'    $00;DJGd-f-r   c                 R   > U R                   S==   S-  ss'   [        TU ]  " U0 UD6$ )Nr  r   )r#  rc   r  r  s      r   r  :add_subclass_tests.<locals>.CommonFuture.add_done_callback
  s-    JJ*+q0+7,d=f==r   )r#  r  r  s   @r   CommonFuturer  
  s    	.	> 	>r   r'  c                       \ rS rSrSrg) add_subclass_tests.<locals>.Taski
  r   Nr5   r6   r7   r8   r9   r   r   r   rT   r)  
      r   rT   c                       \ rS rSrSrg)"add_subclass_tests.<locals>.Futurei
  r   Nr*  r   r   r   r[   r-  
  r+  r   r[   c                 |  ^ ^ T R                  T R                  S9mUU 4S jnT R                  U" 5       T R                  S9nT R                  R                  U5      nT R	                  US5        T R	                  [        UR                  5      SS05        T R	                  [        TR                  5      SS05        g )NrZ   c                  b   >#    TR                   R                  U 4S j5        T I S h  vN $  N7f)Nc                  &   > T R                  S5      $ Nry  r  r   s   r   ra   Yadd_subclass_tests.<locals>.test_subclasses_ctask_cfuture.<locals>.func.<locals>.<lambda>
  s    v(>r   )rQ   r  )r   r.   s   r   r  Gadd_subclass_tests.<locals>.test_subclasses_ctask_cfuture.<locals>.func
  s#     II >?99s   %/-/ry  r  r   )r[   rQ   rT   r~   rl   dictr#  )r.   r  rp   r   r   s   `   @r   test_subclasses_ctask_cfuture9add_subclass_tests.<locals>.test_subclasses_ctask_cfuture
  s    kktyyk)	 yydiiy0--d3( !$	& 	O !$	&r   )rT   r[   r5  rr  )clsBaseTask
BaseFuturer'  rT   r[   r5  s          r   add_subclass_testsr:  
  so    xxHJ:-
> >|  &, HJ )F%
 &*C"Jr   c                        \ rS rSrS rS rSrg)SetMethodsTesti
  c                    [        U 5      R                  n[        R                  " 5       =U R                  l        nS nU" 5       nU R                  U R                  U5      nUR                  US5        U R                  U R                  R                  U5      S5        UR                  5         UR                  S   S   S   nU R                  [        R                  S5         Ue! , (       d  f       O= fUR                  5         g )Nc                  L   #    [         R                  " S5      I S h  vN   g N7fNr  r~  r  r   r   r   r   @SetMethodsTest.test_set_result_causes_invalid_state.<locals>.foo
       --$$$ %r  ry  r   r   step\(\): already done)r#   r[   r   r  rQ   call_exception_handlerrV   r   rl   r~   assert_called_oncer  r   r   InvalidStateErrorrH   )r.   r[   exc_handlerr   rU   rp   r%   s          r   $test_set_result_causes_invalid_state3SetMethodsTest.test_set_result_causes_invalid_state
  s    d""9=D		(;	 u}}TYY-$'II((.	 	&&(##A&q)+6##G$=$=$=?I? ? 	

s   $C''
C5c                 n    " S S[         5      n[        U 5      R                  n[        R                  " 5       =U R
                  l        nS nU" 5       nU R                  U R
                  U5      nUR                  Xa" 5       5        U R                  U5         U R
                  R                  U5        S S S 5        UR                  5         UR                  S   S   S   nU R                  [        R                  S5         Ue! , (       d  f       NV= f! , (       d  f       O= fUR!                  5         g )Nc                       \ rS rSrSrg)ESetMethodsTest.test_set_exception_causes_invalid_state.<locals>.MyExci
  r   Nr*  r   r   r   MyExcrK  
  s    r   rL  c                  L   #    [         R                  " S5      I S h  vN   g N7fr?  r  r   r   r   r   CSetMethodsTest.test_set_exception_causes_invalid_state.<locals>.foo
  rA  r  r   r   rB  )rk  r#   r[   r   r  rQ   rC  rV   r  r|   r~   rD  r  r   r   rE  rH   )r.   rL  r[   rF  r   rU   rp   r%   s           r   'test_set_exception_causes_invalid_state6SetMethodsTest.test_set_exception_causes_invalid_state
  s    	I 	 d""9=D		(;	 u}}TYY-T57+u%II((. & 	&&(##A&q)+6##G$=$=$=?I &%
? ? 	

s   DD
D
D#r   N)r5   r6   r7   r8   rG  rO  r9   r   r   r   r<  r<  
  s    0r   r<  _CFuture_CTaskzrequires the C _asyncio modulec                   f    \ rS rSr\" \SS5      r\" \SS5      r\	R                  S 5       rS rSrg)CTask_CFuture_Testsi  rR  NrQ  c                    [         R                  " [        S5      nS nU R                  U R                  U" 5       5      nU R                  R                  U5        U" 5       n[        S5       H=  nUR                  U" 5       U R                  S9  U R                  R                  U5        M?     U R                  U" 5       U-
  SSS9  g )Ngettotalrefcountc                     #    g 7fr   r   r   r   r   rU   @CTask_CFuture_Tests.test_refleaks_in_task___init__.<locals>.coro  rv   r   r   rZ   r   r~  )delta)	r   get_attributer  rV   rQ   r~   r   r   r  )r.   rV  rU   rp   refs_beforer  s         r   test_refleaks_in_task___init__2CTask_CFuture_Tests.test_refleaks_in_task___init__  s    "006HI	}}TYY/		$$T*&(sAMM$&tyyM1II((.  	/1K?"Mr   c                     S nU R                  U R                  U" 5       5      nU R                  R                  U5        U R                  [        5         U?S S S 5        g ! , (       d  f       g = f)Nc                     #    g 7fr   r   r   r   r   rU   HCTask_CFuture_Tests.test_del__log_destroy_pending_segfault.<locals>.coro  rv   r   )rV   rQ   r~   r|   AttributeError_log_destroy_pendingr`  s      r   &test_del__log_destroy_pending_segfault:CTask_CFuture_Tests.test_del__log_destroy_pending_segfault  sO    	}}TYY/		$$T*~.) /..s   A!!
A/r   )r5   r6   r7   r8   getattrr   rT   r   r[   r   refcount_testr\  rc  r9   r   r   r   rT  rT    s?     5(D)DWj$/F
N 
N*r   rT  c                   <    \ rS rSr\" \SS5      r\" \SS5      rSr	g)CTask_CFuture_SubclassTestsi$  rR  NrQ  r   )
r5   r6   r7   r8   re  r   rT   r   r[   r9   r   r   r   rh  rh  $  s      5(D)DWj$/Fr   rh  c                   @    \ rS rSr\" \SS5      r\R                  r	Sr
g)CTaskSubclass_PyFuture_Testsi.  rR  Nr   r5   r6   r7   r8   re  r   rT   r   	_PyFuturer[   r9   r   r   r   rj  rj  .  s    
 5(D)DFr   rj  c                   @    \ rS rSr\" \SS5      r\R                  r	Sr
g)PyTask_CFutureSubclass_Testsi7  rQ  Nr   )r5   r6   r7   r8   re  r   r[   r   _PyTaskrT   r9   r   r   r   rn  rn  7  s    
 Wj$/F==Dr   rn  c                   @    \ rS rSr\" \SS5      r\R                  r	Sr
g)CTask_PyFuture_Testsi@  rR  Nr   rk  r   r   r   rq  rq  @  s     5(D)DFr   rq  c                   @    \ rS rSr\R
                  r\" \SS5      r	Sr
g)PyTask_CFuture_TestsiH  rQ  Nr   )r5   r6   r7   r8   r   ro  rT   re  r   r[   r9   r   r   r   rs  rs  H  s     ==DWj$/Fr   rs  c                   D    \ rS rSr\R
                  r\R                  r	Sr
g)PyTask_PyFuture_TestsiP  r   Nr5   r6   r7   r8   r   ro  rT   r   rl  r[   r9   r   r   r   ru  ru  P  s     ==DFr   ru  c                   D    \ rS rSr\R
                  r\R                  r	Sr
g)PyTask_PyFuture_SubclassTestsiW  r   Nrv  r   r   r   rx  rx  W  s    ==DFr   rx  c                       \ rS rSrS rSrg)CTask_Future_Testsi]  c                   ^  " S S[         R                  5      nU4S jn[         R                  " 5       U l         U" U R                  S9mU R                  R	                  STR
                  S5        U R                  R                  U" 5       5      nU R                  R                  U5      nU R                  R                  5         U R                  US5        g ! U R                  R                  5         f = f)Nc                   $    \ rS rSr\S 5       rSrg)+CTask_Future_Tests.test_foobar.<locals>.Futib  c                     [         er   )ra  r-   s    r   r   4CTask_Future_Tests.test_foobar.<locals>.Fut.get_loopc  s    $$r   r   N)r5   r6   r7   r8   propertyr   r9   r   r   r   r  r}  b  s    % %r   r  c                  &   >#    T I S h  vN   g N7fr1  r   r   s   r   rU   ,CTask_Future_Tests.test_foobar.<locals>.corog  s     II r   rZ   r  r   ry  )
r   r[   r   rQ   r  r   r  r~   rH   rl   )r.   r  rU   rp   r  r   s        @r   test_foobarCTask_Future_Tests.test_foobara  s    	%'.. 	%
	 **,		499%CII  cnna899((0D))..t4CIIOOf% IIOOs   A2C C7rZ   N)r5   r6   r7   r8   r  r9   r   r   r   rz  rz  ]  s    &r   rz  c                   `    \ rS rSrSrSrSrSrS rS r	S r
S rS rS rS	 rS
 rS rS rSrg)BaseTaskIntrospectionTestsiw  Nc                 F  ^  " U4S jS5      nU" 5       n[         R                  " 5       mU R                  [        R                  " T5      [        5       5        U R                  U5        U R                  [        R                  " T5      U15        U R                  U5        g )Nc                   2   > \ rS rSr\U 4S j5       rS rSrg)BBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLikei~  c                    > T$ r   r   r\   s    r   r   HBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLike._loop  s    r   c                     gr  r   r-   s    r   r   GBaseTaskIntrospectionTests.test__register_task_1.<locals>.TaskLike.done      r   r   N)r5   r6   r7   r8   r  r   r   r9   rZ   s   r   TaskLiker  ~  s     r   r  r   r  rl   r   r\  rl  _register_task_unregister_taskr.   r  rp   rQ   s      @r   test__register_task_10BaseTaskIntrospectionTests.test__register_task_1}  sw    	 	 zyy{**40#%8D!**404&9d#r   c                 F  ^  " U4S jS5      nU" 5       n[         R                  " 5       mU R                  [        R                  " T5      [        5       5        U R                  U5        U R                  [        R                  " T5      U15        U R                  U5        g )Nc                   (   > \ rS rSrU 4S jrS rSrg)BBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLikei  c                    > T$ r   r   r\   s    r   r   KBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLike.get_loop      r   c                     gr  r   r-   s    r   r   GBaseTaskIntrospectionTests.test__register_task_2.<locals>.TaskLike.done  r  r   r   Nr5   r6   r7   r8   r   r   r9   rZ   s   r   r  r    s    r   r  r  r  s      @r   test__register_task_20BaseTaskIntrospectionTests.test__register_task_2  sw    	 	 zyy{**40#%8D!**404&9d#r   c                 T  ^  " U4S jS5      nU" 5       n[         R                  " 5       mU R                  [        R                  " T5      [        5       5        U R                  U5        U R                  [        R                  " T5      [        5       5        U R                  U5        g )Nc                   (   > \ rS rSrU 4S jrS rSrg)BBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLikei  c                    > T$ r   r   r\   s    r   r   KBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLike.get_loop  r  r   c                     gr  r   r-   s    r   r   GBaseTaskIntrospectionTests.test__register_task_3.<locals>.TaskLike.done  s    r   r   Nr  rZ   s   r   r  r    s    r   r  r  r  s      @r   test__register_task_30BaseTaskIntrospectionTests.test__register_task_3  sw    	 	 zyy{**40#%8D!**40#%8d#r   c                 2   [         R                  " 5       n[         R                  " 5       nU R                  [        R                  " U5      5        U R                  X!5        U R                  [        R                  " U5      U5        U R                  X!5        g r   )r   r  r  r   r  _enter_taskr   _leave_taskr.   rp   rQ   s      r   test__enter_task+BaseTaskIntrospectionTests.test__enter_task  sf    yy{yy{'..t45$g**40$7$r   c                    [         R                  " 5       n[         R                  " 5       n[         R                  " 5       nU R                  X15        U R                  [        5         U R                  X25        S S S 5        U R                  [        R                  " U5      U5        U R                  X15        g ! , (       d  f       NF= fr   )	r   r  r  r|   r   r   r   r  r  r.   r  r  rQ   s       r   test__enter_task_failure3BaseTaskIntrospectionTests.test__enter_task_failure      				yy{%|,T) -g**40%8% -,   &B88
Cc                     [         R                  " 5       n[         R                  " 5       nU R                  X!5        U R                  X!5        U R	                  [
        R                  " U5      5        g r   )r   r  r  r  r  r   r  r  s      r   test__leave_task+BaseTaskIntrospectionTests.test__leave_task  sM    yy{yy{$$'..t45r   c                    [         R                  " 5       n[         R                  " 5       n[         R                  " 5       nU R                  X15        U R                  [        5         U R                  X25        S S S 5        U R                  [        R                  " U5      U5        U R                  X15        g ! , (       d  f       NF= fr   )	r   r  r  r|   r   r  r   r   r  r  s       r   test__leave_task_failure14BaseTaskIntrospectionTests.test__leave_task_failure1  r  r  c                 "   [         R                  " 5       n[         R                  " 5       nU R                  [        5         U R	                  X!5        S S S 5        U R                  [        R                  " U5      5        g ! , (       d  f       N4= fr   )r   r  r|   r   r  r  r   r  r  s      r   test__leave_task_failure24BaseTaskIntrospectionTests.test__leave_task_failure2  s[    yy{yy{|,T( -'..t45 -,s    B  
Bc                   ^ [         R                  " 5       n[         R                  " 5       mU4S jUl        U R                  U5        U R	                  U5        U R                  [        R                  " T5      [        5       5        g )Nc                     > T $ r   r   rZ   s   r   ra   BBaseTaskIntrospectionTests.test__unregister_task.<locals>.<lambda>  s    r   )	r   r  r   r  r  rl   r   r\  rl  r  s     @r   test__unregister_task0BaseTaskIntrospectionTests.test__unregister_task  sY    yy{yy{$D!d#**40#%8r   c                     [         R                  " 5       n[         R                  " 5       nU R                  U5        U R                  [        R
                  " U5      [        5       5        g r   )r   r  r  rl   r   r\  rl  r  s      r   $test__unregister_task_not_registered?BaseTaskIntrospectionTests.test__unregister_task_not_registered  sC    yy{yy{d#**40#%8r   r   )r5   r6   r7   r8   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r9   r   r   r   r  r  w  sI    NKK$"$ $ %&6&699r   r  c                       \ rS rSr\" \R                  5      r\" \R                  5      r	\" \R                  5      r\" \R                  5      rSrg)PyIntrospectionTestsi  r   N)r5   r6   r7   r8   staticmethodr   _py_register_taskr  _py_unregister_taskr  _py_enter_taskr  _py_leave_taskr  r9   r   r   r   r  r    sC    !%"9"9:N#E$=$=>u334Ku334Kr   r  _c_register_taskc                       \ rS rSr\" \S5      (       aK  \" \R                  5      r\" \R                  5      r
\" \R                  5      r\" \R                  5      rSrgS=r=r
=rrSrg)CIntrospectionTestsi  r  Nr   )r5   r6   r7   r8   rz   r   r  r  r  _c_unregister_taskr  _c_enter_taskr  _c_leave_taskr  r9   r   r   r   r  r    sh     u())%e&<&<='(@(@A"5#6#67"5#6#67HLLL)LK+r   r  c                   D   ^  \ rS rSrSrU 4S jrS rS rS rS r	Sr
U =r$ )	BaseCurrentLoopTestsi  Nc                    > [         TU ]  5         [        R                  " 5       U l        U R                  U R                  5        g r   rc   rd   r   r   rQ   r   rh   s    r   rd   BaseCurrentLoopTests.setUp  .    **,	DII&r   c                     [         er   )NotImplementedErrorr   s     r   rV   BaseCurrentLoopTests.new_task  s    !!r   c                 T    U R                  U R                  U R                  S95        g rY   )r  r  rQ   r-   s    r   !test_current_task_no_running_loop6BaseCurrentLoopTests.test_current_task_no_running_loop  s"    $+++;<r   c                     U R                  [        S5         U R                  5         S S S 5        g ! , (       d  f       g = f)Nzno running event loop)r   r   r  r-   s    r   *test_current_task_no_running_loop_implicit?BaseCurrentLoopTests.test_current_task_no_running_loop_implicit  s,    ##L2IJ KJJs   1
?c                    ^ ^ U U4S jnT R                  U" 5       5      mT R                  R                  T5        T R                  T R	                  T R                  S95        g )Nc                     >#    T R                  T R                  T R                  S9T5        T R                  T R                  S 5      T5        T R                  T R                  5       T5        g 7frY   )r   r  rQ   ro   s   r   rU   GBaseCurrentLoopTests.test_current_task_with_implicit_loop.<locals>.coro  sV     MM$+++;TBMM$++D148MM$++-t4s   A,A/rZ   )rV   rQ   r~   r  r  r`  s   ` @r   $test_current_task_with_implicit_loop9BaseCurrentLoopTests.test_current_task_with_implicit_loop  sL    	5 }}TV$		$$T*$+++;<r   rZ   )r5   r6   r7   r8   r  rd   rV   r  r  r  r9   r  r  s   @r   r  r    s&    L'
"= 	= 	=r   r  c                   >    \ rS rSr\" \R                  5      rS rSr	g)PyCurrentLoopTestsi  c                 >    [         R                  " XR                  S9$ rY   )r   ro  rQ   r   s     r   rV   PyCurrentLoopTests.new_task  s    }}T		22r   r   N)
r5   r6   r7   r8   r  r   _py_current_taskr  rV   r9   r   r   r   r  r    s     6 67L3r   r  _c_current_taskc                   `    \ rS rSr\" \S5      (       a  \" \R                  5      rOSrS r	Sr
g)CCurrentLoopTestsi  r  Nc                 >    [        [        S5      " XR                  S9$ )NrR  rZ   )re  r   rQ   r   s     r   rV   CCurrentLoopTests.new_task(  s    uh'99==r   r   )r5   r6   r7   r8   rz   r   r  r  r  rV   r9   r   r   r   r  r    s,     u'((#E$9$9:>r   r  c                   >    \ rS rSrS r\R                  S 5       rSrg)GenericTaskTestsi,  c                 r    U R                  [        [        R                  [        R                  5      5        g r   )ry   
issubclassr   rT   r[   r-   s    r   test_future_subclass%GenericTaskTests.test_future_subclass.  s    
7<<@Ar   c                      SS K nSS KnSS Kn SS Kng ! [         a    U R                  S5         g f = f! [         a    U R                  S5         g f = f)Nr   z_asyncio module is missingzC modules are not available)
_functools_json_pickle_asyncioImportErrorr@  skipTest)r.   r  r  r  r  s        r   test_asyncio_module_compiled-GenericTaskTests.test_asyncio_module_compiled1  sQ    
	88 8		678  	9MM78	9s   5  22AAr   N)	r5   r6   r7   r8   r  r   cpython_onlyr  r9   r   r   r   r  r  ,  s"    B 8 8r   r  c                   R   ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
rU =r$ )GatherTestsBaseiD  c                    > [         TU ]  5         U R                  5       U l        U R                  5       U l        U R                  U R                  SS9  g )NF)cleanup)rc   rd   re   one_loopr   r   rh   s    r   rd   GatherTestsBase.setUpF  sC    **,,,.DMM59r   c                 z    UR                   (       a*  [        R                  " U5        UR                   (       a  M)  g g r   )r^  r  rP  r\   s     r   	_run_loopGatherTestsBase._run_loopL  s"    kk""4( kkkr   c                    [        S5       Vs/ s H  o R                  R                  5       PM     snu  p4nU R                  " U R	                  X4U5      0 UD6n[
        R                  " 5       nUR                  U5        UR                  S5        UR                  S5        U R                  U R                  5        U R                  UR                  S5        U R                  UR                  5       5        UR                  S5        U R                  U R                  5        UR                  U5        U R                  UR                  5       / SQ5        g s  snf )Nri  r   rU  F)rU  r   ri  )r   r  rg   _gatherwrap_futuresr  MockCallbackr  r   r	  rl   rl  r  r   assert_called_once_withr   )r.   r  r  r   rV  r  r   cbs           r   _check_successGatherTestsBase._check_successP  s    :?(C(Q==..0(CallD--aA6A&A$$&b!	Q	Qt}}%E*$	Qt}}%
""3'y1 Ds   #Ec                 B    U R                  5         U R                  SS9  g )NFr  r  r-   s    r   test_successGatherTestsBase.test_success_  s    e4r   c                 "    U R                  SS9  g )NTr  r  r-   s    r   test_result_exception_success-GatherTestsBase.test_result_exception_successc  s    d3r   c           	         [        S5       Vs/ s H  oR                  R                  5       PM     snu  p#pEnU R                  " U R	                  X#XEU5      6 n[
        R                  " 5       nUR                  U5        [        5       n	UR                  S5        UR                  U	5        U R                  U R                  5        U R                  UR                  5       5        UR                  U5        U R                  UR!                  5       U	5        UR                  S5        UR#                  5         UR                  [%        5       5        UR!                  5         g s  snf Nr  r   ri  )r   r  rg   r  r  r  r  r  r  r   r  r	  ry   r   r  r   r   r{   r   )
r.   r  r   rV  r  r	  er   r  r%   s
             r   test_one_exception"GatherTestsBase.test_one_exceptionf  s    @EaI1446IaAllD--aA!<=$$&b!!	Q	t}}%
#
""3'cmmos+	Q	
	'	 Js   #E c                 
   [        S5       Vs/ s H  oR                  R                  5       PM     snu  p#pEU R                  " U R	                  X#XE5      SS06n[
        R                  " 5       nUR                  U5        [        5       n[        5       n	UR                  S5        UR                  U5        UR                  S5        U R                  U R                  5        U R                  UR                  5       5        UR                  U	5        U R                  U R                  5        U R                  UR                  5       5        UR!                  U5        U R#                  UR%                  5       SSX/5        g s  snf )N   r  Tr   ri  )r   r  rg   r  r  r  r  r  r  r   r   r  r	  r  r   ry   r  rl   r   )
r.   r  r   rV  r  r	  r   r  r%   exc2s
             r   test_return_exceptions&GatherTestsBase.test_return_exceptionsx  s   =B1XFXmm113XF
allD--aA9 3-13$$&b!!~	Q		Qt}}%$	t}}%
#
""3'1c'89! Gs   #F c                    SR                  S5      n[        SSU5      u  p#nU R                  UR                  5       S5        [        SUSSS9u  p#nU R                  UR                  5       S5        [        SUSSS9u  p#nU R                  UR                  5       S	5        [        SSUSSS9u  p#nU R                  UR                  5       S5        [        SS
SSU5      u  p#nU R                  UR                  5       S	5        g )N
)zimport asyncio.coroutinesz*print(asyncio.coroutines._is_debug_mode())z-Ez-cs   False )PYTHONASYNCIODEBUGPYTHONDEVMODE1s   Truez-Xdev)joinr	   rl   rstrip)r.   codestsstdoutstderrs        r   test_env_var_debug"GatherTestsBase.test_env_var_debug  s
   yy : ; /tT4@V(3.tTBD=?AV 	(3.tTBE=?AV 	'2.tT4BE=?AV 	(3 /tT5/3T;V'2r   )r  r   )r5   r6   r7   r8   rd   r	  r  r  r  r  r"  r1  r9   r  r  s   @r   r  r  D  s0    :)254$:&3 3r   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)FutureGatherTestsi  c                     U$ r   r   )r.   r   s     r   r  FutureGatherTests.wrap_futures  s    r   c                 .    [         R                  " U0 UD6$ r   r   r   )r.   r$   r  s      r   r  FutureGatherTests._gather  s    ~~t.v..r   c                     U R                  [        S5         [        R                  " 5         S S S 5        g ! , (       d  f       g = f)Nr   )r   r   r   r   r-   s    r   ,test_constructor_empty_sequence_without_loop>FutureGatherTests.test_constructor_empty_sequence_without_loop  s*    ##L2IJNN KJJs	   6
Ac                    S nU R                   R                  U" 5       5      nU R                  U[        R                  5        U R                  UR                  U R                   5        U R                  U R                   5        U R                  UR                  5       5        U R                  UR                  5       / 5        g )Nc                  4   #    [         R                  " 5       $ 7fr   r8  r   r   r   r   RFutureGatherTests.test_constructor_empty_sequence_use_running_loop.<locals>.gather  s     >>##s   )r  r~   rn   r   r[   r   r   r	  ry   r   rl   r   )r.   r   r   s      r   0test_constructor_empty_sequence_use_running_loopBFutureGatherTests.test_constructor_empty_sequence_use_running_loop  s    	$mm..vx8c7>>2cii/t}}%
#r*r   c                    [         R                  " U R                  5        U R                  [         R                  S 5        [         R                  " 5       nU R                  U[         R                  5        U R                  UR                  U R                  5        U R                  U R                  5        U R                  UR                  5       5        U R                  UR                  5       / 5        g r   )r   r   r  r   r   rn   r[   r   r   r	  ry   r   rl   r   )r.   r   s     r   /test_constructor_empty_sequence_use_global_loopAFutureGatherTests.test_constructor_empty_sequence_use_global_loop  s    t}}-..5nnc7>>2cii/t}}%
#r*r   c                     U R                   R                  5       nU R                  R                  5       nU R                  [        5         [
        R                  " X5        S S S 5        g ! , (       d  f       g = fr   )r  rg   r   r|   r   r   r   )r.   r
  r  s      r   %test_constructor_heterogenous_futures7FutureGatherTests.test_constructor_heterogenous_futures  sL    }}**,,,.z*NN4& +**s   
A**
A8c                 >   [        S5       Vs/ s H  oR                  R                  5       PM     nn[        R                  " U6 nU R                  UR                  U R                  5        U R                  U R                  5        U R                  UR                  5       5        [        R                  " U6 nU R                  UR                  U R                  5        U R                  U R                  5        U R                  UR                  5       5        g s  snf Nri  )
r   r   rg   r   r   r   r   r	  r  r   )r.   r  childrenr   s       r   #test_constructor_homogenous_futures5FutureGatherTests.test_constructor_homogenous_futures  s    =B1XFXOO113XFnnh'cii1t'$nnh'cii1t'$ Gs   #Dc                    [        S5       Vs/ s H  oR                  R                  5       PM     snu  p#pEn[        R                  " X#XEU5      n[
        R                  " 5       nUR                  U5        UR                  S5        UR                  5         U R                  U R                  5        U R                  UR                  5       5        UR                  U5        U R                  UR                  5       5        U R!                  UR#                  5       [        R$                  5        UR                  S5        UR                  5         UR'                  [)        5       5        UR#                  5         g s  snf r  )r   r  rg   r   r   r  r  r  r   r{   r	  ry   r   r  r  r  rn   r   r}   r  r   )	r.   r  r   rV  r  r	  r  r   r  s	            r   test_one_cancellation'FutureGatherTests.test_one_cancellation  s    @EaI1446IaAnnQ1+$$&b!	Q	
t}}%
#
""3')cmmow/E/EF	Q	
	'	 Js   #E:c           
         [        S5       Vs/ s H  nU R                  R                  5       PM     snu  p#pEpg[        R                  " X#XEXgSS9n[
        R                  " 5       n	UR                  U	5        UR                  S5        [        5       n
UR                  U
5        UR                  5         U R                  U R                  5        U R                  UR                  5       5        UR                  S5        UR                  5         [        5       nUR                  U5        U R                  R!                  U5      nU R#                  US   [        R$                  5        U R#                  US   [        R$                  5        S =US'   US'   U R'                  USU
S SS U/5        U	R)                  U5        g s  snf )NrH  Tr  r   ri  rU  r   )r   r  rg   r   r   r  r  r  r   r  r  r{   r	  r  r   r   r~   rn   r}   rl   r  )r.   r  r   rV  r  r	  r  r   r   r  zderter  s                r   &test_result_exception_one_cancellation8FutureGatherTests.test_result_exception_one_cancellation  sd   %*1X/%- !MM779%-/aAnnQ1F$$&b!	Q!		
t}}%$	Q	
n	mm..s3c!fg&<&<=c!fg&<&<=AQq#tQc:;
""3')/s   $F=r   N)r5   r6   r7   r8   r  r  r;  r@  rC  rF  rK  rN  rS  r9   r   r   r   r4  r4    s/    /+	+'	%$(r   r4  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)CoroutineGatherTestsi  c                 T    / nU H  nU4S jnUR                  U" 5       5        M!     U$ )Nc                 "   #    U I S h  vN $  N7fr   r   r   s    r   rU   /CoroutineGatherTests.wrap_futures.<locals>.coro  s      y yrO  )r  )r.   r   corosr   rU   s        r   r  !CoroutineGatherTests.wrap_futures  s.    C" !LL   r   c                 T   ^^ UU4S jnU R                   R                  U" 5       5      $ )Nc                  8   >#    [         R                  " T 0 TD6$ 7fr   r8  )r$   r  s   r   rU   *CoroutineGatherTests._gather.<locals>.coro  s     >>42622s   )r  r~   )r.   r$   r  rU   s    `` r   r  CoroutineGatherTests._gather  s    	3}}//77r   c                    S nU" 5       nU R                  UR                  5        U" 5       nU R                  UR                  5        U R                  [        S5         [        R
                  " X#5        S S S 5        g ! , (       d  f       g = f)Nc                     #    g7fr  r   r   r   r   rU   @CoroutineGatherTests.test_constructor_without_loop.<locals>.coro  r  r   r   )r   rH   r   r   r   r   )r.   rU   gen1gen2s       r   test_constructor_without_loop2CoroutineGatherTests.test_constructor_without_loop  s_    	v

#v

###L2IJNN4& KJJs   A>>
Bc                    ^^ S nU" 5       mU" 5       mUU4S jnU R                   R                  U" 5       5      nU R                  UR                  U R                   5        U R                   R                  U5        g )Nc                     #    g7fr  r   r   r   r   rU   DCoroutineGatherTests.test_constructor_use_running_loop.<locals>.coro   r  r   c                  :   >#    [         R                  " T T5      $ 7fr   r8  )rc  rd  s   r   r   FCoroutineGatherTests.test_constructor_use_running_loop.<locals>.gather$  s     >>$--s   )r  r~   r   r   )r.   rU   r   r   rc  rd  s       @@r   !test_constructor_use_running_loop6CoroutineGatherTests.test_constructor_use_running_loop  sY    	vv	.mm..vx8cii/((-r   c                 T   S n[         R                  " U R                  5        U R                  [         R                  S 5        U" 5       nU" 5       n[         R                  " X#5      nU R                  UR                  U R                  5        U R                  R                  U5        g )Nc                     #    g7fr  r   r   r   r   rU   CCoroutineGatherTests.test_constructor_use_global_loop.<locals>.coro,  r  r   )r   r   r   r   r   r   r   r~   )r.   rU   rc  rd  r   s        r    test_constructor_use_global_loop5CoroutineGatherTests.test_constructor_use_global_loop*  sq    	t/..5vvnnT(cii1**3/r   c                     S nU" S5      nU R                  X"U" S5      U5      nU R                  U R                  5        U R                  UR	                  5       / SQ5        g )Nc                    #    U $ 7fr   r   ru  s    r   rU   <CoroutineGatherTests.test_duplicate_coroutines.<locals>.coro7  rx  rt  r  def)r  r  rv  r  )r  r	  r  rl   r   )r.   rU   r  r   s       r   test_duplicate_coroutines.CoroutineGatherTests.test_duplicate_coroutines6  sM    	Kll1ea0t}}%'CDr   c                   ^^^^^ SmU R                   R                  5       mUU4S jn[        R                  " U" 5       U R                   S9m[        R                  " U" 5       U R                   S9mS mUUUU4S jn[        R                  " U" 5       U R                   S9n[        R
                  " U R                   5        U R                  UR                  5       5        U R                  [        R                  5         U R                   R                  U5        S S S 5        U R                  TR                  5       5        U R                  TR                  5       5        U R                  TR                  5       5        U R                  TR                  5       5        [        R
                  " U R                   5        U R                  TS5        g ! , (       d  f       N= f)Nr   c                  0   >#    TI S h  vN   T S-  m g  N
7fr  r   r  s   r   r  ?CoroutineGatherTests.test_cancellation_broadcast.<locals>.innerC  r	  r
  rZ   c                  ^   >#    [         R                  " T T5      mTI S h  vN   TS-  mg  N
7fr  r8  )r1  r2  gathererr  s   r   rY  ?CoroutineGatherTests.test_cancellation_broadcast.<locals>.outerL  s+     ~~ff5HNNSLE s   -+-)r  rg   r   r   r  rP  ry   r{   r|   r}   r~   r  r  rl   )	r.   r  rY  r   r1  r2  r}  r  r  s	       @@@@@r   test_cancellation_broadcast0CoroutineGatherTests.test_cancellation_broadcast>  sH   ,,.	
 &&uwT]]C&&uwT]]C	 	 !!%'>t}}-
#w556MM,,Q/ 7*+((*+((*+((*+t}}-" 76s   >G
Gc                   ^^^ S mU R                   R                  5       mU R                   R                  5       mUUU4S jn[        R                  " U" 5       U R                   S9n[        R
                  " U R                   5        TR                  S 5        [        R
                  " U R                   5        TR                  S 5        [        R
                  " U R                   5        U R                  UR                  5       [        5        g )Nc                 8   #    U I S h  vN   [        S5      e N7f)Nzshould not be ignoredr2  r  s    r   r  :CoroutineGatherTests.test_exception_marking.<locals>.innera  s     GG677 s   c                  h   >#    [         R                  " T" T 5      T" T5      5      I S h  vN   g  N7fr   r8  )r   rV  r  s   r   rY  :CoroutineGatherTests.test_exception_marking.<locals>.outerh  s"     ..q58444s   '202rZ   )
r  rg   r   r   r  rP  r   rn   r   r   )r.   rY  r   r   rV  r  s      @@@r   test_exception_marking+CoroutineGatherTests.test_exception_marking^  s    	8 MM'')MM'')	5 !!%'>t}}-	Tt}}-	Tt}}-akkm\:r   c                 z   [         R                  " S5         S nU" S5      nU R                  [        5         U R	                  U0 5        S S S 5        U R                  U R                  5        U R                  R                  R                  5         S S S 5        g ! , (       d  f       NV= f! , (       d  f       g = f)Nz8asyncio.base_events.BaseEventLoop.call_exception_handlerc                    #    U $ 7fr   r   ru  s    r   rU   2CoroutineGatherTests.test_issue46672.<locals>.corow  s
     rt  r  )	r   r  r|   r   r  r	  r  rC  assert_not_called)r.   rU   r  s      r   test_issue46672$CoroutineGatherTests.test_issue46672s  s    ZZF
UA""9-Q# .NN4==)MM00BBD
 
 .-
 
s#   !B,BAB,
B)	%B,,
B:r   N)r5   r6   r7   r8   r  r  re  rl  rq  rw  r  r  r  r9   r   r   r   rV  rV    s2    8
'	.
0E#@;*Er   rV  c                   ^   ^  \ rS rSrU 4S jrSS jr  SS jrS rS rS r	S r
S	 rS
rU =r$ )RunCoroutineThreadsafeTestsi  c                    > [         TU ]  5         [        R                  " 5       U l        U R                  U R                  5        g r   r  rh   s    r   rd   !RunCoroutineThreadsafeTests.setUp  r  r   c                    #    [         R                  " S5      I S h  vN   U(       a  [        S5      eU(       aL  [         R                  " U R                  5      R                  5         [         R                  " S5      I S h  vN   X-   $  Nm N
7f)NrA  Fail!r   )r   r   r   r  rQ   r{   )r.   r   rV  r@  r{   s        r   r  RunCoroutineThreadsafeTests.add  sf     mmD!!!w''  +224--"""u 	"
 #s"   BB
A$BB	BBc                    U R                  SSXS9n[        R                  " XPR                  5      nU(       a&  U R                  R	                  UR
                  S 5         UR                  U5      UR                  5       =(       d    UR                  5         $   $ ! UR                  5       =(       d    UR                  5         f   f = f)Nr   rU  )r@  r{   )	r  r   run_coroutine_threadsaferQ   call_soon_threadsaferB   r   r   r{   )r.   r@  r{   r  advance_cororU   rW  s          r   target"RunCoroutineThreadsafeTests.target  s     xx14x711$		B II**499d;	-==)KKM,V]]_,FKKM,V]]_,s    B +Cc                     U R                   R                  S U R                  5      nU R                   R                  U5      nU R	                  US5        g rI  )rQ   run_in_executorr  r~   rl   )r.   rW  r   s      r   test_run_coroutine_threadsafe9RunCoroutineThreadsafeTests.test_run_coroutine_threadsafe  s@    **4=--f5#r   c                 2   U R                   R                  S U R                  S5      nU R                  [        5       nU R                   R                  U5        S S S 5        U R                  SWR                  R                  5        g ! , (       d  f       N5= f)NTr  )	rQ   r  r  r|   r   r~   r  r   r$   )r.   rW  exc_contexts      r   ,test_run_coroutine_threadsafe_with_exceptionHRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_exception  sj     **4dC|,II((0 -g{4499: -,s   B
Bc                   ^  U 4S jnT R                   R                  S U5      nT R                  [        R                  5         T R                   R                  U5        S S S 5        [        R                  " T R                   5        [        R                  " T R                   5       H"  nT R                  UR                  5       5        M$     g ! , (       d  f       Nu= f)Nc                  "   > T R                  SS9$ )Nr   r  r  r-   s   r   ra   XRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_timeout.<locals>.<lambda>  s    4;;q;1r   )rQ   r  r|   r   r  r~   r  rP  r\  ry   r   )r.   r  rW  rp   s   `   r   *test_run_coroutine_threadsafe_with_timeoutFRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_with_timeout  s     2**4:w334II((0 5tyy)%%dii0DOODIIK( 1	 54s   C
Cc                    ^  U 4S jnT R                   R                  S U5      nT R                  [        R                  5         T R                   R                  U5        S S S 5        g ! , (       d  f       g = f)Nc                  "   > T R                  SS9$ )NTr  r  r-   s   r   ra   ZRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_cancelled.<locals>.<lambda>  s    4;;d;3r   )rQ   r  r|   r   r}   r~   )r.   r  rW  s   `  r   ,test_run_coroutine_threadsafe_task_cancelledHRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_cancelled  sR     4**4:w556II((0 766s   A((
A6c                   ^  S nT R                   R                  S U 4S j5      n[        R                  " 5       nT R                   R	                  U5        T R                  T R                   R                  T R                   R                  5       5        T R                   R                  U5        T R                  [        5       nT R                   R                  U5        S S S 5        T R                  [        UR                  5      S5        UR                  u  u  pVnT R                  US   WR                  5        g ! , (       d  f       Nd= f)Nc                     [         er   )	NameError)rQ   rU   s     r   task_factoryfRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception.<locals>.task_factory  s    Or   c                  "   > T R                  SS9$ )NT)r  r  r-   s   r   ra   bRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception.<locals>.<lambda>  s    $++4+8r   r   r   )rQ   r  r  r  r[  r   rf   get_task_factoryr|   r  r~   rl   r  call_args_listr  r   )r.   r  r   r  r  rQ   r'   r  s   `       r   4test_run_coroutine_threadsafe_task_factory_exceptionPRunCoroutineThreadsafeTests.test_run_coroutine_threadsafe_task_factory_exception  s    	 ii''8: **,		''1 			22		224	6		""<0 y)[II((- * 	X445q9"*"4"4-{/D/DE *)s   D==
ErZ   )FF)FFNF)r5   r6   r7   r8   rd   r  r  r  r  r  r  r  r9   r  r  s   @r   r  r    s:    '
 8<!-"$;
)1F Fr   r  c                   :   ^  \ rS rSrU 4S jrU 4S jrS rSrU =r$ )
SleepTestsi  c                    > [         TU ]  5         [        R                  " 5       U l        U R                  U R                  5        g r   r  rh   s    r   rd   SleepTests.setUp  r  r   c                 d   > U R                   R                  5         S U l         [        TU ]  5         g r   rQ   rH   rc   tearDownrh   s    r   r  SleepTests.tearDown  #    			r   c                    ^ ^^ SmU4S jmUUU 4S jnT R                   R                  U" 5       5        T R                  TS5        g )Nr   c                    > TU -  mg r   r   )r  r   s    r   
inc_result.SleepTests.test_sleep_zero.<locals>.inc_result  s    cMFr   c                     >#    TR                   R                  TS5        TR                  TS5        [        R                  " SSS9I S h  vN n TR                  TS5        T" U 5        g  N7f)Nr   r   r~  r   )rQ   r  rl   r   r   )r  r  r   r.   s    r   rU   (SleepTests.test_sleep_zero.<locals>.coro  sY     II
A.VQ'a33CVQ'sO 4s   AA,
A* A,   )rQ   r~   rl   )r.   rU   r  r   s   ` @@r   test_sleep_zeroSleepTests.test_sleep_zero  s8    		 			$$TV,$r   rZ   )	r5   r6   r7   r8   rd   r  r  r9   r  r  s   @r   r  r    s    '

% %r   r  c                   4   ^  \ rS rSrU 4S jrU 4S jrSrU =r$ )CompatibilityTestsi  c                    > [         TU ]  5         [        R                  " 5       U l        U R                  U R                  5        g r   r  rh   s    r   rd   CompatibilityTests.setUp  r  r   c                 d   > U R                   R                  5         S U l         [        TU ]  5         g r   r  rh   s    r   r  CompatibilityTests.tearDown
  r  r   rZ   )r5   r6   r7   r8   rd   r  r9   r  r  s   @r   r  r    s    '
 r   r  __main__)F);r!  r
  r  r   r  r  r.  r  rA  r   unittestr   r   r   r   r   test.test_asyncior   r  r   r   test.support.script_helperr	   r   r   r    r(   r*   r;   rN   r:  r<  
skipUnlessrz   TestCaserT  rh  rj  rn  rq  rs  ru  rx  rz  r  r  r  r  r  r  r  r  r4  rV  r  r  r  r5   r  r   r   r   <module>r     s      	 	  	 
         1  7(	
?(   ~(E ~(EBR7t2 2j 
WWj1 .UH-57*-$--*7*8 
WWj1 .UH-57 0-1D1D 0 70 
WUH-57=*2E2E  7 
WWj157=*2E2E  7 
WUH-57=**=*= 7 
WWj1570=**=*= 070M>&// M:3F3F  
 
WUH-57&,, &7&0m9 m9`5:..0J 5 
WU$6757M*--/I M7M= =<3-z/B/B 3 
WUH- 7U$5657>,j.A.A >7>8z** 80c3 c3LY()<)< Y(xyE?J,?,? yEx_F*"5"5 _FD%$$ %:,,  zMMO r   