
    9bhy:                        d dl Z d dlZd dlZd dl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 d Zd Z G d dej                        Z G d	 d
ej"                        Z G d de      Z G d de      Zedk(  r ej,                          yy)    N)utils)mock)patchc                  .    t        j                  d        y N)asyncioset_event_loop_policy     H/opt/python-3.12.12/usr/lib/python3.12/test/test_asyncio/test_runners.pytearDownModuler      s    !!$'r   c                  ,    t        j                          y r   )_threadinterrupt_mainr
   r   r   interrupt_selfr      s    r   c                   $    e Zd Zd Zd Zd Zd Zy)
TestPolicyc                      || _         d | _        y r   )loop_factoryloop)selfr   s     r   __init__zTestPolicy.__init__   s    (	r   c                     t         r   )RuntimeErrorr   s    r   get_event_loopzTestPolicy.get_event_loop   s    r   c                 "    | j                         S r   r   r   s    r   new_event_loopzTestPolicy.new_event_loop   s      ""r   c                     ||| _         y y r   r   )r   r   s     r   set_event_loopzTestPolicy.set_event_loop"   s     DI r   N)__name__
__module____qualname__r   r   r   r"   r
   r   r   r   r      s    #r   r   c                   .     e Zd Zd Z fdZ fdZ xZS )BaseTestc                 D   t        j                         t        j                         _        t        j                         _        d j
                  _        t        j                         _        dj                  j                  _        d_	        fd}|_
        S )Nr
   Fc                     K   d _         y wNT)shutdown_ag_runr!   s   r   shutdown_asyncgensz-BaseTest.new_loop.<locals>.shutdown_asyncgens5   s     #'D s   	)r   BaseEventLoopr   Mock_process_events_write_to_selfreturn_value	_selectorselectr+   r,   )r   r,   r   s     @r   new_loopzBaseTest.new_loop+   st    $$&#yy{"iik+/(-/*$	("4r   c                 v    t         |           t        | j                        }t	        j
                  |       y r   )supersetUpr   r4   r   r	   r   policy	__class__s     r   r7   zBaseTest.setUp;   s(    DMM*%%f-r   c                 (   t        j                         }|j                  N| j                  |j                  j	                                | j                  |j                  j
                         t        j                  d        t        | !          y r   )	r   get_event_loop_policyr   
