
    <eM7                     (   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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                     dS dS )    N)utils)mock)patchc                  .    t          j        d            d S N)asyncioset_event_loop_policy     5/usr/lib/python3.11/test/test_asyncio/test_runners.pytearDownModuler      s    !$'''''r   c                  ,    t          j                     d S r   )_threadinterrupt_mainr
   r   r   interrupt_selfr      s    r   c                   &    e Zd Zd Zd Zd Zd ZdS )
TestPolicyc                 "    || _         d | _        d S 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                 *    |                                  S r   r   r   s    r   new_event_loopzTestPolicy.new_event_loop    s      """r   c                     |	|| _         d S d S r   r   )r   r   s     r   set_event_loopzTestPolicy.set_event_loop#   s     DIII r   N)__name__
__module____qualname__r   r   r   r"   r
   r   r   r   r      sP            # # #    r   r   c                   .     e Zd Zd Z fdZ fdZ xZS )BaseTestc                    t          j                    t          j                    _        t          j                    _        d j        _        t          j                    _        dj        j        _        d_	        fd}|_
        S )Nr
   Fc                     K   d _         d S NT)shutdown_ag_runr!   s   r   shutdown_asyncgensz-BaseTest.new_loop.<locals>.shutdown_asyncgens6   s      #'D   r   )r   BaseEventLoopr   Mock_process_events_write_to_selfreturn_value	_selectorselectr+   r,   )r   r,   r   s     @r   new_loopzBaseTest.new_loop,   s    $&&#y{{"ikk+/(-/*$	( 	( 	( 	( 	("4r   c                     t                                                       t          | j                  }t	          j        |           d S r   )supersetUpr   r4   r   r	   r   policy	__class__s     r   r7   zBaseTest.setUp<   s:    DM**%f-----r   c                 :   t          j                    }|j        K|                     |j                                                   |                     |j        j                   t          j        d            t                                                       d S r   )	r   get_event_loop_policyr   
assertTrue	is_closedr+   r	   r6   tearDownr8   s     r   r?   zBaseTest.tearDownB   s}    .00;"OOFK1133444OOFK7888%d+++r   )r#   r$   r%   r4   r7   r?   __classcell__)r:   s   @r   r'   r'   *   s`           . . . . .        r   r'   c                   J    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S )RunTestsc                 l    d }|                      t          j         |                      d           d S )Nc                  >   K   t          j        d           d {V  dS Nr   *   r   sleepr
   r   r   mainz.RunTests.test_asyncio_run_return.<locals>.mainO   -      -"""""""""2r   rF   )assertEqualr   runr   rI   s     r   test_asyncio_run_returnz RunTests.test_asyncio_run_returnN   s?    	 	 	 	TTVV,,b11111r   c                     d }|                      t          d          5  t          j         |                       d d d            d S # 1 swxY w Y   d S )Nc                  X   K   t          j        d           d {V  t          d          )Nr   spam)r   rH   
ValueErrorr
   r   r   rI   z.RunTests.test_asyncio_run_raises.<locals>.mainV   s6      -"""""""""V$$$r   rQ   )assertRaisesRegexrR   r   rL   rM   s     r   test_asyncio_run_raisesz RunTests.test_asyncio_run_raisesU   s    	% 	% 	% ##J77 	  	 K	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   A		AAc                     dd hD ]w}|                      |          5  |                     t          d          5  t          j        |           d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   xd S )N   c                      d S r   r
   r
   r   r   <lambda>z5RunTests.test_asyncio_run_only_coro.<locals>.<lambda>^   s    T r   )obja coroutine was expected)subTestrS   rR   r   rL   )r   os     r   test_asyncio_run_only_coroz#RunTests.test_asyncio_run_only_coro]   s   \\" 	 	A!$$  **:+EG G  A                             	 	s4   A2AA2AA2"A#A22A6	9A6	c                 8     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            n# 1 swxY w Y   t          j        dd           5  t          j         |d          d           t          j         |d                     d d d            d S # 1 swxY w Y   d S )Nc                    K   t          j                    }                    |                                |            d S r   )r   r   assertIs	get_debug)expectedr   r   s     r   rI   z-RunTests.test_asyncio_run_debug.<locals>.maine   s9      )++DMM$..**H55555r   FdebugTz!asyncio.coroutines._is_debug_modec                      dS r*   r
   r
   r   r   rX   z1RunTests.test_asyncio_run_debug.<locals>.<lambda>k   s    T r   c                      dS )NFr
   r
   r   r   rX   z1RunTests.test_asyncio_run_debug.<locals>.<lambda>n   s    U r   )r   rL   r   r   rM   s   ` r   test_asyncio_run_debugzRunTests.test_asyncio_run_debugd   s   	6 	6 	6 	6 	6 	DDKKu----DDJJd++++Z;\\JJ 	2 	2KT

###KU51111	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 	2 Z;]]KK 	% 	%KT

$////KU$$$	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	%s$   =B$$B(+B(=DDDc                     fd|                      t          d          5  t          j                                d d d            d S # 1 swxY w Y   d S )Nc                     K                } 	 t          j        |            |                                  d S # |                                  w xY wr   )r   rL   close)cororI   s    r   rI   z9RunTests.test_asyncio_run_from_running_loop.<locals>.mains   sJ      466DD!!!



s	   9 Azcannot be called from a running)rS   r   r   rL   rM   s    @r   "test_asyncio_run_from_running_loopz+RunTests.test_asyncio_run_from_running_loopr   s    	 	 	 	 	 ##L$EG G 	  	 K	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   AAAc                     d d fd}|                      t          j         |                      d           |                                                                d S )Nc                  >   K   t          j        d           d {V  d S )N皙?rG   r
   r   r   leftoverzARunTests.test_asyncio_run_cancels_hanging_tasks.<locals>.leftover   s.      -$$$$$$$$$$$r   c                  D   K   t          j                                dS N{   )r   create_task)rp   lo_tasks   r   rI   z=RunTests.test_asyncio_run_cancels_hanging_tasks.<locals>.main   s"      )((**55G3r   rs   )rK   r   rL   r=   done)r   rI   rp   ru   s     @@r   &test_asyncio_run_cancels_hanging_tasksz/RunTests.test_asyncio_run_cancels_hanging_tasks~   s~    	% 	% 	%	 	 	 	 	 	
 	TTVV,,c222'''''r   c                 |   d t          j                    d fd}|                     t          j         |                      d           |                                                                                    t          j	        d          t          j
        t                    d           d S )Nc                  v   K   	 t          j        d           d {V  d S # t           j        $ r	 ddz   Y d S w xY w)Nro   rV   r   )r   rH   CancelledErrorr
   r   r   rp   zHRunTests.test_asyncio_run_reports_hanging_tasks_errors.<locals>.leftover   s`      mC((((((((((()   As     88c                  x   K   t          j                    } | _        t          j                               dS rr   )r   get_running_loopcall_exception_handlerrt   )r   call_exc_handler_mockrp   ru   s    r   rI   zDRunTests.test_asyncio_run_reports_hanging_tasks_errors.<locals>.main   s:      +--D*?D' )((**55G3r   rs   zasyncio.run.*shutdown)messagetask	exception)r   r.   rK   r   rL   r=   rv   assert_called_with
test_utilsMockPatternMockInstanceOfZeroDivisionError)r   rI   r~   rp   ru   s     @@@r   -test_asyncio_run_reports_hanging_tasks_errorsz6RunTests.test_asyncio_run_reports_hanging_tasks_errors   s     $		 	 		 	 	 	 	 	 	 	TTVV,,c222'''00!-.FGG#23DEE2
 2
 	 	 	 	 	r   c                    d d  G d dt                     d fdfd}|                               5  t          j         |                       d d d            n# 1 swxY w Y   |                                                                |                     j                   |                     j	                   d S )Nc                       e Zd ZdS )SRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.FancyExitN)r#   r$   r%   r
   r   r   	FancyExitr      s        Dr   r   c                 H   K   	 dW V  t          j        d           d {V   )NTrV   rG   r
   r   r   fidgetzPRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.fidget   s=      'mA&&&&&&&&&'r   c                  n   K                	 2 3 d {V } 6 d S # t           j        $ r	 ddz   Y d S w xY w)NrV   r   )r   rz   )the_meaning_of_lifer   spinners    r   spinzNRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.spin   sy      fhhG18       - 29)   As     44c                     K   t          j                    } t          j                    | _        t          j                               r   )r   r|   r   r.   r}   rt   )r   r   lazyboyr   s    r   rI   zNRunTests.test_asyncio_run_closes_gens_after_hanging_tasks_errors.<locals>.main   s@      +--D*.)++D' )$$&&11GOr   )
	ExceptionassertRaisesr   rL   r=   rv   assertIsNoneag_frameassertFalse
ag_running)r   rI   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)) 	  	 K	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	''''*++++,,,,,s   A++A/2A/c                     d }t          j                    }t          j                    |_        t          j         |                       |                     |j        j                   d S )Nc                  >   K   t          j        d           d {V  dS rE   rG   r
   r   r   rI   z6RunTests.test_asyncio_run_set_event_loop.<locals>.main   rJ   r   )r   r<   r   r.   r"   rL   r=   called)r   rI   r9   s      r   test_asyncio_run_set_event_loopz(RunTests.test_asyncio_run_set_event_loop   sc    	 	 	 .00 $	DDFF-455555r   c                       G d d          d } fd}t          j        t          |                                          t           j                  5  t          j         |                       d d d            d S # 1 swxY w Y   d S )Nc                   Z    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dS )8RunTests.test_asyncio_run_without_uncancel.<locals>.Taskc                 8    t          j        |fd|i|| _        d S )Nr   )r   Task_task)r   r   rk   kwargss       r   r   zARunTests.test_asyncio_run_without_uncancel.<locals>.Task.__init__   s$    $\$DDTDVD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       (tz($9&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    3tz3TDVD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    6tz6G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    z::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   rv   r   s      r   rv   z=RunTests.test_asyncio_run_without_uncancel.<locals>.Task.done   s    &tz7777r   c                 &     | j         j        |i |S r   )r   	cancelledr   s      r   r   zBRunTests.test_asyncio_run_without_uncancel.<locals>.Task.cancelled       +tz+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    *tz*D;F;;;r   N)r#   r$   r%   r   r   r   r   propertyr   r   rv   r   r   r   r
   r   r   r   r      s        E E E: : :E E EH H H ; ; X;: : :8 8 8= = == = =< < < < <r   r   c                  |   K   t                       t          j                                                     d {V  d S r   )r   r   Eventwaitr
   r   r   rI   z8RunTests.test_asyncio_run_without_uncancel.<locals>.main   sB      -//&&(((((((((((r   c                  Z                                     } |                                | 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   rz   rL   )r   rI   r   r   s   `  @r   !test_asyncio_run_without_uncancelz*RunTests.test_asyncio_run_without_uncancel   s   	< 	< 	< 	< 	< 	< 	< 	<B	) 	) 	)	 	 	 	 	 	
 	%j&@&@AAAw566 	  	 K	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s   BB
