
    2hh                         S SK r S SKrS SKrS SKJr  S SKrS SKJr  S r " S S5      r	 " S S\R                  5      r " S	 S
\5      r " S S\5      r " S S\5      r\S:X  a  \R                   " 5         gg)    N)mock)utilsc                  0    [         R                  " S 5        g N)asyncioset_event_loop_policy     F/opt/python-3.13.8/usr/lib/python3.13/test/test_asyncio/test_pep492.pytearDownModuler      s    !!$'r
   c                   0    \ rS rSrS rSS jrS rS rSrg)	FakeCoro   c                     g r   r	   )selfvalues     r   sendFakeCoro.send       r
   Nc                     g r   r	   )r   typvaltbs       r   throwFakeCoro.throw   r   r
   c                     g r   r	   r   s    r   closeFakeCoro.close   r   r
   c              #      #    S v   g 7fr   r	   r   s    r   	__await__FakeCoro.__await__   s        r	   )NN)	__name__
__module____qualname____firstlineno__r   r   r   r!   __static_attributes__r	   r
   r   r   r      s    r
   r   c                   (   ^  \ rS rSrU 4S jrSrU =r$ )BaseTest    c                 f  > [         TU ]  5         [        R                  " 5       U l        [
        R                  " 5       U R                  l        [
        R                  " 5       U R                  l        SU R                  R                  R                  l
        U R                  U R                  5        g )Nr	   )supersetUpr   BaseEventLooploopr   Mock_process_events	_selectorselectreturn_valueset_event_loop)r   	__class__s    r   r.   BaseTest.setUp"   sj    ))+	$(IIK		!"iik		24		""/DII&r
   r0   )r$   r%   r&   r'   r.   r(   __classcell__)r7   s   @r   r*   r*       s    ' 'r
   r*   c                        \ rS rSrS rS rSrg)	LockTests+   c                 H  ^  [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       /nU 4S jnU HC  nT R
                  R                  U" U5      5        T R                  UR                  5       5        ME     g )Nc                   >#    [         R                  " S5      I S h  vN   TR                  U R                  5       5        U  IS h  vN nTR	                  US 5        TR                  U R                  5       5        [         R                  " S5      I S h  vN   TR                  U R                  5       5        S S S 5      IS h  vN   TR                  U R                  5       5        g  N N NW N*! , IS h  vN  (       d  f       N?= f7f)N{Gz?)r   sleepassertFalselockedassertIs
assertTrue)lock_lockr   s     r   test7LockTests.test_context_manager_async_with.<locals>.test5   s     --%%%T[[]+tueT*.mmD))).	 t
 T[[]+ & * tttsj   DC*)DC,DAC2C.#C2:DC0%D,D.C20D2D	8C;9D	D	r   Lock	Condition	SemaphoreBoundedSemaphorer0   run_until_completerB   rC   r   
primitivesrH   	primitives   `   r   test_context_manager_async_with)LockTests.test_context_manager_async_with-   su    LLN$$&	

	, $III((i9Y--/0 $r
   c                 H  ^  [         R                  " 5       [         R                  " 5       [         R                  " 5       [         R                  " 5       /nU 4S jnU HC  nT R
                  R                  U" U5      5        T R                  UR                  5       5        ME     g )Nc                 :  >#    [         R                  " S5      I S h  vN   TR                  U R                  5       5        TR	                  [
        S5         U I S h  vN     S S S 5        S S S 5        g  NW N! , (       d  f       N= f! , (       d  f       g = f7f)Nr@   z#can't be used in 'await' expression)r   rA   rB   rC   assertRaisesRegex	TypeError)rF   r   s    r   rH   7LockTests.test_context_manager_with_await.<locals>.testK   sr     --%%%T[[]+''5  ZZ  	  &  Z	 sQ   BA59BB
A7B
"A9$B
,
B7B
9
B	B


BBrJ   rP   s   `   r   test_context_manager_with_await)LockTests.test_context_manager_with_awaitC   su    LLN$$&	

	 $III((i9Y--/0 $r
   r	   N)r$   r%   r&   r'   rS   rZ   r(   r	   r
   r   r<   r<   +   s    1,1r
   r<   c                       \ rS rSrS rSrg)StreamReaderTestsZ   c                    ^ Sn[         R                  " U R                  S9mTR                  U5        TR	                  5         U4S jnU R                  R                  U" 5       5      nU R                  U/ SQ5        g )Ns   line1
line2
line3r9   c                  V   >#    / n T  S h  vN nU R                  U5        M   N
 U $ 7fr   )append)datalinestreams     r   reader/StreamReaderTests.test_readline.<locals>.readerc   s-     D$ "dD!"fKs   )&$&)&))s   line1
s   line2
s   line3)r   StreamReaderr0   	feed_datafeed_eofrO   assertEqual)r   DATAre   rb   rd   s       @r   test_readlineStreamReaderTests.test_readline\   sb    %%%4995	 yy++FH5ABr
   r	   N)r$   r%   r&   r'   rl   r(   r	   r
   r   r]   r]   Z   s    Cr
   r]   c                   D    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
