
    dafdA                     :   d dl Z d dlZd dlZd dlmZ  ej
                  d        G d de      Zd Z G d d	      Z	 G d
 d      Z
 G d d      Z G d d      Z ej                  dd      Z G d dej                        Zedk(  r ej$                          yy)    N)supportT)modulec                       e Zd Zy)MyExceptionN__name__
__module____qualname__     =/root/Python-3.12.4/Lib/test/test_unittest/test_async_case.pyr   r   	       r   r   c                  .    t        j                  d        y N)asyncioset_event_loop_policyr   r   r   tearDownModuler      s    !!$'r   c                        e Zd ZddZd Zd Zy)TestCMNc                      || _         || _        y r   )orderingenter_result)selfr   r   s      r   __init__zTestCM.__init__   s     (r   c                 X   K   | j                   j                  d       | j                  S w)Nenter)r   appendr   r   s    r   
__aenter__zTestCM.__aenter__   s$     W%   s   (*c                 B   K   | j                   j                  d       y w)Nexit)r   r   r   exc_infos     r   	__aexit__zTestCM.__aexit__   s     V$s   r   )r   r	   r
   r   r   r$   r   r   r   r   r      s    )!%r   r   c                       e Zd Zy)LacksEnterAndExitNr   r   r   r   r&   r&      r   r   r&   c                       e Zd Zd Zy)
LacksEnterc                    K   y wr   r   r"   s     r   r$   zLacksEnter.__aexit__!   	        N)r   r	   r
   r$   r   r   r   r(   r(           r   r(   c                       e Zd Zd Zy)	LacksExitc                    K   y wr   r   r   s    r   r   zLacksExit.__aenter__$   r*   r+   N)r   r	   r
   r   r   r   r   r.   r.   #   r,   r   r.   VARr   )defaultc                   d    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y)TestAsyncCaseNc                 B    | j                  t        j                         y r   )
addCleanupr   
gc_collectr   s    r   setUpzTestAsyncCase.setUp.   s     	**+r   c                 Z   g d G fddt         j                        }g d |d      }|j                         }| j                  |j                  g        | j                  |j
                  g        | j                         | j                  t                     g d |d      }|j                          | j                         | j                  t                     |j                          | j                         | j                  t                     y )N)r7   
asyncSetUptestasyncTearDowntearDowncleanup6cleanup5cleanup4cleanup3cleanup2cleanup1c                       e Zd ZfdZfdZfdZfdZfdZ fdZfdZ	fdZ
fd	Zfd
ZfdZy)+TestAsyncCase.test_full_cycle.<locals>.Testc                    | j                  g        j                  d       t        j                  t        j	                         dz          | j                  | j                         | j                  | j                         y )Nr7   )r7   )	assertEqualr   r0   setgetr5   on_cleanup1addAsyncCleanupon_cleanup2r   eventss    r   r7   z1TestAsyncCase.test_full_cycle.<locals>.Test.setUp@   s\      ,g&	J./ 0 01$$T%5%56r   c                   K   | j                  d d        j                  d       t        j                  t        j	                         dz          | j                  | j                         | j                  | j                         y w)N   r9   )r9   )	rF   r   r0   rG   rH   r5   on_cleanup3rJ   on_cleanup4r   rM   expecteds    r   r9   z6TestAsyncCase.test_full_cycle.<locals>.Test.asyncSetUpG   sf       "16l+	O34 0 01$$T%5%56   BBc                   K   | j                  d d        j                  d       t        j                  t        j	                         dz          | j                  | j                         | j                  | j                         y w)N   r:   )r:   )	rF   r   r0   rG   rH   r5   on_cleanup5rJ   on_cleanup6rR   s    r   	test_funcz5TestAsyncCase.test_full_cycle.<locals>.Test.test_funcN   sf       "16f%	I-. 0 01$$T%5%56rT   c                    K   | j                  d d        t        j                  t        j                         dz          j	                  d       y w)N   )r;   r;   )rF   r0   rG   rH   r   rR   s    r   r;   z9TestAsyncCase.test_full_cycle.<locals>.Test.asyncTearDownU   sA       "16	$667o.   AAc                     | j                  d d        j                  d       t        j                  t        j	                         dz          y )N   r<   )r<   rF   r   r0   rG   rH   rR   s    r   r<   z4TestAsyncCase.test_full_cycle.<locals>.Test.tearDownZ   <      "16j)	M12r   c                     | j                  d d        j                  d       t        j                  t        j	                         dz          t        j	                         y )N
   rB   )rB   r_   )r   cvarrM   rS   s    r   rI   z7TestAsyncCase.test_full_cycle.<locals>.Test.on_cleanup1_   sG      #27j)	M12wwyr   c                    K   | j                  d d        j                  d       t        j                  t        j	                         dz          y w)N	   rA   )rA   r_   rR   s    r   rK   z7TestAsyncCase.test_full_cycle.<locals>.Test.on_cleanup2f   @       "16j)	M12r\   c                     | j                  d d        j                  d       t        j                  t        j	                         dz          y )N   r@   )r@   r_   rR   s    r   rP   z7TestAsyncCase.test_full_cycle.<locals>.Test.on_cleanup3k   r`   r   c                    K   | j                  d d        j                  d       t        j                  t        j	                         dz          y w)N   r?   )r?   r_   rR   s    r   rQ   z7TestAsyncCase.test_full_cycle.<locals>.Test.on_cleanup4p   rf   r\   c                     | j                  d d        j                  d       t        j                  t        j	                         dz          y )N   r>   )r>   r_   rR   s    r   rW   z7TestAsyncCase.test_full_cycle.<locals>.Test.on_cleanup5u   r`   r   c                    K   | j                  d d        j                  d       t        j                  t        j	                         dz          y w)N   r=   )r=   r_   rR   s    r   rX   z7TestAsyncCase.test_full_cycle.<locals>.Test.on_cleanup6z   rf   r\   N)r   r	   r
   r7   r9   rY   r;   r<   rI   rK   rP   rQ   rW   rX   )rc   rM   rS   s   r   TestrD   ?   s:    777/
