
    ,h"                       d dl mZ d dlZd dlmZmZmZ d dlZd dlZd dl	Z	ddl
mZ ddlmZ ddlmZmZmZmZmZmZmZmZ ddlmZ erd d	lmZmZ  ed
      ZddZdZedd       Zedd       Z ddZ! G d de      Z"ejF                  jI                  deeg      dd       Z%edd       Z&edd       Z'edd       Z(ddZ)d dZ*d dZ+ejF                  jY                  d      dd       Z-y)!    )annotationsN)TYPE_CHECKINGProtocolTypeVar   )_core)slow)TooSlowError
fail_afterfail_atmove_on_after
move_on_atsleepsleep_foreversleep_until)assert_checkpoints)	AwaitableCallableTc                   K   t        j                         }t        j                  |        d {   }t        j                         |z
  }t	        ||z         d||z  cxk  rdk  sJ  J |j                         S 7 Lw)NgG?g      ?)timeperf_counteroutcomeacaptureprintunwrap)fexpected_durstartresultdurs        [/var/www/html/Resume-Scraper/venv/lib/python3.12/site-packages/trio/_tests/test_timeouts.pycheck_takes_aboutr#      su     E##A&&F




%C	#
( #,33333==?1 's   -A>A<AA>g      ?c                   K   dd} t        | t               d {    dd}t        |t               d {    t               5  t        d       d {    d d d        t	        t        j                               5  t        j                  t
        j                        5  t        d       d {    d d d        d d d        y 7 7 7 v# 1 sw Y   uxY w7 '# 1 sw Y   &xY w# 1 sw Y   y xY ww)Nc                 h   K   t        t        j                         t        z          d {    y 7 wN)r   r   current_timeTARGET     r"   sleep_1ztest_sleep.<locals>.sleep_1C   s"     %,,.7888s   (202c                 >   K   t        t               d {    y 7 wr&   )r   r(   r)   r*   r"   sleep_2ztest_sleep.<locals>.sleep_2H   s     Fms   r   returnNone)
r#   r(   r   r   r   r   r'   pytestraises	Cancelled)r+   r-   s     r"   
test_sleepr4   A   s     9 GV
,,, GV
,,,		 Ah 
E&&(	) ]]5??+ 	(NN	  -
 - 	 
 	 	 s   C3CC3C	C3CCC%C3>$C'"C1C2C6C'>
C3	C3CCC3CC$	 C''C0,C3c                 H   K   dd} t        | t               d {    y 7 w)Nc                 ~   K   t        t              5  t        d       d {    d d d        y 7 # 1 sw Y   y xY wwNd   )r   r(   r   r)   r*   r"   sleep_3z#test_move_on_after.<locals>.sleep_3W   s8     6" 	*	 		 	    =1/1	=1:=r.   r#   r(   )r9   s    r"   test_move_on_afterr<   U   s      GV
,,,   " "c                   K   t         j                  j                         dfd} t        j                         4 d {   }|j	                  |        t        j                  t              5  t        j                          d {    d d d        d d d       d {    y 7 d7 # 1 sw Y   xY w7 # 1 d {  7  sw Y   y xY ww)Nc                    K   t         j                  j                          d {    t         j                  j                   t	        j
                  d              y 7 8wr&   )triolowlevel
checkpoint
rescheduler   Valuetasks   r"   	wake_taskz1test_cannot_wake_sleep_forever.<locals>.wake_taskb   s?     mm&&(((  w}}T':; 	)s   "A A9A r.   )	r@   rA   current_taskopen_nursery
start_soonr1   r2   RuntimeErrorr   )rG   nurseryrF   s     @r"   test_cannot_wake_sleep_foreverrM   ^   s     ==%%'D<   " ' 'g9%]]<( 	'$$&&&	'' ' ' '	' 	'' ' ' 'sq   =C B%C+B7/B)B'B)B7CB5 C'B))B2	.B75C7C	=C >C	Cc                      e Zd ZddZy)TimeoutScopec                    y r&   r)   )selfsecondsshields      r"   __call__zTimeoutScope.__call__m   s    r*   N)rR   floatrS   boolr/   ztrio.CancelScope)__name__
__module____qualname__rT   r)   r*   r"   rO   rO   l   s    Pr*   rO   scopec                @  K   t        j                         5 } | t        d      5 }|j                          	 t        j
                  j                          d {    d|_
        t        j                  t        j                        5  t        j
                  j                          d {    d d d        d d d        d d d        y 7 n# t        j                  $ r t        j                  d       Y w xY w7 M# 1 sw Y   LxY w# 1 sw Y   PxY w# 1 sw Y   y xY ww)NTrS   zshield didn't workF)r   CancelScoper(   cancelr@   rA   rB   r3   r1   failrS   r2   )rZ   outerinners      r"   test_context_shields_from_outerrb   p   s     				 -uVD'A -U	.--**,,, ]]4>>* 	---**,,,	-- - - -~~ 	.KK,-	. -	- 	-- - - -s   DDD!C
CC
*D"C:*C8
+C:/D7D?	DC

(C52D4C55D8C::D?DD	DDDc                 H   K   dd} t        | t               d {    y 7 w)Nc                    K   t        j                         5 } t        t        d      5  | j	                          t                d {    d d d        d d d        y 7 # 1 sw Y   xY w# 1 sw Y   y xY wwNTr\   )r   r]   r   r(   r^   r   r`   s    r"   rF   z:test_move_on_after_moves_on_even_if_shielded.<locals>.task   sg       	"E=+M 	"LLN  /!!		" 	" 	" "		" 	" 	" 	"sE   A7A+AAAA+	A7AA(	$A++A40A7r.   r;   rE   s    r"   ,test_move_on_after_moves_on_even_if_shieldedrg   }   s     " D&
)))r=   c                 H   K   dd} t        | t               d {    y 7 w)Nc                 N  K   t        j                  t              5  t        j                         5 } t        t        d      5  | j                          t                d {    d d d        d d d        d d d        y 7 # 1 sw Y   xY w# 1 sw Y    xY w# 1 sw Y   y xY wwre   )	r1   r2   r
   r   r]   r   r(   r^   r   rf   s    r"   rF   z4test_fail_after_fails_even_if_shielded.<locals>.task   s      ]]<( 	"%*;*;*= 	"
I
 	"
 LLN  /!!	" 	" 	" 	" "	" 	" 	" 	" 	" 	"s]   B%BBB!A?
"B&B.B6	B%?BB
BB	BB"B%r.   r;   rE   s    r"   &test_fail_after_fails_even_if_shieldedrj      s     " D&
)))r=   c                 :  K   dd} t        j                  t              5  t        | t               d {    d d d        t        t        j                         dz         5  t        d       d {    d d d        dd}t        j                  t              5  t        |t               d {    d d d        t        d      5  t        d       d {    d d d        y 7 # 1 sw Y   xY w7 # 1 sw Y   xY w7 P# 1 sw Y   OxY w7 7# 1 sw Y   y xY ww)Nc                    K   t        t        j                         t        z         5  t	        d       d {    d d d        y 7 # 1 sw Y   y xY wwr7   )r   r   r'   r(   r   r)   r*   r"   sleep_4ztest_fail.<locals>.sleep_4   sF     U'')F23 	*	 		 	s+   %AAAA	AAAAr8   r   c                 ~   K   t        t              5  t        d       d {    d d d        y 7 # 1 sw Y   y xY wwr7   )r   r(   r   r)   r*   r"   sleep_5ztest_fail.<locals>.sleep_5   s8      	*	 		 	r:   r.   )
r1   r2   r
   r#   r(   r   r   r'   r   r   )rm   ro   s     r"   	test_failrp      s      
|	$ 10001 
##%+	, Ah 
|	$ 10001 
C Ah  	11 1 	  	11 1 	 s   DC%C#C%(D!C30C11C35%DD.C?/D3DDDD	D#C%%C.*D1C33C<8D?DD
DDDDc                   K   t        d      } t        dft        | ft        | ffD ]9  \  }}t        j                  t
        d      5   ||       d {    d d d        ; t        dft        | ft        | ft        dft        | ft        | ffD ];  \  }}t        j                  t
        d      5   ||      5  	 d d d        d d d        = y 7 y# 1 sw Y   xY w# 1 sw Y   "xY w# 1 sw Y   bxY ww)Nnanz8^(deadline|`seconds`) must (not )*be (non-negative|NaN)$match)
