
    z%i&                     |    	 d dl Z d dlZd dlZd Z G d de j                        Zedk(  r e j                          yy)    Nc                  .    t        j                  d        y )N)asyncioset_event_loop_policy     S/home/uftp/.pyenv/versions/3.12.0/lib/python3.12/test/test_asyncio/test_timeouts.pytearDownModuler	   	   s    !!$'r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zy)TimeoutTestsc                 j  K   | j                  t              5  t        j                  d      4 d {   }t        j                  d       d {    d d d       d {    d d d        | j                  j                                y 7 Y7 >7 0# 1 d {  7  sw Y   @xY w# 1 sw Y   DxY wwN{Gz?
   )assertRaisesTimeoutErrorr   timeoutsleep
assertTrueexpiredselfcms     r   test_timeout_basiczTimeoutTests.test_timeout_basic   s     |, 	(t, ( (mmB'''( (	( 	

%('( ( ( (	( 	(ss   B3B'BB'BBBB'B B'$(B3B'BB'B$	BB$	 B''B0,B3c                   K   t        j                         }| j                  t              5  |j	                         dz   }t        j
                  |      4 d {   }t        j                  d       d {    d d d       d {    d d d        | j                  j                                | j                  |j                                y 7 y7 ^7 P# 1 d {  7  sw Y   `xY w# 1 sw Y   dxY wwr   )r   get_running_loopr   r   time
timeout_atr   r   r   assertEqualwhen)r   loopdeadliner   s       r   test_timeout_at_basicz"TimeoutTests.test_timeout_at_basic   s     '')|, 	(yy{T)H))(3 ( (rmmB'''( (	( 	

%2779-('( ( ( (	( 	(sw   *C:-C.CC.C6C7C;C.CC.AC:C.CC.C+	C" C+	'C..C73C:c           	        K   t        j                         }d}| j                  t              5  |j	                         dz   }t        j
                  |      4 d {   }	 t        j
                  |      4 d {   }t        j                  d       d {    d d d       d {    d d d       d {    d d d        | j                  |       | j                  j                                | j                  j                                y 7 7 7 7 r# 1 d {  7  sw Y   xY w# t         j                  $ r d} w xY w7 # 1 d {  7  sw Y   xY w# 1 sw Y   xY wwNFr   r   T)
r   r   r   r   r   r   r   CancelledErrorr   r   )r   r    	cancelledr!   cm1cm2s         r   test_nested_timeoutsz!TimeoutTests.test_nested_timeouts   s4    '')	|, 		yy{T)H))(3  s&11(; 0 0s%mmB///0 0 		 		"&&0/0 0 0 0--  $I   		 		s   ,E.-E"DE"E!D1:D
;D1>DD
DD1'D(D1,E"7E8E"<AE.E"D1DD1D."D%#D.*D11EEE"E	EE	E""E+'E.c                   K   t        j                         }d}| j                  t              5  t        j                  d      4 d {    	 t        j
                  d       d {    d d d       d {    d d d        | j                  |       y 7 L7 0# t         j                  $ r d} w xY w7 <# 1 d {  7  sw Y   LxY w# 1 sw Y   PxY wwr$   )r   r   r   r   r   r   r%   r   )r   r    r&   s      r   test_waiter_cancelledz"TimeoutTests.test_waiter_cancelled0   s     '')	|, 	t,  !--+++ 	 		"+--  $I   	 	s   ,CC
B	C
B5B&B'B+C
6B37C
;CC
BB00B53C
5C	;B><C	C

CCc                   K   t        j                         }|j                         }t        j                  d      4 d {   }t        j                  d       d {    d d d       d {    |j                         }| j                  j                                | j                  ||z
  d       | j                  |j                         |       y 7 7 {7 m# 1 d {  7  sw Y   }xY ww)Nr   r      )
r   r   r   r   r   assertFalser   
assertLessassertGreaterr   r   r    t0r   t1s        r   test_timeout_not_calledz$TimeoutTests.test_timeout_not_called<   s     '')YY[??2& 	& 	&"--%%%	& 	&YY[&2q!2779b)	&%	& 	& 	& 	&sZ   >C2 CC2CCC"C2-C.A*C2CC2C/#C&$C/+C2c                   K   t        j                         }|j                         }t        j                  d       4 d {   }t        j                  d       d {    d d d       d {    |j                         }| j                  j                                | j                  |j                                | j                  ||z
  d       y 7 7 z7 l# 1 d {  7  sw Y   |xY wwNr   r-   )
r   r   r   r   r   r.   r   assertIsNoner   r/   r1   s        r   test_timeout_disabledz"TimeoutTests.test_timeout_disabledH   s     '')YY[??4( 	& 	&B--%%%	& 	&YY[&"'')$2q!	&%	& 	& 	& 	&Z   >C1 CC1CCC"C1-C.A)C1CC1C."C%#C.*C1c                   K   t        j                         }|j                         }t        j                  d       4 d {   }t        j                  d       d {    d d d       d {    |j                         }| j                  j                                | j                  |j                                | j                  ||z
  d       y 7 7 z7 l# 1 d {  7  sw Y   |xY wwr6   )
r   r   r   r   r   r.   r   r7   r   r/   r1   s        r   test_timeout_at_disabledz%TimeoutTests.test_timeout_at_disabledT   s     '')YY[%%d+ 	& 	&r--%%%	& 	&YY[&"'')$2q!	&%	& 	& 	& 	&r9   c                 `  K   t        j                         }|j                         }| j                  t              5  t        j
                  d      4 d {   }t        j                  d       d {    d d d       d {    d d d        |j                         }| j                  j                                | j                  ||z
  d       | j                  ||j                         cxk  xr
 |k         y c        y 7 7 7 # 1 d {  7  sw Y   xY w# 1 sw Y   xY ww)Nr   r   r-   r   r   r   r   r   r   r   r   r   r/   r   r1   s        r   test_timeout_zerozTimeoutTests.test_timeout_zero`   s     '')YY[|, 	(q) ( (RmmB'''( (	( YY[

%2q!bggi-2-.-.('( ( ( (	( 	(w   :D.D"DD"D3D	4D8D"DD"A?D.D"	DD"D	DD	D""D+'D.c                 `  K   t        j                         }|j                         }| j                  t              5  t        j
                  d      4 d {   }t        j                  d       d {    d d d       d {    d d d        |j                         }| j                  j                                | j                  ||z
  d       | j                  ||j                         cxk  xr
 |k         y c        y 7 7 7 # 1 d {  7  sw Y   xY w# 1 sw Y   xY ww)Nr   r-   r=   r1   s        r   test_timeout_zero_sleep_zeroz)TimeoutTests.test_timeout_zero_sleep_zerol   s     '')YY[|, 	'q) ' 'RmmA&&&' '	' YY[

%2q!bggi-2-.-.'&' ' ' '	' 	'r?   c                 `  K   t        j                         }|j                         }| j                  t              5  t        j
                  d      4 d {   }t        j                  d       d {    d d d       d {    d d d        |j                         }| j                  j                                | j                  ||z
  d       | j                  ||j                         cxk\  xr
 |k         y c        y 7 7 7 # 1 d {  7  sw Y   xY w# 1 sw Y   xY ww)Nir   r-   r=   r1   s        r   #test_timeout_in_the_past_sleep_zeroz0TimeoutTests.test_timeout_in_the_past_sleep_zerox   s     '')YY[|, 	's+ ' 'rmmA&&&' '	' YY[

%2q!bggi-2-.-.'&' ' ' '	' 	'r?   c                   K   | j                  t              5  t        j                  d      4 d {   }t        7 
# 1 d {  7  sw Y   nxY w	 d d d        n# 1 sw Y   nxY w| j	                  j                                y w)Nr   )r   KeyErrorr   r   r.   r   r   s     r   test_foreign_exception_passedz*TimeoutTests.test_foreign_exception_passed   sw     x( 	t,      	 	 	 	&sE   B
A=A?AA	AA	A	B
A'#'B
c                   K   d }| j                  t              5  t        j                  d      4 d {     |        d {    d d d       d {    d d d        y 7 ,7 7 # 1 d {  7  sw Y   !xY w# 1 sw Y   y xY ww)Nc                  j   K   	 t        j                  d       d {    ddz   y 7 
# ddz   w xY ww)N   r   )r   r   r   r   r   crashz=TimeoutTests.test_foreign_exception_on_timeout.<locals>.crash   s1     mmA&&&! '!s    3) ') 3) 03r   )r   ZeroDivisionErrorr   r   )r   rJ   s     r   !test_foreign_exception_on_timeoutz.TimeoutTests.test_foreign_exception_on_timeout   s~     	
 01 	t,  g 	 	   	 	ss   B	A=A"A=A(A$A(	A=A&A=	B	"A=$A(&A=(A:	.A1/A:	6A==BB	c                   K   | j                  t        j                        5  t        j                  d      4 d {   }t        j                         j                          t        j                  d       d {    d d d       d {    d d d        | j                  j                                y 7 {7 >7 0# 1 d {  7  sw Y   @xY w# 1 sw Y   DxY ww)Nr   )	r   r   r%   r   current_taskcancelr   r.   r   r   s     r   1test_foreign_cancel_doesnt_timeout_if_not_expiredz>TimeoutTests.test_foreign_cancel_doesnt_timeout_if_not_expired   s     w556 	(r* ( (b$$&--/mmB'''( (	( 	&('( ( ( (	( 	(st    CCB8C ;B>;B:<B> CB<C(C8C:B><C>C	CC	CCCc                     K   d fd}t        j                   |             }| d {     j                  |j                                 j	                  |j                                y 7 Cw)Nc                  .  K    j                  t              5  t        j                  d      4 d {    t        j                  d       d {    d d d       d {    d d d        y 7 :7 7 # 1 d {  7  sw Y   !xY w# 1 sw Y   y xY ww)NgMbP?r   r   r   r   r   r   r   s   r   outerz<TimeoutTests.test_outer_task_is_not_cancelled.<locals>.outer   s     ""<0 ,"??51 , ,!--+++, ,, ,,+, , , ,, ,ss   BB	A.B	A4A0A4B	 A2!B	%	B.B	0A42B	4B	:A=;B	B		BB)returnN)r   create_taskr.   r&   r   done)r   rU   tasks   `  r    test_outer_task_is_not_cancelledz-TimeoutTests.test_outer_task_is_not_cancelled   sS     	,
 ""57+

)*		$ 	s   &A/A-AA/c           
      8  K   | j                  t              5  t        j                  d      4 d {    | j                  t              5  t        j                  d      4 d {    t	        j
                  d       t        j
                  d       d {    d d d       d {    d d d        d d d       d {    d d d        y 7 7 i7 97 +# 1 d {  7  sw Y   ;xY w# 1 sw Y   ?xY w7 6# 1 d {  7  sw Y   FxY w# 1 sw Y   y xY ww)NgMb`?皙?r   rI   )r   r   r   r   r   r   rT   s    r   test_nested_timeouts_concurrentz,TimeoutTests.test_nested_timeouts_concurrent   s     |, 	/u- / /&&|4 /&s3 / /

4(%mmA.../ /// /	/ 	/// // / / // // / / /	/ 	/s   DDCDC9C+&C'C+*.C	CC	C+(C
)C+-C95D C7D	DDC+C	C+C(CC($C++C40C97D9D	?D D	DDDc           
      :  K   t        j                         }d|_        |j                         }| j	                  t
              5  t        j                  d      4 d {    | j	                  t
              5  t        j                  d      4 d {    t        j                  d       t        j                  d       d {    d d d       d {    d d d        t        j                  d       d {    d d d       d {    d d d        |j                         }| j                  ||cxk  xr |dz   k         y c        y 7 7 7 7 # 1 d {  7  sw Y   xY w# 1 sw Y   xY w7 }7 o# 1 d {  7  sw Y   xY w# 1 sw Y   xY ww)Nr   r\   r   rI   )	r   r   slow_callback_durationr   r   r   r   r   r   )r   r    r2   r3   s       r   test_nested_timeouts_loop_busyz+TimeoutTests.test_nested_timeouts_loop_busy   sP     '')&(#YY[|, 	(s+ ( (&&|4 /&t4 / /

3%mmA.../ // mmB'''( (	( YY[b*BF*+*+(/ // / / // / (( ( ( (	( 	(s   AFFEF!E:7E*EE*.E	EE	E*E
E* E:8E69E:=FE8	FA FFE*E	E*E'EE'#E**E3/E:8F:F	 FF	FFFc                   K   t        j                         }|j                         |j                         dz   dz   }fd}t        j                   |             } d {   }| j                  |j                                |j                  |       | j                  |j                         |       |j                  d        | j                  |j                                |j                          | j                  t         j                        5  | d {    d d d        | j                  |j                                y 7 7 .# 1 sw Y   -xY ww)Nr      c                     K   t        j                        4 d {   } j                  |        t        j                  d       d {    d d d       d {    y 7 C7 7 	# 1 d {  7  sw Y   y xY ww)N2   )r   r   
set_resultr   )r   	deadline1futs    r   fz'TimeoutTests.test_reschedule.<locals>.f   sh     )))4 ( (r"mmB'''( ( ('( ( ( (sV   A<A!A<*A'A#A'A<A%A<#A'%A<'A9-A0.A95A<)r   r   create_futurer   rW   r   r   
rescheduler7   rO   r   r%   r.   r   )r   r    	deadline2rh   rY   r   rf   rg   s         @@r   test_reschedulezTimeoutTests.test_reschedule   s    '')  "IIK"$	N		(
 ""13'YI.
i I.
d"'')$w556 	JJ	&  	 	s=   A"E&E'B4EE!E"E&)EEEEc                    K   t        j                  d      4 d {   }| j                  t        |      d       d d d       d {    y 7 07 # 1 d {  7  sw Y   y xY ww)Nr   z"<Timeout \[active\] when=\d+\.\d*>)r   r   assertRegexreprr   s     r   test_repr_activezTimeoutTests.test_repr_active   sa     ??2& 	N 	N"T"X'LM	N 	N 	N 	N 	N 	N 	NC   A&AA&AA&AA&A&A#AA#A&c                 b  K   | j                  t              5  t        j                  d      4 d {   }t        j                  d       d {    d d d       d {    d d d        | j                  t              d       y 7 U7 :7 ,# 1 d {  7  sw Y   <xY w# 1 sw Y   @xY ww)Nr   r   z<Timeout [expired]>)r   r   r   r   r   r   ro   r   s     r   test_repr_expiredzTimeoutTests.test_repr_expired   s     |, 	(t, ( (mmB'''( (	( 	b#89('( ( ( (	( 	(ss   B/B#BB#BB
BB#B B#$$B/B#
BB#B 	BB 	B##B,(B/c                   K   t        j                  d      4 d {   }t        j                  d       d {    d d d       d {    | j                  t	              d       y 7 M7 27 $# 1 d {  7  sw Y   4xY ww)Nr   r   z<Timeout [finished]>)r   r   r   r   ro   r   s     r   test_repr_finishedzTimeoutTests.test_repr_finished   sp     ??2& 	# 	#"--"""	# 	# 	b#9:	#"	# 	# 	# 	#sS   BA*BA0A,A0B	A.
!B,A0.B0B6A97B>Bc                    K   t        j                  d       4 d {   }| j                  t        |      d       d d d       d {    y 7 07 # 1 d {  7  sw Y   y xY ww)Nz<Timeout [active] when=None>)r   r   r   ro   r   s     r   test_repr_disabledzTimeoutTests.test_repr_disabled   sa     ??4( 	H 	HBT"X'FG	H 	H 	H 	H 	H 	H 	Hrq   c                 t  K   | j                  t              5  t        j                  d      4 d {    	 t        j                  d       d {    | j                  t              5  t        j                  d      4 d {    t        j                  d       d {    d d d       d {    d d d        d d d       d {    d d d        y 7 7 7 V7 ;7 -# 1 d {  7  sw Y   =xY w# 1 sw Y   AxY w# | j                  t              5  t        j                  d      4 d {  7   t        j                  d       d {  7   d d d       d {  7   n# 1 d {  7  sw Y   nxY wd d d        w # 1 sw Y   w xY wxY w7 # 1 d {  7  sw Y   xY w# 1 sw Y   y xY ww)Nr   rI   r   rS   rT   s    r   test_nested_timeout_in_finallyz+TimeoutTests.test_nested_timeout_in_finally   s]    |, 	4t, 4 44!--*****<8 4#*??4#8 4 4")--"3334 44	4 4	4 	44*434 4 4 44 4**<8 4#*??4#8 4 4")--"3334 4 4 4 44 4 4	4 4 4 4	4 	4s\  F8F,CF,FDCDF*C6CC6C!	!C"C!	&C61C
2C66F>F,	F
F,	F8F,DC6C!	C6!C3'C*(C3/C66C?;FFF2D53F7E(EE(F!E$"F(E:.E1/E:6F=	FFFFF,F)	F F)	%F,,F51F8c           
        K   	 t        j                         j                          t        j                  d       d {    | j                  t              5  t        j                  d      4 d {    t        j                  d       d {    d d d       d {    d d d        y 7 n# t         j                  $ r Y w xY w7 U7 :7 ,# 1 d {  7  sw Y   <xY w# 1 sw Y   y xY w# | j                  t              5  t        j                  d      4 d {  7   t        j                  d       d {  7   d d d       d {  7   n# 1 d {  7  sw Y   nxY wd d d        w # 1 sw Y   w xY wxY ww)NrI   g        )r   rN   rO   r   r%   r   r   r   rT   s    r   test_timeout_after_cancellationz,TimeoutTests.test_timeout_after_cancellation   s.    	+  "))+--""" ""<0 +"??3/ + +!--***+ ++ +	 #%% 		+*+ + + ++ +""<0 +"??3/ + +!--***+ + + + ++ + +s  F:B/ B-B/ FC#2C3C#6CC
CC#C C#$	F-B/ /CC/ CC/ C#
CC#C 	CC 	C##C,(F/E?E3D" E3$E	=E >E	E3E
E3E'EE'#E3*	E?3E<8E??Fc           
        K   	 t        j                         j                          t        j                  d       d {    | j                  t         j                        5  t        j                  d      4 d {    t        j                         j                          t        j                  d       d {    d d d       d {    d d d        y 7 # t         j                  $ r Y w xY w7 w7 :7 ,# 1 d {  7  sw Y   <xY w# 1 sw Y   y xY w# | j                  t         j                        5  t        j                  d      4 d {  7   t        j                         j                          t        j                  d       d {  7   d d d       d {  7   n# 1 d {  7  sw Y   nxY wd d d        w # 1 sw Y   w xY wxY ww)NrI   g      ?r-   )r   rN   rO   r   r%   r   r   rT   s    r   )test_cancel_in_timeout_after_cancellationz6TimeoutTests.test_cancel_in_timeout_after_cancellation  sd    		+  "))+--""" ""7#9#9: +"??3/ + +((*113!--***+ ++ +	 #%% 		+*+ + + ++ +""7#9#9: +"??3/ + +((*113!--***+ + + + ++ + +s  G:C CC G"D<C4=D ;C:;C6<C: DC8D	GC C1.D 0C11D 4D6C:8D:D	 DD	DDG G;GEG;F-	FF-	G&F)
'G-F?3F64F?;G	GGGGc                 l  K   | j                  t        j                        5 }t        j                  d      4 d {    t        j                  d       d {    d d d       d {    d d d        j
                  j                  }y 7 P7 57 '# 1 d {  7  sw Y   7xY w# 1 sw Y   ;xY ww)Nr   rI   )r   r   r   r   r   	exception	__cause__)r   exccauses      r   test_timeout_exception_causez)TimeoutTests.test_timeout_exception_cause  s     w334 	'q) ' 'mmA&&&' '	' '''&' ' ' '	' 	'st    B4B(BB( BBBB()B*B(.B4B(BB(B%	BB%	!B((B1-B4N)__name__
__module____qualname__r   r"   r)   r+   r4   r8   r;   r>   rA   rC   rF   rL   rP   rZ   r]   r`   rl   rp   rs   ru   rw   ry   r{   r}   r   r   r   r   r   r      s    &.'"
#
*
"
"
/
/
/''	%/,&'4N:;H4	+
+9r   r   __main__)unittestr   r   r	   IsolatedAsyncioTestCaser   r   mainr   r   r   <module>r      sE    #   (I9833 I9X zHMMO r   