assertTrue	is_closedr+   r	   r6   tearDownr8   s     r   r?   zBaseTest.tearDownA   sc    ..0;;"OOFKK1134OOFKK778%%d+r   )r#   r$   r%   r4   r7   r?   __classcell__r:   s   @r   r'   r'   )   s     . r   r'   c                   N    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y)RunTestsc                 ^    d }| j                  t        j                   |             d       y )Nc                  J   K   t        j                  d       d {    y7 wNr   *   r   sleepr
   r   r   mainz.RunTests.test_asyncio_run_return.<locals>.mainN         --""" #   #!#rG   )assertEqualr   runr   rJ   s     r   test_asyncio_run_returnz RunTests.test_asyncio_run_returnM   s$    	 	TV,b1r   c                     d }| j                  t        d      5  t        j                   |              d d d        y # 1 sw Y   y xY w)Nc                  ^   K   t        j                  d       d {    t        d      7 w)Nr   spam)r   rI   
ValueErrorr
   r   r   rJ   z.RunTests.test_asyncio_run_raises.<locals>.mainU   s(     --"""V$$ #s   -+-rS   )assertRaisesRegexrT   r   rN   rO   s     r   test_asyncio_run_raisesz RunTests.test_asyncio_run_raisesT   s3    	% ##J7KK 877s	   >Ac                     dd hD ]Q  }| j                  |      5  | j                  t        d      5  t        j                  |       d d d        d d d        S y # 1 sw Y   xY w# 1 sw Y   jxY w)N   c                       y r   r
   r
   r   r   <lambda>z5RunTests.test_asyncio_run_only_coro.<locals>.<lambda>]   s    Tr   )obja coroutine was expected)subTestrU   rT   r   rN   )r   os     r   test_asyncio_run_only_coroz#RunTests.test_asyncio_run_only_coro\   sb    \"A!$**:+EGAG %$ #G G %$s"   A'AA'A$ A''A0	c                      fd}t        j                   |d      d       t        j                   |d      d       t        j                  dd       5  t        j                   |d             t        j                   |d      d       d d d        t        j                  dd       5  t        j                   |d      d       t        j                   |d             d d d        y # 1 sw Y   bxY w# 1 sw Y   y xY w)Nc                 v   K   t        j                         }j                  |j                         |        y wr   )r   r   assertIs	get_debug)expectedr   r   s     r   rJ   z-RunTests.test_asyncio_run_debug.<locals>.maind   s*     ))+DMM$..*H5s   69FdebugTz!asyncio.coroutines._is_debug_modec                       yr*   r
   r
   r   r   rZ   z1RunTests.test_asyncio_run_debug.<locals>.<lambda>j   s    Tr   c                       y)NFr
   r
   r   r   rZ   z1RunTests.test_asyncio_run_debug.<locals>.<lambda>m   s    Ur   )r   rN   r   r   rO   s   ` r   test_asyncio_run_debugzRunTests.test_asyncio_run_debugc   s    	6 	DKu-DJd+ZZ;\JKKT
#KKU51 K ZZ;]KKKT
$/KKU$ LK KJ LKs   9C209C>2C;>Dc                     fd| j                  t        d      5  t        j                                 d d d        y # 1 sw Y   y xY w)Nc                     K           } 	 t        j                  |        | j                          y # | j                          w xY wwr   )r   rN   close)cororJ   s    r   rJ   z9RunTests.test_asyncio_run_from_running_loop.<locals>.mainr   s1     6DD!



s   A2 AAAzcannot be called from a running)rU   r   r   rN   rO   s    @r   "test_asyncio_run_from_running_loopz+RunTests.test_asyncio_run_from_running_loopq   s?    	 ##L$EGKKG G Gs   AA
c                     d d fd}| j                  t        j                   |             d       | j                  j	                                y )Nc                  J   K   t        j                  d       d {    y 7 w)N皙?rH   r
   r   r   leftoverzARunTests.test_asyncio_run_cancels_hanging_tasks.<locals>.leftover   s     --$$$rL   c                  B   K   t        j                                 ywN{   )r   create_task)rr   lo_tasks   r   rJ   z=RunTests.test_asyncio_run_cancels_hanging_tasks.<locals>.main   s     ))(*5Gs   ru   )rM   r   rN   r=   done)r   rJ   rr   rw   s     @@r   &test_asyncio_run_cancels_hanging_tasksz/RunTests.test_asyncio_run_cancels_hanging_tasks}   sA    	%	
 	TV,c2'r   c                 Z   d t        j                         d fd}| j                  t        j                   |             d       | j                  j                                j                  t        j                  d      t        j                  t              d       y )Nc                     K   	 t        j                  d       d {    y 7 # t         j                  $ r ddz   Y y w xY ww)Nrq   rX   r   )r   rI   CancelledErrorr
   r   r   rr   zHRunTests.test_asyncio_run_reports_hanging_tasks_errors.<locals>.leftover   s8     mmC((()) As,   A$ "$ A$ ?A?Ac                  x   K   t        j                         } | _        t        j                                ywrt   )r   get_running_loopcall_exception_handlerrv   )r   call_exc_handler_mockrr   rw   s    r   rJ   zDRunTests.test_asyncio_run_reports_hanging_tasks_errors.<locals>.main   s4     ++-D*?D' ))(*5Gs   7:ru   zasyncio.run.*shutdown)messagetask	exception)r   r.   rM   r   rN   r=   rx   assert_called_with
test_utilsMockPatternMockInstanceOfZeroDivisionError)r   rJ   r   rr   rw   s     @@@r   -test_asyncio_run_reports_hanging_tasks_errorsz6RunTests.test_asyncio_run_reports_hanging_tasks_errors   s     $				 	TV,c2'00!--.FG#223DE2
 	r   c                 ~   d d  G d dt               d fdfd}| j                        5  t        j                   |              d d d        | j	                  j                                | j                  j                         | j                  j                         y # 1 sw Y   _xY w)Nc                       e Zd Zy)SRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.FancyExitN)r#   r$   r%   r
   r   r   	FancyExitr      s    r   r   c                 V   K   	 d t        j                  d       d {    #7 wNrX   rH   r
   r   r   fidgetzPRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.fidget   s(     mmA&&& &s   )')c                  x   K           	 2 3 d {   } 
7 6 y # t         j                  $ r ddz   Y y w xY ww)NrX   r   )r   r|   )the_meaning_of_lifer   spinners    r   spinzNRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.spin   sD     hG18 -)) As4   :   :7:7:c                     K   t        j                         } t        j                         | _        t        j
                                wr   )r   r~   r   r.   r   rv   )r   r   lazyboyr   s    r   rJ   zNRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.main   s<     ++-D*.))+D' ))$&1GOs   A
A)
	ExceptionassertRaisesr   rN   r=   rx   assertIsNoneag_frameassertFalse
ag_running)r   rJ   r   r   r   r   r   s     @@@@@r   7test_asyncio_run_closes_gens_after_hanging_tasks_errorsz@RunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors   s    		 		'
		 y)KK * 	''**+++, *)s   B33B<c                     d }t        j                         }t        j                         |_        t        j
                   |              | j                  |j                  j                         y )Nc                  J   K   t        j                  d       d {    y7 wrF   rH   r
   r   r   rJ   z6RunTests.test_asyncio_run_set_event_loop.<locals>.main   rK   rL   )r   r<   r   r.   r"   rN   r=   called)r   rJ   r9   s      r   test_asyncio_run_set_event_loopz(RunTests.test_asyncio_run_set_event_loop   sK    	 ..0 $		DF--445r   c                      G d d      d } fd}t        j                  t        |              j                  t         j                        5  t        j
                   |              d d d        y # 1 sw Y   y xY w)Nc                   R    e Zd Zd Zd Zd Zd Zed        Zd Z	d Z
d Zd	 Zd
 Zy)8RunTests.test_asyncio_run_without_uncancel.<locals>.Taskc                 >    t        j                  |fd|i|| _        y )Nr   )r   Task_task)r   r   rm   kwargss       r   r   zARunTests.test_asyncio_run_without_uncancel.<locals>.Task.__init__   s    $\\$DTDVD
r   c                 :     | j                   j                  |i |S r   )r   cancelr   argsr   s      r   r   z?RunTests.test_asyncio_run_without_uncancel.<locals>.Task.cancel       (tzz(($9&99r   c                 :     | j                   j                  |i |S r   )r   add_done_callbackr   s      r   r   zJRunTests.test_asyncio_run_without_uncancel.<locals>.Task.add_done_callback   s    3tzz33TDVDDr   c                 :     | j                   j                  |i |S r   )r   remove_done_callbackr   s      r   r   zMRunTests.test_asyncio_run_without_uncancel.<locals>.Task.remove_done_callback   s    6tzz66GGGr   c                 .    | j                   j                  S r   )r   _asyncio_future_blockingr   s    r   r   zQRunTests.test_asyncio_run_without_uncancel.<locals>.Task._asyncio_future_blocking   s    zz:::r   c                 :     | j                   j                  |i |S r   )r   resultr   s      r   r   z?RunTests.test_asyncio_run_without_uncancel.<locals>.Task.result   r   r   c                 :     | j                   j                  |i |S r   )r   rx   r   s      r   rx   z=RunTests.test_asyncio_run_without_uncancel.<locals>.Task.done   s    &tzz777r   c                 :     | j                   j                  |i |S r   )r   	cancelledr   s      r   r   zBRunTests.test_asyncio_run_without_uncancel.<locals>.Task.cancelled       +tzz++T<V<<r   c                 :     | j                   j                  |i |S r   )r   r   r   s      r   r   zBRunTests.test_asyncio_run_without_uncancel.<locals>.Task.exception   r   r   c                 :     | j                   j                  |i |S r   )r   get_loopr   s      r   r   zARunTests.test_asyncio_run_without_uncancel.<locals>.Task.get_loop   s    *tzz**D;F;;r   N)r#   r$   r%   r   r   r   r   propertyr   r   rx   r   r   r   r
   r   r   r   r      sF    E:EH ; ;:8==<r   r   c                  x   K   t                t        j                         j                          d {    y 7 wr   )r   r   Eventwaitr
   r   r   rJ   z8RunTests.test_asyncio_run_without_uncancel.<locals>.main   s$     --/&&(((s   0:8:c                  J    j                         } | j                         | S r   )r4   set_task_factory)r   r   r   s    r   r   zBRunTests.test_asyncio_run_without_uncancel.<locals>.new_event_loop   s!    ==?D!!$'Kr   )r   r	   r   r   r|   rN   )r   rJ   r   r   s   `  @r   !test_asyncio_run_without_uncancelz*RunTests.test_asyncio_run_without_uncancel   s[    	< 	<B	)	
 	%%j&@Aw556KK 766s   A77B c                      t        j                         } j                         x|_         fd}t	        j
                   |       |       |j                          y )Nc                  V   K   j                  t        j                                 y wr   )rM   r   r~   )r   r   s   r   rJ   z4RunTests.test_asyncio_run_loop_factory.<locals>.main  s      W557>s   &)r   )r   r.   r4   r1   r   rN   assert_called_once_with)r   factoryrJ   r   s   `  @r   test_asyncio_run_loop_factoryz&RunTests.test_asyncio_run_loop_factory  sD    ))+&*mmo5w#	? 	DF1'')r   N)r#   r$   r%   rP   rV   r_   ri   rn   ry   r   r   r   r   r   r
   r   r   rC   rC   K   s;    2 %
 (6#-J
6. `*r   rC   c                   r    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y)RunnerTestsc                     t        j                  d      5 }| j                  |j                         j	                                d d d        y # 1 sw Y   y xY w)NFre   )r   Runnerr   r   rc   r   runners     r   test_non_debugzRunnerTests.test_non_debug  s:    ^^%(FV__.88:; )((   .AAc                     t        j                  d      5 }| j                  |j                         j	                                d d d        y # 1 sw Y   y xY w)NTre   )r   r   r=   r   rc   r   s     r   
test_debugzRunnerTests.test_debug  s8    ^^$'6OOFOO-779: (''r   c                     t        j                         t        j                  fd      5 }| j	                  |j                                d d d        y # 1 sw Y   y xY w)Nc                       S r   r
   r!   s   r   rZ   z1RunnerTests.test_custom_factory.<locals>.<lambda>  s    r   r   )r   r.   r   r   rb   r   r   r   r   s     @r   test_custom_factoryzRunnerTests.test_custom_factory  s=    yy{^^6&MM&//+T2 766s   !AA"c                 |   d }t        j                         5 }| j                  d|j                   |                    |j	                         }d d d        | j                  t        d      5  j	                          d d d        | j                  j                                y # 1 sw Y   XxY w# 1 sw Y   5xY w)Nc                  J   K   t        j                  d       d {    y7 w)Nr   rx   rH   r
   r   r   fzRunnerTests.test_run.<locals>.f"  s      --""" #rL   rx   Runner is closed)	r   r   rM   rN   r   rU   r   r=   r>   )r   r   r   r   s       r   test_runzRunnerTests.test_run!  s    	 ^^VVZZ_5??$D  ##
 OO	
 	() 
 
s   7B&-B2&B/2B;c                     t        j                         5 }| j                  t        d      5  |j	                  d       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr\   ru   )r   r   rU   rT   rN   r   s     r   test_run_non_corozRunnerTests.test_run_non_coro2  sP    ^^''* 