rg)CoroutineTestsm   c                    S nU" 5       n U R                  [        R                  " U5      5        UR                  5         U R                  [        R                  " [	        5       5      5        g ! UR                  5         f = f)Nc                     #    g 7fr   r	   r	   r
   r   foo,CoroutineTests.test_iscoroutine.<locals>.foop           )rE   r   iscoroutiner   r   )r   rs   fs      r   test_iscoroutineCoroutineTests.test_iscoroutineo   sW    E	OOG//23GGI++HJ78 GGIs   %A/ /Bc                 ^    S nU R                  [        R                  " U" 5       5      5        g )Nc               3      #    S v   g 7fr   r	   r	   r
   r   rs   6CoroutineTests.test_iscoroutine_generator.<locals>.foo{   s     5r#   )rB   r   rw   r   rs   s     r   test_iscoroutine_generator)CoroutineTests.test_iscoroutine_generatorz   s     ,,SU34r
   c                 T    S nU R                  [        R                  " U5      5        g )Nc                     #    g 7fr   r	   r	   r
   r   rs   4CoroutineTests.test_iscoroutinefunction.<locals>.foo   ru   rv   )rE   r   iscoroutinefunctionr~   s     r   test_iscoroutinefunction'CoroutineTests.test_iscoroutinefunction   s    33C89r
   c                   ^ S mU4S jnU R                   R                  U" 5       5      nU R                  US5        U R                   R                  S5        U R                   R                  U" 5       5      nU R                  US5        g )Nc                     #    g7f)Nspamr	   r	   r
   r   bar5CoroutineTests.test_async_def_coroutines.<locals>.bar   s     rv   c                  .   >#    T " 5       I S h  vN $  N7fr   r	   )r   s   r   rs   5CoroutineTests.test_async_def_coroutines.<locals>.foo   s     ;;s   r   T)r0   rO   rj   	set_debug)r   rs   rb   r   s      @r   test_async_def_coroutines(CoroutineTests.test_async_def_coroutines   so    		 yy++CE2v& 			D!yy++CE2v&r
   c                   ^  U 4S jnT R                  [        R                  " 5       S5        T R                  R	                  S5        T R                  R                  U" 5       5        T R                  [        R                  " 5       S5        g )Nc                  \   >#    T R                  [        R                  " 5       S:  5        g 7fNr   )rE   sys#get_coroutine_origin_tracking_depthr   s   r   startOCoroutineTests.test_debug_mode_manages_coroutine_origin_tracking.<locals>.start   s      OOCCCEIJs   ),r   T)rj   r   r   r0   r   rO   )r   r   s   ` r   1test_debug_mode_manages_coroutine_origin_tracking@CoroutineTests.test_debug_mode_manages_coroutine_origin_tracking   sc    	K 	@@BAF		D!		$$UW-@@BAFr
   c                    ^ ^^ S m[         R                  U4S j5       mUU 4S jnT R                  R                  U" 5       5      nT R	                  US5        g )Nc               3   $   #    S S h  vN   g N7f)Nr	   r   r	   r	   r
   r   gen0CoroutineTests.test_types_coroutine.<locals>.gen   s     MM s   c                     > T " 5       $ r   r	   )r   s   r   func1CoroutineTests.test_types_coroutine.<locals>.func   s
    5Lr
   c                  r   >#    T" 5       n TR                  U [        R                  5        U I S h  vN $  N7fr   )assertIsInstancetypes_GeneratorWrapper)wrapperr   r   s    r   coro1CoroutineTests.test_types_coroutine.<locals>.coro   s-     fG!!'5+B+BC = =s   -757r   )r   	coroutiner0   rO   rj   )r   r   rb   r   r   s   `  @@r   test_types_coroutine#CoroutineTests.test_types_coroutine   sM    	 
	 
		!
 yy++DF3v&r
   c                 l   ^ ^^ S mUU 4S jmUUU 4S jnT R                   R                  U" 5       5        g )Nc                     >#    TR                  SS9n  TR                  U S   R                  R                  S5        S n g ! S n f = f7f)N   )limitr   rs   )	get_stackrj   f_codeco_name)rx   Tr   s    r   rs   1CoroutineTests.test_task_print_stack.<locals>.foo   sC     !$A  1!4!4e<Ds   A)A  A AAc                  n   >#    [         R                  " T" 5       TR                  S9m T I S h  vN   g  N7f)Nr9   )r   ensure_futurer0   )r   rs   r   s   r   runner4CoroutineTests.test_task_print_stack.<locals>.runner   s%     %%ce$))<AGGs   *535)r0   rO   )r   r   r   rs   s   ` @@r   test_task_print_stack$CoroutineTests.test_task_print_stack   s(    		
 			$$VX.r
   c                    ^ ^ S mUU 4S jnT R                   R                  S5        T R                  [        SS9   T R                   R	                  U" 5       5        S S S 5        g ! , (       d  f       g = f)Nc                  L   #    [         R                  " S5      I S h  vN   g  N7f)Ng?)r   rA   r	   r
   r   afunc/CoroutineTests.test_double_await.<locals>.afunc   s     --$$$s   $"$c                     >#    T" 5       n TR                   R                  U 5      n [        R                  " S5      I S h  vN   U I S h  vN   UR	                  5         g  N N! UR	                  5         f = f7fr   )r0   create_taskr   rA   cancel)r   tr   r   s     r   r   0CoroutineTests.test_double_await.<locals>.runner   sZ     7D		%%d+AmmA&&&


 '
s@   #A9A$  A 	A$ 
A"A$ A9 A$ "A$ $A66A9Tz"coroutine is being awaited already)msg)r0   r   assertRaisesRuntimeErrorrO   )r   r   r   s   ` @r   test_double_await CoroutineTests.test_double_await   s`    	%	 			D!8  : II((2	: : :s   !A&&
A4r	   N)r$   r%   r&   r'   ry   r   r   r   r   r   r   r   r(   r	   r
   r   ro   ro   m   s+    	95:'G'"/"3r
   ro   __main__)r   r   unittestr   r   test.test_asyncior   
test_utilsr   r   TestCaser*   r<   r]   ro   r$   mainr	   r
   r   <module>r      s|         1(
 'z"" ',1 ,1^C C&c3X c3L zMMO r
   