Your IP : 216.73.216.85


Current Path : /opt/alt/python37/lib64/python3.7/test/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/test/__pycache__/test_contextlib_async.cpython-37.pyc

B

� f�:�@s�ddlZddlmZmZmZddlZddlmZddlZddl	m
Z
dd�ZGdd�dej�Z
Gd	d
�d
ej�ZGdd�de
ej�Zed
kr�e��dS)�N)�asynccontextmanager�AbstractAsyncContextManager�AsyncExitStack)�support)�TestBaseExitStackcst����fdd��}|S)z5Decorator to turn an async function into a test case.c	s@�||�}t��}t�|�z
|�|�S|��t�d�XdS)N)�asyncio�new_event_loop�set_event_loopZrun_until_complete�close)�args�kwargs�coro�loop)�func��?/opt/alt/python37/lib64/python3.7/test/test_contextlib_async.py�wrappers


z_async_test.<locals>.wrapper)�	functools�wraps)rrr)rr�_async_test
s
rc@s4eZdZedd��Zedd��Zdd�Zdd�Zd	S)
�TestAbstractAsyncContextManagerc
�sZGdd�dt�}|�}|�|��IdH|�|4IdH�}|�||�WdQIdHRXdS)NcseZdZ�fdd�Z�ZS)z@TestAbstractAsyncContextManager.test_enter.<locals>.DefaultEnterc�st�j|�IdHdS)N)�super�	__aexit__)�selfr)�	__class__rrrszJTestAbstractAsyncContextManager.test_enter.<locals>.DefaultEnter.__aexit__)�__name__�
__module__�__qualname__r�
__classcell__rr)rr�DefaultEntersr)r�assertIs�
__aenter__)rrZmanager�contextrrr�
test_enters
z*TestAbstractAsyncContextManager.test_enterc�s�tdd����fdd�}g}td�}|�t��b��4IdH�Bx:|�2y3dH}Wn
tk
spX|�|�|�qHYWWdQIdHRXWdQRX|�|dg�dS)NcSs
dVdS)Nrrrrr�ctx+szUTestAbstractAsyncContextManager.test_async_gen_propagates_generator_exit.<locals>.ctxc
s*��4IdH�dVWdQIdHRXdS)N�rr)r$rr�gen/szUTestAbstractAsyncContextManager.test_async_gen_propagates_generator_exit.<locals>.gen�r%)r�
ValueError�assertRaises�StopAsyncIteration�append�assertEqual)rr&Zret�exc�valr)r$r�(test_async_gen_propagates_generator_exit's 
,zHTestAbstractAsyncContextManager.test_async_gen_propagates_generator_exitc	Cs0Gdd�dt�}|�t��|�WdQRXdS)Nc@seZdZdS)zKTestAbstractAsyncContextManager.test_exit_is_abstract.<locals>.MissingAexitN)rrrrrrr�MissingAexit>sr0)rr)�	TypeError)rr0rrr�test_exit_is_abstract=sz5TestAbstractAsyncContextManager.test_exit_is_abstractcCs�Gdd�d�}|�t|t��Gdd�dt�}|�t|t��Gdd�d|�}|�t|t��Gdd�d|�}|�t|t��dS)	Nc@seZdZdd�Zdd�ZdS)zWTestAbstractAsyncContextManager.test_structural_subclassing.<locals>.ManagerFromScratchc�s|S)Nr)rrrrr!FszbTestAbstractAsyncContextManager.test_structural_subclassing.<locals>.ManagerFromScratch.__aenter__c�sdS)Nr)r�exc_type�	exc_value�	tracebackrrrrHszaTestAbstractAsyncContextManager.test_structural_subclassing.<locals>.ManagerFromScratch.__aexit__N)rrrr!rrrrr�ManagerFromScratchEsr6cseZdZ�fdd�Z�ZS)zQTestAbstractAsyncContextManager.test_structural_subclassing.<locals>.DefaultEnterc�st�j|�IdHdS)N)rr)rr)rrrrNsz[TestAbstractAsyncContextManager.test_structural_subclassing.<locals>.DefaultEnter.__aexit__)rrrrrrr)rrrMsrc@seZdZdZdS)zOTestAbstractAsyncContextManager.test_structural_subclassing.<locals>.NoneAenterN)rrrr!rrrr�
NoneAenterSsr7c@seZdZdZdS)zNTestAbstractAsyncContextManager.test_structural_subclassing.<locals>.NoneAexitN)rrrrrrrr�	NoneAexitXsr8)Z
assertTrue�
issubclassr�assertFalse)rr6rr7r8rrr�test_structural_subclassingDsz;TestAbstractAsyncContextManager.test_structural_subclassingN)rrrrr#r/r2r;rrrrrsrc@s�eZdZedd��Zedd��Zedd��Zedd��Zed	d
��Zedd��Z	ed
d��Z
edd��Zedd��Zedd��Z
dd�Zdd�Zejdd��Zejedd���Zedd��ZdS) �AsyncContextManagerTestCasec
�sng�t�fdd��}|�4IdH�*}|��dg�|�|d���|�WdQIdHRX|��dddg�dS)Ncs��d�dV��d�dS)N��*i�)r+r)�staterr�woohoocs
zEAsyncContextManagerTestCase.test_contextmanager_plain.<locals>.woohoor=r>i�)rr,r+)rr@�xr)r?r�test_contextmanager_plain`sz5AsyncContextManagerTestCase.test_contextmanager_plainc�s�g�t�fdd��}|�t��P|�4IdH�0}|��dg�|�|d���|�t��WdQIdHRXWdQRX|��dddg�dS)Nc	s&��d�z
dVWd��d�XdS)Nr=r>i�)r+r)r?rrr@qs

zGAsyncContextManagerTestCase.test_contextmanager_finally.<locals>.woohoor=r>i�)rr)�ZeroDivisionErrorr,r+)rr@rAr)r?r�test_contextmanager_finallyns
 z7AsyncContextManagerTestCase.test_contextmanager_finallyc�sBtdd��}|�}|��IdH|�|�ttd�d�IdH�dS)NcSs
dVdS)Nrrrrr�whee�szHAsyncContextManagerTestCase.test_contextmanager_no_reraise.<locals>.whee�foo)rr!r:rr1)rrEr$rrr�test_contextmanager_no_reraise�sz:AsyncContextManagerTestCase.test_contextmanager_no_reraisec	�sRtdd��}|�}|��IdH|�t��|�ttd�d�IdHWdQRXdS)NcSs"y
dVWndVYnXdS)Nrrrrr�whoo�s
zTAsyncContextManagerTestCase.test_contextmanager_trap_yield_after_throw.<locals>.whoorF)rr!r)�RuntimeErrorrr1)rrHr$rrr�*test_contextmanager_trap_yield_after_throw�s
zFAsyncContextManagerTestCase.test_contextmanager_trap_yield_after_throwc	�s:tdd��}|�}|�t��|��IdHWdQRXdS)NcSsdS)NrrrrrrH�szKAsyncContextManagerTestCase.test_contextmanager_trap_no_yield.<locals>.whoo)rr)rIr!)rrHr$rrr�!test_contextmanager_trap_no_yield�sz=AsyncContextManagerTestCase.test_contextmanager_trap_no_yieldc	�sNtdd��}|�}|��IdH|�t��|�ddd�IdHWdQRXdS)NcSsdVdVdS)NrrrrrrH�szOAsyncContextManagerTestCase.test_contextmanager_trap_second_yield.<locals>.whoo)rr!r)rIr)rrHr$rrr�%test_contextmanager_trap_second_yield�s
zAAsyncContextManagerTestCase.test_contextmanager_trap_second_yieldc	�sNtdd��}|�}|��IdH|�t��|�tdd�IdHWdQRXdS)NcSs(y
dVWntk
r"t�YnXdS)N)rI�SyntaxErrorrrrrrH�s
zLAsyncContextManagerTestCase.test_contextmanager_non_normalised.<locals>.whoo)rr!r)rMrrI)rrHr$rrr�"test_contextmanager_non_normalised�s
z>AsyncContextManagerTestCase.test_contextmanager_non_normalisedc
�sxg�t��fdd��}|�4IdH�2}���dg���|d���|�td��WdQIdHRX���dddg�dS)Nc
s^��d�y
dVWnDtk
rX}z&��|jd����dddg�Wdd}~XYnXdS)Nr=r>ri�)r+rCrr,)�e)rr?rrr@�s

zFAsyncContextManagerTestCase.test_contextmanager_except.<locals>.woohoor=r>i�)rr,r+rC)rr@rAr)rr?r�test_contextmanager_except�s
z6AsyncContextManagerTestCase.test_contextmanager_exceptc�s�tdd��}x�td�td�fD]�}|jt|�d��ny(|�4IdH�
|�WdQIdHRXWn.tk
r�}z|�||�Wdd}~XYnX|�|�d��WdQRXqWdS)NcSs
dVdS)Nrrrrrr@�szOAsyncContextManagerTestCase.test_contextmanager_except_stopiter.<locals>.woohoo�spamZham)�typez was suppressed)r�
StopIterationr*ZsubTestrR�	Exceptionr �fail)rr@Zstop_excZexrrr�#test_contextmanager_except_stopiter�sz?AsyncContextManagerTestCase.test_contextmanager_except_stopiterc�s�tdd��}|�t��.|�4IdH�ddWdQIdHRXWdQRX|�t��*|�4IdH�
t�WdQIdHRXWdQRXdS)Nc
SsBy
dVWn2tk
r<}ztd|���|�Wdd}~XYnXdS)Nzcaught )rTrI)r-rrrr@�s
zQAsyncContextManagerTestCase.test_contextmanager_wrap_runtimeerror.<locals>.woohoor=r)rr)rIr*)rr@rrr�%test_contextmanager_wrap_runtimeerror�s"zAAsyncContextManagerTestCase.test_contextmanager_wrap_runtimeerrorcCs"dd�}t|dd�dd���}|S)Ncs�fdd�}|S)Ncs&x ���D]\}}t|||�q
W|S)N)�items�setattr)r�k�v)�kwrr�decorate�sz]AsyncContextManagerTestCase._create_contextmanager_attribs.<locals>.attribs.<locals>.decorater)r\r]r)r\r�attribs�szKAsyncContextManagerTestCase._create_contextmanager_attribs.<locals>.attribs�bar)rFcSs
dVdS)zWhee!Nr)rQrrr�baz�szGAsyncContextManagerTestCase._create_contextmanager_attribs.<locals>.baz)r)rr^r`rrr�_create_contextmanager_attribs�sz:AsyncContextManagerTestCase._create_contextmanager_attribscCs(|��}|�|jd�|�|jd�dS)Nr`r_)rar,rrF)rr`rrr�test_contextmanager_attribs�sz7AsyncContextManagerTestCase.test_contextmanager_attribscCs|��}|�|jd�dS)NzWhee!)rar,�__doc__)rr`rrr�test_contextmanager_doc_attribsz:AsyncContextManagerTestCase.test_contextmanager_doc_attribc
�s<|��d�}|�|jd�|4IdH�WdQIdHRXdS)NzWhee!)rar,rc)rr`rrr�*test_instance_docstring_given_cm_docstringszFAsyncContextManagerTestCase.test_instance_docstring_given_cm_docstringc
�sFtdd��}|ddddd�4IdH�}|�|d�WdQIdHRXdS)	NcSs||||fVdS)Nr)rrr�kwdsrrrr@sz9AsyncContextManagerTestCase.test_keywords.<locals>.woohoor%r'�!�,)rrrrf)r%r'rgrh)rr,)rr@�targetrrr�
test_keywordssz)AsyncContextManagerTestCase.test_keywordsN)rrrrrBrDrGrJrKrLrNrPrVrWrarbrZrequires_docstringsrdrerjrrrrr<^s 