3	   s!   AAAA	AA$c                 
   t        j                         5 }| j                  t        d      5  |j	                         j                         }|j                  |       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nr\   )r   r   rU   rT   r   create_futurerN   )r   r   futs      r   test_run_futurezRunnerTests.test_run_future:  se    ^^''* oo'557

3   s"   A90A-A9-A6	2A99Bc                     t        j                         }|j                         }|j                          | j	                  t
        d      5  |j                          d d d        | j                  |j                                y # 1 sw Y   )xY w)Nr   )r   r   r   rl   rU   r   r=   r>   r   s      r   test_explicit_closezRunnerTests.test_explicit_closeC  sh    ! ##"
 OO	
 	()
 
s   BBc                    t        j                         }|j                         }|j                          | j	                  |j                                |j                          | j	                  |j                                y r   )r   r   r   rl   r=   r>   r   s      r   test_double_closezRunnerTests.test_double_closeO  sT    ! () 	()r   c                 p   g fd}t        j                         }|5  |j                   |d             d d d        | j                  t        d      5  |5  |j                   |d             d d d        d d d        | j                  dg       y # 1 sw Y   ^xY w# 1 sw Y   1xY w# 1 sw Y   5xY w)Nc                 0   K   j                  |        y wr   )append)argrets    r   r   z4RunnerTests.test_second_with_block_raises.<locals>.f]  s     JJsOs   rX   r      )r   r   rN   rU   r   rM   )r   r   r   r   s      @r   test_second_with_block_raisesz)RunnerTests.test_second_with_block_raisesZ  s    	 !JJqt  ##
 