3
!3
3
3
3
3r   ro   r   rY   )	unittestIsolatedAsyncioTestCaserunrF   errorsfailurestupledebug
doCleanups)r   ro   r:   resultrc   rM   rS   s       @@@r   test_full_cyclezTestAsyncCase.test_full_cycle3   s    
 >	3 >	3833 >	3@ K +"-*uX/K 

*uX/*uX/r   c                 :    G fddt         j                        }g  |d      }|j                         }| j                  ddg       | j	                  |j
                  d   d   |       | j                  d|j
                  d   d          g  |d      }| j                  |j                         	 |j                          | j                  d	       | j                  dg       |j                          | j                  ddg       y # t        $ r Y Cw xY w)
Nc                   6    e Zd Z fdZ fdZ fdZ fdZy)3TestAsyncCase.test_exception_in_setup.<locals>.Testc                 x   K   j                  d       | j                  | j                         t               wNr9   r   rJ   
on_cleanupr   rL   s    r   r9   z>TestAsyncCase.test_exception_in_setup.<locals>.Test.asyncSetUp   s-     l+$$T__5!m#   7:c                 0   K   j                  d       y wNr:   r   rL   s    r   rY   z=TestAsyncCase.test_exception_in_setup.<locals>.Test.test_func   s     f%   c                 0   K   j                  d       y wNr;   r   rL   s    r   r;   zATestAsyncCase.test_exception_in_setup.<locals>.Test.asyncTearDown        o.r   c                 0   K   j                  d       y wNcleanupr   rL   s    r   r   z>TestAsyncCase.test_exception_in_setup.<locals>.Test.on_cleanup        i(r   Nr   r	   r
   r9   rY   r;   r   rM   s   r   ro   r|      s    $
&/)r   ro   rY   r9   r   r   r   rO    Expected a MyException exceptionrp   rq   rr   rF   assertIsrs   assertInr5   _tearDownAsyncioRunnerrv   failr   rw   r   ro   r:   rx   rM   s       @r   test_exception_in_setupz%TestAsyncCase.test_exception_in_setup   s   	)833 	)  K ,	!:;fmmA&q)40mV]]1%5a%89K 334	:JJL II89,0,	!:;  		s   5D 	DDc                 <    G fddt         j                        }g  |d      }|j                         }| j                  g d       | j	                  |j
                  d   d   |       | j                  d|j
                  d   d          g  |d      }| j                  |j                         	 |j                          | j                  d       | j                  d	d
g       |j                          | j                  g d       y # t        $ r Y Dw xY w)Nc                   6    e Zd Z fdZ fdZ fdZ fdZy)2TestAsyncCase.test_exception_in_test.<locals>.Testc                 0   K   j                  d       y wr~   r   rL   s    r   r9   z=TestAsyncCase.test_exception_in_test.<locals>.Test.asyncSetUp        l+r   c                 x   K   j                  d       | j                  | j                         t               wr   r   rL   s    r   rY   z<TestAsyncCase.test_exception_in_test.<locals>.Test.test_func   s-     f%$$T__5!m#r   c                 0   K   j                  d       y wr   r   rL   s    r   r;   z@TestAsyncCase.test_exception_in_test.<locals>.Test.asyncTearDown   r   r   c                 0   K   j                  d       y wr   r   rL   s    r   r   z=TestAsyncCase.test_exception_in_test.<locals>.Test.on_cleanup   r   r   Nr   r   s   r   ro   r      s    ,$
/)r   ro   rY   r9   r:   r;   r   r   r   rO   r   r9   r:   r9   r:   r   r   r   s       @r   test_exception_in_testz$TestAsyncCase.test_exception_in_test   s    	)833 	) K !STfmmA&q)40mV]]1%5a%89K 334	:JJL II89,!78!BC  		   5D 	DDc                 <    G fddt         j                        }g  |d      }|j                         }| j                  g d       | j	                  |j
                  d   d   |       | j                  d|j
                  d   d          g  |d      }| j                  |j                         	 |j                          | j                  d       | j                  g d	       |j                          | j                  g d       y # t        $ r Y Dw xY w)
Nc                   6    e Zd Z fdZ fdZ fdZ fdZy)7TestAsyncCase.test_exception_in_tear_down.<locals>.Testc                 0   K   j                  d       y wr~   r   rL   s    r   r9   zBTestAsyncCase.test_exception_in_tear_down.<locals>.Test.asyncSetUp   r   r   c                 f   K   j                  d       | j                  | j                         y wr   )r   rJ   r   rL   s    r   rY   zATestAsyncCase.test_exception_in_tear_down.<locals>.Test.test_func   s%     f%$$T__5s   .1c                 B   K   j                  d       t               wr   r   r   rL   s    r   r;   zETestAsyncCase.test_exception_in_tear_down.<locals>.Test.asyncTearDown   s     o.!m#   c                 0   K   j                  d       y wr   r   rL   s    r   r   zBTestAsyncCase.test_exception_in_tear_down.<locals>.Test.on_cleanup   r   r   Nr   r   s   r   ro   r      s    ,6$)r   ro   rY   r   r   r   rO   r   )r9   r:   r;   r   r   s       @r   test_exception_in_tear_downz)TestAsyncCase.test_exception_in_tear_down   s    	)833 	) K !STfmmA&q)40mV]]1%5a%89K 334	:JJL II89!HI!ST  		r   c                     G fddt         j                        }g  |d      }|j                         }| j                  g d       | j	                  |j
                  d   d   |       | j                  d|j
                  d   d          | j                  d|j
                  d   d          g  |d      }| j                  |j                         	 |j                          | j                  d	       | j                  g d
       |j                          | j                  g d       y # t        $ r Y Dw xY w)Nc                   @    e Zd Z fdZ fdZ fdZ fdZ fdZy);TestAsyncCase.test_exception_in_tear_clean_up.<locals>.Testc                 0   K   j                  d       y wr~   r   rL   s    r   r9   zFTestAsyncCase.test_exception_in_tear_clean_up.<locals>.Test.asyncSetUp  r   r   c                    K   j                  d       | j                  | j                         | j                  | j                         y wr   )r   rJ   rI   rK   rL   s    r   rY   zETestAsyncCase.test_exception_in_tear_clean_up.<locals>.Test.test_func  s;     f%$$T%5%56$$T%5%56s   A	Ac                 0   K   j                  d       y wr   r   rL   s    r   r;   zITestAsyncCase.test_exception_in_tear_clean_up.<locals>.Test.asyncTearDown	  r   r   c                 D   K   j                  d       t        d      w)NrB   z
some errorr   rL   s    r   rI   zGTestAsyncCase.test_exception_in_tear_clean_up.<locals>.Test.on_cleanup1  s     j)!,//    c                 D   K   j                  d       t        d      w)NrA   zother errorr   rL   s    r   rK   zGTestAsyncCase.test_exception_in_tear_clean_up.<locals>.Test.on_cleanup2  s     j)!-00r   N)r   r	   r
   r9   rY   r;   rI   rK   r   s   r   ro   r      s    ,7
/01r   ro   rY   )r9   r:   r;   rA   rB   r   zMyException: other errorrO   zMyException: some errorr   )r9   r:   r;   rA   r   r   s       @r   test_exception_in_tear_clean_upz-TestAsyncCase.test_exception_in_tear_clean_up   s   	1833 	1( K !`afmmA&q)400&--2B12EF/q1A!1DEK 334	:JJL II89!TU!`a  		s   D1 1	D=<D=c                 P    G d d       G fddt         j                        }| j                  t              5 } |d      j	                          d d d        | j                  dt        j                               | j                  dt        |j                               | j                  |j                  t               | j                  t              5 } |d      j	                          d d d        | j                  dt        |j                               | j                  dt        |j                               | j                  |j                  t               | j                  t              5 } |d      j	                          d d d        | j                  dt        |j                               | j                  dt        |j                               | j                  |j                  t               y # 1 sw Y   xY w# 1 sw Y    xY w# 1 sw Y   xY w)	Nc                       e Zd Zd Zy)GTestAsyncCase.test_deprecation_of_return_val_from_test.<locals>.Nothingc                 
    |d u S r   r   )r   os     r   __eq__zNTestAsyncCase.test_deprecation_of_return_val_from_test.<locals>.Nothing.__eq__,  s    Dy r   N)r   r	   r
   r   r   r   r   Nothingr   +  s    !r   r   c                   $    e Zd Zd Zd Z fdZy)DTestAsyncCase.test_deprecation_of_return_val_from_test.<locals>.Testc                    K   ywNrO   r   r   s    r   test1zJTestAsyncCase.test_deprecation_of_return_val_from_test.<locals>.Test.test1/  s	     r+   c                   K   d y wr   r   r   s    r   test2zJTestAsyncCase.test_deprecation_of_return_val_from_test.<locals>.Test.test21  s     s   	c                    K           S wr   r   )r   r   s    r   test3zJTestAsyncCase.test_deprecation_of_return_val_from_test.<locals>.Test.test33  s     y s   N)r   r	   r
   r   r   r   )r   s   r   ro   r   .  s    !r   ro   r   z3It is deprecated to return a value that is not Noner   r   )rp   rq   assertWarnsDeprecationWarningrr   r   strwarningrF   filename__file__)r   ro   wr   s      @r   (test_deprecation_of_return_val_from_testz6TestAsyncCase.test_deprecation_of_return_val_from_test)  s   	! 	!	!833 	! 01 	 QM	 KSQRQZQZ^\gs199~.X.01 	 QM	 KSQRQZQZ^\gs199~.X.01 	 QM	 KSQRQZQZ^\gs199~.X.!	  	 	  	 	  	 s#   HH8HHHH%c                     g  G fddt         j                        } |d      }|j                          | j                  g d       y )Nc                   (    e Zd Zd Z fdZ fdZy):TestAsyncCase.test_cleanups_interleave_order.<locals>.Testc                    K   | j                  | j                  d       | j                  | j                  d       | j                  | j                  d       | j                  | j                  d       y w)NrO   rV   r[   r^   )rJ   on_sync_cleanupon_async_cleanupr   s    r   rY   zDTestAsyncCase.test_cleanups_interleave_order.<locals>.Test.test_funcL  s^     $$T%9%91=$$T%:%:A>$$T%9%91=$$T%:%:A>s   A2A4c                 6   K   j                  d|        y w)Nzsync_cleanup r   r   valrM   s     r   r   zJTestAsyncCase.test_cleanups_interleave_order.<locals>.Test.on_sync_cleanupR  s     cU34   c                 6   K   j                  d|        y w)Nzasync_cleanup r   r   s     r   r   zKTestAsyncCase.test_cleanups_interleave_order.<locals>.Test.on_async_cleanupU  s     se45r   N)r   r	   r
   rY   r   r   r   s   r   ro   r   K  s    ?56r   ro   rY   )zasync_cleanup 4zsync_cleanup 3zasync_cleanup 2zsync_cleanup 1)rp   rq   rr   rF   )r   ro   r:   rM   s      @r   test_cleanups_interleave_orderz,TestAsyncCase.test_cleanups_interleave_orderH  sD    	6833 	6 K 
 "4 	5r   c                 t   g  G fddt         j                        } |d      }|j                         }| j                  |j	                                 |d      }|j                          | j                  ddg        |d      }|j                         }| j                  |j	                                y )Nc                   (    e Zd Z fdZ fdZd Zy)ATestAsyncCase.test_base_exception_from_async_method.<locals>.Testc                 B   K   j                  d       t               w)N	test_base)r   BaseExceptionrL   s    r   r   zKTestAsyncCase.test_base_exception_from_async_method.<locals>.Test.test_baseb  s     k*#o%r   c                 0   K   j                  d       y w)Ntest_no_errr   rL   s    r   r   zMTestAsyncCase.test_base_exception_from_async_method.<locals>.Test.test_no_errg  s     m,r   c                 2   K   t        j                         wr   )r   CancelledErrorr   s    r   test_cancelzMTestAsyncCase.test_base_exception_from_async_method.<locals>.Test.test_cancelj  s     ,,..s   N)r   r	   r
   r   r   r   r   s   r   ro   r   a  s    (
-/r   ro   r   r   r   )rp   rq   rr   assertFalsewasSuccessfulrF   r   ro   r:   outputrM   s       @r   %test_base_exception_from_async_methodz3TestAsyncCase.test_base_exception_from_async_method_  s    
	/833 
	/ K --/0M"
+}!=>M"--/0r   c                     d G fddt         j                        } |d      }|j                         }| j                         y )NFc                       e Zd Z fdZy);TestAsyncCase.test_cancellation_hanging_tasks.<locals>.Testc                 L   K   fd}t        j                   |              y w)Nc                     K   	 t        j                  d       d {    y 7 # t         j                  $ r d  w xY ww)NrO   T)r   sleepr   	cancelleds   r   coroz[TestAsyncCase.test_cancellation_hanging_tasks.<locals>.Test.test_leaking_task.<locals>.coro}  s:     %mmA..."11 $(	s    ?% #% ?% <?)r   create_task)r   r   r   s     r   test_leaking_taskzMTestAsyncCase.test_cancellation_hanging_tasks.<locals>.Test.test_leaking_task|  s      ##DF+s   !$N)r   r	   r
   r   r   s   r   ro   r   {  s    
,r   ro   r   )rp   rq   rr   
assertTrue)r   ro   r:   r   r   s       @r   test_cancellation_hanging_tasksz-TestAsyncCase.test_cancellation_hanging_tasksy  s>    		,833 	, '(	"r   c                      g  G  fddt         j                        } |d      }|j                         } j                  |j	                         |        j                  g d       y )Nc                       e Zd Z fdZy)2TestAsyncCase.test_enterAsyncContext.<locals>.Testc                   K   | j                  j                  d       t        d      }j                  | j	                  |       d {   d       | j                  j                  d       j                  d       y 7 7w)NrB   *   rA   r:   )rJ   r   r   rF   enterAsyncContext)slfcmrM   r   s     r   rY   z<TestAsyncCase.test_enterAsyncContext.<locals>.Test.test_func  sk     ##FMM:>FB'  s'<'<R'@!@"E##FMM:>f% "As   ABB8BNr   r	   r
   rY   )rM   r   s   r   ro   r     s    &r   ro   rY   )r   r:   rA   r!   rB   )rp   rq   rr   r   r   rF   r   s   `   @r   test_enterAsyncContextz$TestAsyncCase.test_enterAsyncContext  sY    	&833 	& K ,,.7!RSr   c                       G  fddt         j                        } |d      }|j                         } j                  |j	                                y )Nc                       e Zd Z fdZy)=TestAsyncCase.test_enterAsyncContext_arg_errors.<locals>.Testc                   K   j                  t        d      5  | j                  t                      d {    d d d        j                  t        d      5  | j                  t	                      d {    d d d        j                  t        d      5  | j                  t                      d {    d d d        y 7 # 1 sw Y   xY w7 [# 1 sw Y   ZxY w7 )# 1 sw Y   y xY ww)Nzasynchronous context manager)assertRaisesRegex	TypeErrorr   r&   r(   r.   )r   r   s    r   rY   zGTestAsyncCase.test_enterAsyncContext_arg_errors.<locals>.Test.test_func  s     ++I7UV E//0A0CDDDE++I7UV >//
===>++I7UV =//	<<<= = EE E >> > == =s   C/CCCC/C7C8C<C/C#7C!8C#<	C/CCC/CCC/!C##C,(C/Nr   r   s   r   ro   r    s    =r   ro   rY   )rp   rq   rr   r   r   )r   ro   r:   r   s   `   r   !test_enterAsyncContext_arg_errorsz/TestAsyncCase.test_enterAsyncContext_arg_errors  sA    	=833 	= K ,,./r   c                     G fddt         j                        }g  |d      }|j                         }| j                  g d       | j	                  d|j
                  d   d          g  |d      }| j                  |j                         	 |j                          | j                  d       | j                  d	d
g       |j                          | j                  g d       y # t        $ r Y Dw xY w)Nc                   6    e Zd Z fdZ fdZ fdZ fdZy)8TestAsyncCase.test_debug_cleanup_same_loop.<locals>.Testc                    K   d }t        j                   |             }| j                  | j                  |       j	                  d       y w)Nc                  J   K   t        j                  d       d {    y 7 w)Nr   )r   r   r   r   r   r   zQTestAsyncCase.test_debug_cleanup_same_loop.<locals>.Test.asyncSetUp.<locals>.coro  s     !--***s   #!#r9   )r   ensure_futurerJ   r   r   )r   r   futrM   s      r   r9   zCTestAsyncCase.test_debug_cleanup_same_loop.<locals>.Test.asyncSetUp  s>     +++DF3$$T\\37l+s   AAc                 B   K   j                  d       t               wr   r   rL   s    r   rY   zBTestAsyncCase.test_debug_cleanup_same_loop.<locals>.Test.test_func  s     f%!m#r   c                 0   K   j                  d       y wr   r   rL   s    r   r;   zFTestAsyncCase.test_debug_cleanup_same_loop.<locals>.Test.asyncTearDown  r   r   c                    K   	 t        j                  |g       d {    j                  d       y 7 #  dd l}|j	                           xY ww)Nr   r   )r   waitr   	traceback	print_exc)r   r  r  rM   s      r   r   z@TestAsyncCase.test_debug_cleanup_same_loop.<locals>.Test.cleanup  sI     !,,u---MM), .$'')s%   A7 57 A7 AAN)r   r	   r
   r9   rY   r;   r   r   s   r   ro   r    s    ,$/r   ro   rY   r   r   r   rO   r   r9   r:   r   )rp   rq   rr   rF   r   rs   r5   r   rv   r   r   rw   r   s       @r   test_debug_cleanup_same_loopz*TestAsyncCase.test_debug_cleanup_same_loop  s    	833 	2 K !STmV]]1%5a%89K 334	:JJL II89,!78!BC  		s   C- -	C98C9c                     t        j                  d         G d dt        j                        } |d      }|j	                         }| j                  |j                                y )Nc                       e Zd Zd Zd Zy):TestAsyncCase.test_setup_get_event_loop.<locals>.TestCase1c                 H    t        j                         j                          y r   )r   get_event_loop_policyget_event_loopr   s    r   r7   z@TestAsyncCase.test_setup_get_event_loop.<locals>.TestCase1.setUp  s    --/>>@r   c                    K   y wr   r   r   s    r   
test_demo1zETestAsyncCase.test_setup_get_event_loop.<locals>.TestCase1.test_demo1  s	     r+   N)r   r	   r
   r7   r  r   r   r   	TestCase1r    s    Ar   r  r  )r   set_event_looprp   rq   rr   r   r   )r   r  r:   rx   s       r   test_setup_get_event_loopz'TestAsyncCase.test_setup_get_event_loop  sP     	t$	88 	 &,,./r   )r   r	   r
   maxDiffr7   ry   r   r   r   r   r   r   r   r   r  r  r  r!  r   r   r   r3   r3   +   sY    G,
]0~#<J"DH"UH(bT/>5.14#&T 0+DZ0r   r3   __main__)r   contextvarsrp   r:   r   requires_working_socket	Exceptionr   r   r   r&   r(   r.   
ContextVarr0   TestCaser3   r   mainr   r   r   <module>r*     s          t ,	) 	(
% 
%	 	  
 kUB/z0H%% z0x zHMMO r   