BN)r#   r$   r%   rN   rT   r]   rg   rl   rw   r   r   r   r   r
   r   r   rB   rB   L   s        2 2 2       % % %
  
  
 ( ( (  6#- #- #-J
6 
6 
6.  .  .  .  . r   rB   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d Zd Zd Zd Zd ZdS )RunnerTestsc                     t          j        d          5 }|                     |                                                                           d d d            d S # 1 swxY w Y   d S )NFrc   )r   Runnerr   r   ra   r   runners     r   test_non_debugzRunnerTests.test_non_debug  s    ^%((( 	<FV__..88::;;;	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	< 	<   :AA!$A!c                     t          j        d          5 }|                     |                                                                           d d d            d S # 1 swxY w Y   d S )NTrc   )r   r   r=   r   ra   r   s     r   
test_debugzRunnerTests.test_debug  s    ^$''' 	;6OOFOO--7799:::	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	; 	;r   c                     t          j                    t          j        fd          5 }|                     |                                           d d d            d S # 1 swxY w Y   d S )Nc                       S r   r
   r!   s   r   rX   z1RunnerTests.test_custom_factory.<locals>.<lambda>  s     r   r   )r   r.   r   r   r`   r   r   r   r   s     @r   test_custom_factoryzRunnerTests.test_custom_factory  s    y{{^666 	3&MM&//++T222	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3 	3s   )A##A'*A'c                    d }t          j                    5 }|                     d|                     |                                 |                                }d d d            n# 1 swxY w Y   |                     t          d          5  |                                 d d d            n# 1 swxY w Y   |                     |                                           d S )Nc                  >   K   t          j        d           d {V  dS )Nr   rv   rG   r
   r   r   fzRunnerTests.test_run.<locals>.f  s-      -"""""""""6r   rv   Runner is closed)	r   r   rK   rL   r   rS   r   r=   r>   )r   r   r   r   s       r   test_runzRunnerTests.test_run  sQ   	 	 	 ^ 	%VVZZ__555??$$D	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% 	% ##
 
 	 	 OO		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	(()))))s$   AA))A-0A-B00B47B4c                     t          j                    5 }|                     t          d          5  |                    d           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrZ   rs   )r   r   rS   rR   rL   r   s     r   test_run_non_corozRunnerTests.test_run_non_coro)  s    ^ 	 ''*      

3	                             	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s4   A*AA*A	A*A	A**A.1A.c                 :   t          j                    5 }|                     t          d          5  |                                                                }|                    |           d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )NrZ   )r   r   rS   rR   r   create_futurerL   )r   r   futs      r   test_run_futurezRunnerTests.test_run_future1  s   ^ 	 ''*      oo''5577

3                             	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	  	 s4   B<A8,B8A<	<B?A<	 BBBc                 X   t          j                    }|                                }|                                 |                     t
          d          5  |                                 d d d            n# 1 swxY w Y   |                     |                                           d S )Nr   )r   r   r   rj   rS   r   r=   r>   r   s      r   test_explicit_closezRunnerTests.test_explicit_close:  s    !!  ##"
 
 	 	 OO		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	(()))))s   A88A<?A<c                 @   t          j                    }|                                }|                                 |                     |                                           |                                 |                     |                                           d S r   )r   r   r   rj   r=   r>   r   s      r   test_double_closezRunnerTests.test_double_closeF  sx    !!  (())) 	(()))))r   c                    g fd}t          j                    }|5  |                     |d                     d d d            n# 1 swxY w Y   |                     t          d          5  |5  |                     |d                     d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   |                     dg           d S )Nc                 6   K                        |            d S r   )append)argrets    r   r   z4RunnerTests.test_second_with_block_raises.<locals>.fT  s      JJsOOOOOr   rV   r      )r   r   rL   rS   r   rK   )r   r   r   r   s      @r   test_second_with_block_raisesz)RunnerTests.test_second_with_block_raisesQ  s   	 	 	 	 	 !! 	 	JJqqtt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 ##
 
 	! 	!  ! !

11Q44   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !		! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	! 	!c"""""sG   A		AA/B42BB4B!	!B4$B!	%B44B8;B8c           	         t          j        dd          fd}d }t          j                    5 }|                     d|                     |d                               |                     d|                     |d                               |                     d|                     |                                                               d d d            d S # 1 swxY w Y   d S )Ncvar)defaultc                    K                                    }t          j        d           d {V                      |            |S Nr   )getr   rH   set)valoldr   s     r   r   z-RunnerTests.test_run_keeps_context.<locals>.fg  sJ      ((**C-"""""""""HHSMMMJr   c                  ,   K   t          j                    S r   )contextvarscopy_contextr
   r   r   get_contextz7RunnerTests.test_run_keeps_context.<locals>.get_contextm  s      +---r   rV   r   )r   
ContextVarr   r   rK   rL   r   )r   r   r   r   r   s       @r   test_run_keeps_contextz"RunnerTests.test_run_keeps_contextd  sN   %fb999	 	 	 	 		. 	. 	. ^ 	ERAAaDD!1!1222Q

11Q44 0 0111Q

;;== 9 9 = =d C CDDD		E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	E 	Es   B)C))C-0C-c                    d fd}t          j                    5 |                     t          d          5  |                     t
          t          j        d                    5                       |                       d d d            n# 1 swxY w Y   d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                  
   K   d S r   r
   r
   r   r   gz)RunnerTests.test_recursive_run.<locals>.gw        Dr   c                  F   K                                                 d S r   )rL   )r   r   s   r   r   z)RunnerTests.test_recursive_run.<locals>.fz  s       JJqqssOOOOOr   zcoroutine .+ was never awaitedz7Runner.run() cannot be called from a running event loop)	r   r   assertWarnsRegexRuntimeWarningrS   r   reescaperL   )r   r   r   r   s     @@r   test_recursive_runzRunnerTests.test_recursive_runv  s   	 	 		 	 	 	 	 	 ^ 	$&&0  
$ 
$ ++ IQ   $ $ JJqqssOOO$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$ 
$	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$ 	$sX   C.B*)BB*BB*BB*C*B.	.C1B.	2CC	Cc                 b     fd}t          j                    5 }|                                                    dt                                          t                    5  |                     |                       d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                     K                         t          j                  5  	 t          j        d           d {V  # 1 swxY w Y   t          j                    )NTr   )r   r   rz   rH   r   s   r   rk   z2RunnerTests.test_interrupt_call_soon.<locals>.coro  s      ""7#9:: + ++!-*********++ + + + + + + + (***s   A  AAro   )r   r   r   
call_laterr   r   KeyboardInterruptrL   r   rk   r   s   `  r   test_interrupt_call_soonz$RunnerTests.test_interrupt_call_soon  s/   
	+ 	+ 	+ 	+ 	+ ^ 	#OO((n===""#455 # #

4466"""# # # # # # # # # # # # # # #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s6   AB$"B B$B	B$B	B$$B(+B(c                      fd}t          j                    5 }|                                                                }|                                                    dt
                                          t                    5  |                     ||                     d d d            n# 1 swxY w Y    	                    |
                                           d d d            d S # 1 swxY w Y   d S )Nc                    K                        t          j                  5  |  d {V  d d d            n# 1 swxY w Y   t          j                    r   )r   r   rz   )r   r   s    r   rk   z-RunnerTests.test_interrupt_wait.<locals>.coro  s      ""7#9::  							              (***s   	8<<ro   )r   r   r   r   r  r   r   r  rL   r=   r   )r   rk   r   r   s   `   r   test_interrupt_waitzRunnerTests.test_interrupt_wait  sh   	+ 	+ 	+ 	+ 	+
 ^ 	-//##1133COO((n===""#455 & &

4499%%%& & & & & & & & & & & & & & & OOCMMOO,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s6   A.C2B3'C23B7	7C2:B7	;*C22C69C6c                    d fd}t          j                    5 }|                     t           j                  5  |                     |                       d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                    K   t          j        d           d {V  |                                  t                       d S r   )r   rH   r   r   )r   s    r   subtaskz:RunnerTests.test_interrupt_cancelled_task.<locals>.subtask  sG      -"""""""""KKMMMr   c                     K   t          j          t          j                                         t          j        d           d {V  d S )N
   )r   rt   current_taskrH   )r
  s   r   rk   z7RunnerTests.test_interrupt_cancelled_task.<locals>.coro  sS      (<(>(> ? ?@@@-###########r   )r   r   r   rz   rL   )r   rk   r   r
  s      @r   test_interrupt_cancelled_taskz)RunnerTests.test_interrupt_cancelled_task  s    	 	 	
	$ 	$ 	$ 	$ 	$ ^ 	#""7#9:: # #

4466"""# # # # # # # # # # # # # # #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s4    A?A'A?'A+	+A?.A+	/A??BBc                     d }t          j                    5 }t          j        t          dt          d                    5  |                     |                       d d d            n# 1 swxY w Y   d d d            d S # 1 swxY w Y   d S )Nc                  
   K   d S r   r
   r
   r   r   rk   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  rR   rL   r  s      r   $test_signal_install_not_supported_okz0RunnerTests.test_signal_install_not_supported_ok  s   	 	 	 ^ 	#&N    # # 

4466"""# # # # # # # # # # # # # # #	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	# 	#s5   *BA+B+A/	/B2A/	3BB
Bc                 d   d }t          j                    }t          j                    |_        t          j                    }|                     |                       |                     |                       |                     d|j        j                   |	                                 d S )Nc                  
   K   d S r   r
   r
   r   r   rk   z9RunnerTests.test_set_event_loop_called_once.<locals>.coro  r   r   rV   )
r   r<   r   r.   r"   r   rL   rK   
call_countrj   )r   rk   r9   r   s       r   test_set_event_loop_called_oncez+RunnerTests.test_set_event_loop_called_once  s    	 	 	 .00 $	!!

4466

4466F1<===r   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   	  s       < < <; ; ;3 3 3
* * *"          
* 
* 
*	* 	* 	*# # #&E E E$$ $ $(# # # - - -$# # #"# # #"    r   r   __main__)r   r   r   gcr   r  	threadingunittesttest.test_asyncior   r   r   unittest.mockr   r   r   AbstractEventLoopPolicyr   TestCaser'   rB   r   r#   rI   r
   r   r   <module>r!     s         				 				       1 1 1 1 1 1            ( ( (      0   (    x    Dz  z  z  z  z x z  z  z zQ Q Q Q Q( Q Q Qh zHMOOOOO r   