1Q4  	
 	!c" V 	
 
s/   BB,B 0B,B B)	%B,,B5c           	         t        j                  dd      fd}d }t        j                         5 }| j	                  d|j                   |d                   | j	                  d|j                   |d                   | j	                  d|j                   |             j                               d d d        y # 1 sw Y   y xY w)Ncvar)defaultc                    K   j                         }t        j                  d       d {    j                  |        |S 7 wNr   )getr   rI   set)valoldr   s     r   r   z-RunnerTests.test_run_keeps_context.<locals>.fp  s9     ((*C--"""HHSMJ #s   )AAAc                  2   K   t        j                         S wr   )contextvarscopy_contextr
   r   r   get_contextz7RunnerTests.test_run_keeps_context.<locals>.get_contextv  s     ++--s   rX   r   )r   
ContextVarr   r   rM   rN   r   )r   r   r   r   r   s       @r   test_run_keeps_contextz"RunnerTests.test_run_keeps_contextm  s    %%fb9		. ^^RAaD!12Q

1Q4 01Q

;= 9 = =d CD	 s   BCCc                 j   d fd}t        j                         5 | j                  t        d      5  | j	                  t
        t        j                  d            5  j                   |              d d d        d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   y xY w)Nc                     K   y wr   r
   r
   r   r   gz)RunnerTests.test_recursive_run.<locals>.g  	        c                  :   K   j                                  y wr   )rN   )r   r   s   r   r   z)RunnerTests.test_recursive_run.<locals>.f  s     JJqsOs   zcoroutine .+ was never awaitedz7Runner.run() cannot be called from a running event loop)	r   r   assertWarnsRegexRuntimeWarningrU   r   reescaperN   )r   r   r   r   s     @@r   test_recursive_runzRunnerTests.test_recursive_run  s    		 ^^&&0 ++ IIQ JJqsO	 
 	  s:   B)*B!B8B B)BBB&	"B))B2c                 *     fd}t        j                         5 }|j                         j                  dt                j                  t              5  |j                   |              d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc                     K    j                  t        j                        5  	 t        j                  d       d {    7 # 1 sw Y   t        j                         xY wwr   )r   r   r|   rI   r   s   r   rm   z2RunnerTests.test_interrupt_call_soon.<locals>.coro  sO     ""7#9#9:!--*** * ; ((**s     A$AAAA!
