
    daf                     4   d dl Z d dlZd dlZd dlZd dl mZ d Z G d d      Z ej                   eed      d       G d d	eej                               Z
 G d
 deej                        Z G d dej                        Zedk(  r ej                          yy)    N)tasksc                  .    t        j                  d        y N)asyncioset_event_loop_policy     :/root/Python-3.12.4/Lib/test/test_asyncio/test_futures2.pytearDownModuler   	   s    !!$'r	   c                       e Zd Zd Zd Zd Zy)FutureTestsc                 d  K   d }| j                   |             }t        d      D ]  }	 | d {    | j                  d         y 7 # t        $ rY}dj	                  t        j                  |j                              }| j                  |j                  d      d       Y d }~d }~ww xY ww)Nc                      K   t        d      w)N*   )	TypeErrorr   r	   r
   	raise_excz4FutureTests.test_future_traceback.<locals>.raise_exc   s     B-s      zTypeError was not raised zawait future   )
clsrangefailr   join	traceback	format_tb__traceback__assertEqualcount)selfr   future_etbs         r
   test_future_tracebackz!FutureTests.test_future_traceback   s     	  )+&q 	6A6
 		45	6 >WWY00AB  .!91==>s>   (B0AA	AB0	A	B-AB(#B0(B--B0c                 2   K   t        j                  dd      d fd}fd}t        j                         }|j	                  |        j                   |              t        j                  d       d {     j                         y 7 w)NnamefoodefaultFc                  J    j                  j                         d       dy NbarTr   getargsexc_handler_calledr&   r   s    r
   exc_handlerzFFutureTests.test_task_exc_handler_correct_context.<locals>.exc_handler$       TXXZ/!%r	   c                  :   K    j                  d       ddz   y wNr,   r   r   setr&   s   r
   taskz?FutureTests.test_task_exc_handler_correct_context.<locals>.task)   s     HHUOaCs   r   )contextvars
ContextVarr   get_running_loopset_exception_handlerr   sleep
assertTrue)r   r2   r9   loopr1   r&   s   `   @@r
   %test_task_exc_handler_correct_contextz1FutureTests.test_task_exc_handler_correct_context   sy     %%fe<"	&
	 '')"";/mmA*+ 	s   A9B>B?Bc                 (   K   t        j                  dd      d fd}fd}t        j                         }|j	                  |       |j                  |       t        j                  d       d {     j                         y 7 w)Nr&   r'   r(   Fc                  J    j                  j                         d       dy r+   r-   r/   s    r
   r2   zHFutureTests.test_handle_exc_handler_correct_context.<locals>.exc_handler8   r3   r	   c                  2     j                  d       ddz   y r5   r6   r8   s   r
   callbackzEFutureTests.test_handle_exc_handler_correct_context.<locals>.callback=   s    HHUOaCr	   r   )r:   r;   r   r<   r=   	call_soonr>   r?   )r   r2   rE   r@   r1   r&   s   `   @@r
   'test_handle_exc_handler_correct_contextz3FutureTests.test_handle_exc_handler_correct_context3   sw     %%fe<"	&
	 '')"";/x mmA*+ 	s   A4B9B:BN)__name__
__module____qualname__r$   rA   rG   r   r	   r
   r   r      s    6 ,(,r	   r   _CTaskzrequires the C _asyncio modulec                   $    e Zd Zej                  Zy)CFutureTestsN)rH   rI   rJ   r   rK   r   r   r	   r
   rM   rM   G   s     ,,Cr	   rM   c                   $    e Zd Zej                  Zy)PyFutureTestsN)rH   rI   rJ   r   _PyTaskr   r   r	   r
   rO   rO   L   s    
--Cr	   rO   c                       e Zd Zd Zy)FutureReprTestsc                    K   d }t        j                  t        j                   |             d       d {   }| j                  dt	        |             y 7  w)Nc                  2   K   t        j                         S wr   )r   	all_tasksr   r	   r
   funczCFutureReprTests.test_recursive_repr_for_pending_tasks.<locals>.funcV   s     $$&&s   
   )timeoutz...)r   wait_forTaskassertInrepr)r   rV   waiters      r
   %test_recursive_repr_for_pending_tasksz5FutureReprTests.test_recursive_repr_for_pending_tasksQ   sE     
	' ''TV(<RHHeT&\* Is   6AA!AN)rH   rI   rJ   r^   r   r	   r
   rR   rR   O   s    
+r	   rR   __main__)r   r:   r   unittestr   r   r   
skipUnlesshasattrIsolatedAsyncioTestCaserM   rO   rR   rH   mainr   r	   r
   <module>re      s        (8, 8,t WUH-79; @ @ 9K!A!A +h66 + zHMMO r	   