r<c@sXeZdZGdd�de�ZeZdd�Zedd��Zedd��Z	ed	d
��Z
edd��Zd
S)�TestAsyncExitStackc@s0eZdZedd��Zdd�Zdd�Zdd�Zd	S)
z%TestAsyncExitStack.SyncAsyncExitStackcsjt���t�|�}|��fdd�����|��}|s@|��S|j}y|�Wn||_|�YnXdS)Ncs���S)N)�stop)�f)rrr�<lambda>!�zETestAsyncExitStack.SyncAsyncExitStack.run_coroutine.<locals>.<lambda>)rZget_event_loopZ
ensure_futureZadd_done_callbackZrun_foreverZ	exception�result�__context__)r
rmr-r"r)rr�
run_coroutines
z3TestAsyncExitStack.SyncAsyncExitStack.run_coroutinecCs|�|���S)N)rr�aclose)rrrrr
1sz+TestAsyncExitStack.SyncAsyncExitStack.closecCs|�|���S)N)rrr!)rrrr�	__enter__4sz/TestAsyncExitStack.SyncAsyncExitStack.__enter__cGs|�|j|��S)N)rrr)r�exc_detailsrrr�__exit__7sz.TestAsyncExitStack.SyncAsyncExitStack.__exit__N)rrr�staticmethodrrr
rtrvrrrr�SyncAsyncExitStacksrxcCs(t��|_t�|j�|�|jj�dS)N)rrrr	Z
addCleanupr
)rrrr�setUp<s
zTestAsyncExitStack.setUpc
�s�difdifdifdtdd�fdtdd�fdtdd�fg}g��fdd�}t�4IdH��}xpt|�D]d\}}|r�|r�|j|f|�|�}n4|r�|j|f|��}n|r�|j|f|�}n
|�|�}|�||�qdWxH|jD]>}|�|dj|�|�|dj|j�|�	|dj
|j
�q�WWdQIdHRX|��|�g�t�4IdH�Z}|�t
��|jdd�WdQRX|�t
��|jjd	d�WdQRX|j|d
d�WdQIdHRX|��ddd
ifg�dS)
Nr)r=)r=�r=)Zexamplec�s��||f�dS)zTest metadata propagationN)r+)rrf)rprr�_exitLsz5TestAsyncExitStack.test_async_callback.<locals>._exit)�argrz�)�callbackr|r|)�dictr�reversed�push_async_callbackr �_exit_callbacks�__wrapped__ZassertNotEqualr�assertIsNonercr,r)r1�
exit_stack)rZexpectedr{�stackrrfrmrr)rpr�test_async_callbackAs>
(z&TestAsyncExitStack.test_async_callbackc
�s8t���fdd�}dd�}�fdd�}Gdd�dt�}���4IdH��}|�|���|jd	d
|�||�}|�|���|jd	d
j|�|�|���|jd	d
|�||�}|�|���|jd	d
j|�|�|���|jd	d
|�|�|���|jd	d
|�d
dWdQIdHRXdS)Nc�s��|��dS)N)r )r3r-�exc_tb)�
exc_raisedrrr�_expect_excnsz7TestAsyncExitStack.test_async_push.<locals>._expect_excc�sdS)NTr)rurrr�
_suppress_excpsz9TestAsyncExitStack.test_async_push.<locals>._suppress_excc�s"��|���|���|�dS)N)r�)r3r-r�)rrr�
_expect_okrs