A$rq   )r   r   r   
call_laterr   r   KeyboardInterruptrN   r   rm   r   s   `  r   test_interrupt_call_soonz$RunnerTests.test_interrupt_call_soon  sg    
	+ ^^OO((n=""#45

46" 6 55 s#   :B	A=,B	=B	B		Bc                      fd}t        j                         5 }|j                         j                         }|j                         j	                  dt
                j                  t              5  |j                   ||             d d d         j                  |j                                d d d        y # 1 sw Y   1xY w# 1 sw Y   y xY w)Nc                    K   j                  t        j                        5  |  d {    d d d        t        j                         7  # 1 sw Y   t        j                         xY wwr   )r   r   r|   )r   r   s    r   rm   z-RunnerTests.test_interrupt_wait.<locals>.coro  sP     ""7#9#9:		 ;((**  ;((**s+    A+AA
AA+
AA(A+rq   )r   r   r   r   r
  r   r   r  rN   r=   r   )r   rm   r   r   s   `   r   test_interrupt_waitzRunnerTests.test_interrupt_wait  s    	+
 ^^//#113COO((n=""#45

49% 6 OOCMMO,  65	 s$   AC3B;'C;C	 CCc                     d fd}t        j                         5 }| j                  t         j                        5  |j	                   |              d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc                 ~   K   t        j                  d       d {    | j                          t                y 7 wr   )r   rI   r   r   )r   s    r   subtaskz:RunnerTests.test_interrupt_cancelled_task.<locals>.subtask  s,     --"""KKM #s   =; =c                     K   t        j                    t        j                                      t        j                  d       d {    y 7 w)N
   )r   rv   current_taskrI   )r  s   r   rm   z7RunnerTests.test_interrupt_cancelled_task.<locals>.coro  s5     (<(<(> ?@--###s   AA	A
A)r   r   r   r|   rN   )r   rm   r   r  s      @r   test_interrupt_cancelled_taskz)RunnerTests.test_interrupt_cancelled_task  sZ    	
	$ ^^""7#9#9:

46" ; :: s"    A2A&A2&A/	+A22A;c                     d }t        j                         5 }t        j                  t        dt        d            5  |j                   |              d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)Nc                     K   y wr   r
   r
   r   r   rm   z>RunnerTests.test_signal_install_not_supported_ok.<locals>.coro  r   r  signalz8signal only works in main thread of the main interpreter)side_effect)r   r   r   objectr  rT   rN   r  s      r   $test_signal_install_not_supported_okz0RunnerTests.test_signal_install_not_supported_ok  sc    	 ^^&N 

46"   s"   &A2A&A2&A/	+A22A;c                 P   d }t        j                         }t        j                         |_        t        j
                         }|j                   |              |j                   |              | j                  d|j                  j                         |j                          y )Nc                     K   y wr   r
   r
   r   r   rm   z9RunnerTests.test_set_event_loop_called_once.<locals>.coro  r   r  rX   )
r   r<   r   r.   r"   r   rN   rM   
call_countrl   )r   rm   r9   r   s       r   test_set_event_loop_called_oncez+RunnerTests.test_set_event_loop_called_once  sr    	 ..0 $		!

46

46F11<<=r   c                      G d d      fd}t        j                         5 }|j                   |             }d d d        | j                  dj                         y # 1 sw Y   &xY w)Nc                   $     e Zd Zd Z fdZ xZS )ERunnerTests.test_no_repr_is_call_on_the_task_result.<locals>.MyResultc                     d| _         y r   )
repr_countr   s    r   r   zNRunnerTests.test_no_repr_is_call_on_the_task_result.<locals>.MyResult.__init__  s	    "#r   c                 J    | xj                   dz  c_         t        | 	         S r   )r&  r6   __repr__)r   r:   s    r   r(  zNRunnerTests.test_no_repr_is_call_on_the_task_result.<locals>.MyResult.__repr__  s    1$w'))r   )r#   r$   r%   r   r(  r@   rA   s   @r   MyResultr$    s    $* *r   r)  c                     K            S wr   r
   )r)  s   r   rm   zARunnerTests.test_no_repr_is_call_on_the_task_result.<locals>.coro  s     :s   r   )r   r   rN   rM   r&  )r   rm   r   r   r)  s       @r   'test_no_repr_is_call_on_the_task_resultz3RunnerTests.test_no_repr_is_call_on_the_task_result  sV    	* 	*	 ^^ZZ'F  	F--. s   A!!A*N)r#   r$   r%   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r!  r+  r
   r   r   r   r     sX    <;3
*"  
*	*#&E$$(# -$#"#"/r   r   __main__)r   r   r   r  r  	threadingunittesttest.test_asyncior   r   r   unittest.mockr   r   r   AbstractEventLoopPolicyr   TestCaser'   rC   r   r#   rJ   r
   r   r   <module>r3     s       	    1  (00 (x   DD*x D*Nc/( c/L zHMMO r   