rU   r   r   r1   r2   
ValueErrorr   r   r   r   )rr   funvalcms       r"   test_timeouts_raise_value_errorrz      s     ,C 
		c 	S
 ]]M
 	 c(NN		 		 
R	S	#			S C ]]M
 	 C 		 	 		 	$ 		 	sa   AC2CCCAC2.	C&7C9C&C2CC	C2C#C&&C/	+C2c                  K   t        d      }|j                  dk(  sJ | j                  d       t        j                         }|5 }|j
                  J |j                  |dz   k(  sJ |j                  dk(  sJ |dz   |_        |j                  |dz   k(  sJ |j                  dk(  sJ d|_        |j                  |dz   k(  sJ |j                  dk(  sJ 	 d d d        t        d      }|j                  du sJ d|_        |j                  du sJ | j                  d       t        j                         }|5 }|j                  |dz   k(  sJ ||u sJ 	 d d d        y # 1 sw Y   xY w# 1 sw Y   y xY ww)N         FT)r   relative_deadlinejumpr   r'   is_relativedeadlinerS   )
mock_clockrcsr   css       r"   test_timeout_deadline_on_entryr      sn    

C  A%%OOA E	 )~~%% {{eai''##q((ai{{eai''##q(( {{eai''##q((() 
C::CJ::OOA E	 {{eai''byy -) ), s8   AE4BEA!E47E(	E4E%!E4(E1-E4c                Z  K   t        d      }| j                  d       t        j                         }d}t	        j
                  t        |      5  |j                  |dz   k(  sJ 	 d d d        | j                  d       t	        j
                  t        |      5  |j                  |dz   k(  sJ 	 d d d        t	        j
                  t        |      5  d|_        d d d        |j                  dk(  sJ |j                  rJ t        d      }d}t	        j                  t        |      5  |j                  sJ 	 d d d        t	        j                  t        |      5  d|_        d d d        y # 1 sw Y   
xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   ZxY w# 1 sw Y   y xY ww)	Nr|   r}   zC^unentered relative cancel scope does not have an absolute deadlinert            zG^unentered non-relative cancel scope does not have a relative deadline$)r   r   r   r'   r1   warnsDeprecationWarningr   r   r   r2   rK   r   )r   r   r   	match_strs       r"   test_invalid_access_unenteredr      sn    	q	BOOA EUI	(		: ({{eai'''(OOA	(		: ({{eai'''( 
(		:  ;;!~~	AB 	R  
|9	5 $####$	|9	5 ! ! !)( (( ( $ $! !s   AF+E.&4F+E;0#F+FAF+*F:#F+F%	F+.E83F+;F F+FF+FF+F($F+znot implemented)reasonc                 p   K   t        d      } | j                  sJ t        d      }|j                  sJ y w)Nr|   )r   r   r   r   )
my_fail_atmy_fail_afters     r"    test_fail_access_before_enteringr     s3     JqMM****s   46)r   zCallable[[], Awaitable[T]]r   rU   r/   r   r.   )rZ   rO   r/   r0   )r   z_core.MockClockr/   r0   ).
__future__r   r   typingr   r   r   r   r1   r@    r   _core._tests.tutilr	   	_timeoutsr
   r   r   r   r   r   r   r   testingr   collections.abcr   r   r   r#   r(   r4   r<   rM   rO   markparametrizerb   rg   rj   rp   rz   r   r   xfailr   r)   r*   r"   <module>r      s(   "  3 3     %	 	 	 )3CL> 
  & - -'Q8 Q =*"=>	- ?	- * * * *$  ,BD!< +,+ -+r*   