z6TestAsyncExitStack.test_async_push.<locals>._expect_okc@s$eZdZdd�Zdd�Zdd�ZdS)z2TestAsyncExitStack.test_async_push.<locals>.ExitCMcSs
||_dS)N)�	check_exc)rr�rrr�__init__wsz;TestAsyncExitStack.test_async_push.<locals>.ExitCM.__init__c�s|�d�dS)NzShould not be called!)rU)rrrrr!ysz=TestAsyncExitStack.test_async_push.<locals>.ExitCM.__aenter__c�s|j|�IdHdS)N)r�)rrurrrr{sz<TestAsyncExitStack.test_async_push.<locals>.ExitCM.__aexit__N)rrrr�r!rrrrr�ExitCMvsr����r=r)rC�objectr��push_async_exitr r��__self__)rr�r�r�r�r��cmr)r�rr�test_async_pushks*





z"TestAsyncExitStack.test_async_pushc
�s�G�fdd�dt�}g�|�}t�4IdH�T}|j�fdd��}|�|�|�|�IdH|�|jddj|���d�WdQIdHRX|�	�dddd	g�dS)
Ncs$eZdZ�fdd�Z�fdd�ZdS)z;TestAsyncExitStack.test_async_enter_context.<locals>.TestCMc�s��d�dS)Nr=)r+)r)rprrr!�szFTestAsyncExitStack.test_async_enter_context.<locals>.TestCM.__aenter__c�s��d�dS)Nr})r+)rru)rprrr�szETestAsyncExitStack.test_async_enter_context.<locals>.TestCM.__aexit__N)rrrr!rr)rprr�TestCM�sr�c�s��d�dS)N�)r+r)rprrr{�sz:TestAsyncExitStack.test_async_enter_context.<locals>._exitr�r=rzr}r�)
r�rr�ZassertIsNotNone�enter_async_contextr r�r�r+r,)rr�r�r�r{r)rpr�test_async_enter_context�s
z+TestAsyncExitStack.test_async_enter_contextc
�sdd�}d��fdd�}yh|��4IdH�H}|�|t�|�|t�|�|t�|�|�|�|t�ddWdQIdHRXWnPtk
r�}z2|�|jt�|�|jjt�|�	|jjj�Wdd}~XYnX|�
d��d}|�|t�|�|jt�dS)Nc�s|�dS)Nr)r-rrr�	raise_exc�szHTestAsyncExitStack.test_async_exit_exception_chaining.<locals>.raise_excc�s|�dS)NTr)ru)�
saved_detailsrr�suppress_exc�szKTestAsyncExitStack.test_async_exit_exception_chaining.<locals>.suppress_excr=rz0Expected IndexError, but no exception was raised)r�r��
IndexError�KeyError�AttributeErrorr�r(ZassertIsInstancerqr�rUrC)rr�r�r�r-Z	inner_excr)r�r�"test_async_exit_exception_chaining�s&
"
z5TestAsyncExitStack.test_async_exit_exception_chainingN)rrrrrxr�ryrr�r�r�r�rrrrrks*$rk�__main__)r�
contextlibrrrrZtestrZunittestZtest.test_contextlibrrZTestCaserr<rkr�mainrrrr�<module>sE=-