Your IP : 216.73.216.213


Current Path : /opt/alt/python310/lib64/python3.10/test/test_asyncio/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/test_asyncio/__pycache__/test_sslproto.cpython-310.pyc

o

0�ig�@sRdZddlZddlZddlZddlZddlmZzddlZWney)dZYnwddlZddlm	Z	ddlm
Z
ddlmZddlm
Z
ddlmZdd	lmZd
d�Ze�edud�Gd
d�dej��ZGdd�dej�Ze�edud�Gdd�deej��Ze�edud�e�eed�d�Gdd�deej���Zedkr�e��dSdS)zTests for asyncio/sslproto.py.�N)�mock)�log)�	protocols)�sslproto)�support)�utils)�
functionalcCst�d�dS�N)�asyncioZset_event_loop_policy�rr�F/opt/alt/python310/lib64/python3.10/test/test_asyncio/test_sslproto.py�tearDownModulesr
z
No ssl modulecs�eZdZ�fdd�Zddd�dd�Zdd�dd	�Zd
d�Zdd
�Zdd�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Z�ZS)�SslProtoHandshakeTestscs$t���t��|_|�|j�dSr	)�super�setUpr
Znew_event_loop�loopZset_event_loop��self��	__class__rrrs

zSslProtoHandshakeTests.setUpN)�waiter�protocCsRt��}|durt��}tj|j|||dd�}|�|j�	�|�|�
|jj�|S)Ng�������?��ssl_handshake_timeout)�
test_utils�dummy_ssl_contextr
�Protocolr�SSLProtocolr�assertIs�_app_transport�get_protocolZ
addCleanup�close)rrr�
sslcontext�	ssl_protorrr�ssl_protocol"s�z#SslProtoHandshakeTests.ssl_protocol)�do_handshakecCstt��}t��}d|j_|r||j_ndd�}||j_tjd|d��|�|�Wd�|S1s3wY|S)N�cSsgSr	r)�callbackrrr�mock_handshake3�z>SslProtoHandshakeTests.connection_made.<locals>.mock_handshakezasyncio.sslproto._SSLPipe)�return_value)r�Mock�shutdownr*r%Zside_effectZpatch�connection_made)rr#r%�	transportZsslpiper(rrrr-,s

��z&SslProtoHandshakeTests.connection_madecC�`t��}t��}t��}|�td��tj|j|||dd�Wd�dS1s)wYdS)N�a positive numberrr�	rrrr+�assertRaisesRegex�
ValueErrorrrr�rr"Z	app_protorrrr�test_handshake_timeout_zero:��"�z2SslProtoHandshakeTests.test_handshake_timeout_zerocCr/)Nr0i����rr1r4rrr�test_handshake_timeout_negativeBr6z6SslProtoHandshakeTests.test_handshake_timeout_negativecCsH|j��}|j|d�}|�|�|��t�|j�|�|��t	�dS�N�r)
r�
create_futurer$r-�eof_receivedr�run_briefly�assertIsInstance�	exception�ConnectionResetError�rrr#rrr�test_eof_received_waiterJs

z/SslProtoHandshakeTests.test_eof_received_waiterc	CsZ|j��}|j|d�}tj��}tj�tj�z|�	d�Wtj�|�dStj�|�wr8)
rr:r$rZloggerZgetEffectiveLevelZsetLevel�loggingZFATALZ_fatal_error)rrr#Z	log_levelrrr�test_fatal_error_no_name_errorRs

z5SslProtoHandshakeTests.test_fatal_error_no_name_errorcCsJ|j��}|j|d�}|�|�|�t�t�|j�|�|�	�t�dSr8)
rr:r$r-�connection_lost�ConnectionAbortedErrorrr<r=r>r@rrr�test_connection_lostas


z+SslProtoHandshakeTests.test_connection_lostcCsH|j��}|j|d�}|�|�}t�|j�|j��|�|j	j
�dSr8)rr:r$r-rr<rr!�
assertTrue�abortZcalled)rrr#r.rrr�test_close_during_handshakeks


z2SslProtoHandshakeTests.test_close_during_handshakecCsx|j��}|j|d�}|�|�d��t�}|�|�d|�|�|�|�|�|�d��|�	d�|�|�d��dS)Nr9�socket)
rr:r$�assertIsNoneZ_get_extra_info�objectrr-ZassertIsNotNonerD)rrr#�defaultrrr�(test_get_extra_info_on_closed_connectionvs


z?SslProtoHandshakeTests.test_get_extra_info_on_closed_connectioncCsN|j��}|j|d�}t��}|j�|�|�|j��|�|�|j	|�dSr8)
rr:r$r
rr�set_protocolrr Z
_app_protocol)rrr#Z
new_app_protorrr�test_set_new_app_protocol�s
z0SslProtoHandshakeTests.test_set_new_app_protocolcCs4|��}|�|�|j}|��|�|�d��dS�Nsdata)r$r-rr!rK�
data_received�rr#Ztransprrr� test_data_received_after_closing�s

z7SslProtoHandshakeTests.test_data_received_after_closingcCs4|��}|�|�|j}|��|�|�d��dSrQ)r$r-rr!rK�writerSrrr�test_write_after_closing�s

z/SslProtoHandshakeTests.test_write_after_closing)�__name__�
__module__�__qualname__rr$r-r5r7rArCrFrIrNrPrTrV�
__classcell__rrrrrs


rc@sveZdZdZejZdd�Zdd�Zdd�Z	dd	�Z
d
d�Zdd
�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd�ZdS)�BaseStartTLSi�cCst�r	)�NotImplementedErrorrrrr�new_loop�r)zBaseStartTLS.new_loopc	CsGdd�dtj�}dD]}}|d|�}t�|d�|�|jd�|d|�}t�|d�|�|jd�|d|�}t�|d�|�|jd�|d|�}t�|d�|�|jd�|d	|�}t�|d�|�|jd�|d
|�}|�td��t�|d�Wd�n1s�wYqdS)Nc@s$eZdZdd�Zdd�Zdd�ZdS)z.BaseStartTLS.test_buf_feed_data.<locals>.ProtocSs&t|�|_t|j�|_d|_||_dS�Nr&)�	bytearray�buf�
memoryview�mv�data�usemv)r�bufsizerdrrr�__init__�s

z7BaseStartTLS.test_buf_feed_data.<locals>.Proto.__init__cSs|jr|jS|jSr	)rdrbr`�r�sizehintrrr�
get_buffer�sz9BaseStartTLS.test_buf_feed_data.<locals>.Proto.get_buffercSs>|jr|j|jd|�7_dS|j|jd|�7_dSr	)rdrcrbr`)r�nsizerrr�buffer_updated�sz=BaseStartTLS.test_buf_feed_data.<locals>.Proto.buffer_updatedN)rWrXrYrfrirkrrrr�Proto�srl)FT�s12345�s1234��drzempty buffer)r
�BufferedProtocolrZ_feed_data_to_buffered_proto�assertEqualrcr2�RuntimeError)rrlrdrrrr�test_buf_feed_data�s.





���zBaseStartTLS.test_buf_feed_datac��d�j�t���t������fdd�}G�fdd�dtj������fdd�}�j|�jd��}�j�	tj
||j�tj
d��Wd�n1sKwYt����t�������dS)	N�1cs�|��j�|�t���}��t|�t���|j�dd�|�d�|�t���}��t|�t���|�tj	�|�
�dS�NT��server_side�O��
settimeout�TIMEOUT�recv_all�lenrr�	start_tls�sendallr,rJ�	SHUT_RDWRr!��sockrc��	HELLO_MSGr�server_contextrr�serve�s
z=BaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.servec�0eZdZdd�Z�fdd�Zdd�Zdd�Zd	S)
zCBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProtocS�||_||_d|_dS�Nr��on_data�on_eof�con_made_cnt�rr�r�rrrrf��
zLBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.__init__c� |jd7_��|jd�dS�Nrm�r�rr�r�trrrrr-��zSBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.connection_madecS�|j�|�dSr	�r��
set_result�rrcrrrrR��zQBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.data_receivedcS�|j�d�dS�NT�r�r�rrrrr;�r�zPBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.eof_receivedN�rWrXrYrfr-rRr;rrrr�ClientProto��
r�c�s��t�d�IdH�j����j����jj���fdd�g|�R�IdH\}}|����j�||��IdH}���IdHd�|����IdH|��dS)N��?c�
����Sr	rr�r�r�r�rr�<lambda>�
zPBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.client.<locals>.<lambda>rz)	r
�sleeprr:�create_connectionrUr�rrr!)�addrr�r�new_tr�r�r��client_contextr�r�r�r�client�s�

��


z>BaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.client�Ztimeout��PAYLOAD_SIZEr�simple_server_sslcontext�simple_client_sslcontextr
r�
tcp_serverr}r�run_until_complete�wait_forr�r�
SHORT_TIMEOUT�weakref�ref�
gc_collectrK�rr�r��srvr�r�r�r�rr�r�!test_start_tls_client_reg_proto_1�s 
���
z.BaseStartTLS.test_start_tls_client_reg_proto_1cru)	Nrvcs^|��j�|j�dd�|�d�|�t���}��t|�t���|�tj	�|�
�dSrw)r|r}r�r�r~rrrr,rJr�r!r�r�rrr�!s
z>BaseStartTLS.test_create_connection_memory_leak.<locals>.servecr�)
zDBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProtocSr�r�r�r�rrrrf.r�zMBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.__init__cs&||_|jd7_��|jd�dSr�)r�r�rrr�rrrr-3szTBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.connection_madecSr�r	r�r�rrrrR:r�zRBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.data_receivedcSr�r�r�rrrrr;=r�zQBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.eof_receivedNr�rrrrr�-s
r�c�s��t�d�IdH�j����j����jj���fdd�g|�Rd�i�IdH\}}���IdHd�|����IdH|��dS)Nr�cr�r	rrr�rrr�Gr�zQBaseStartTLS.test_create_connection_memory_leak.<locals>.client.<locals>.<lambda>�sslrz)r
r�rr:r�rrrUr!�r�r�rr�r�rr�@s�

���

z?BaseStartTLS.test_create_connection_memory_leak.<locals>.clientr�r�r�rr�r�"test_create_connection_memory_leaks 
���
z/BaseStartTLS.test_create_connection_memory_leakcs�d�j�t���t���d����fdd�}G��fdd�dtj��G�fdd�dtj��������fd	d
�}�j|�jd��}�j	�
tj||j��jd��Wd�dS1s\wYdS)Nrvrcs�|��j�|�t���}��t|�t���|j�dd�|�d�|�t���}��t|�t���|�d�|�t���}��t|�t���|�tj	�|�
�dS)NTrxrz�2r{r�r�rrr�bs

z=BaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.servecs4eZdZdd�Z�fdd�Zdd�Z�fdd�Zd	S)
zHBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirstcSs||_td�|_dSr�)r�r_r`)rr�rrrrfvszQBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.__init__c��d7�dSr�r�rr���client_con_made_callsrrr-z�zXBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.connection_madecSs|jSr	)r`rgrrrri~szSBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.get_buffercs*��|d�|j�t|jd|���dSr�)rrr�r��bytesr`)Zslfrjrrrrk�szWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.buffer_updatedN)rWrXrYrfr-rirkr)r�rrr�ClientProtoFirstus
r�cr�)
zIBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecondcSr�r�r�r�rrrrf�r�zRBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.__init__cr�r�rr�r�rrr-�r�zYBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.connection_madecSr�r	r�r�rrrrR�r�zWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.data_receivedcSr�r�r�rrrrr;�r�zVBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.eof_receivedNr�rr�rr�ClientProtoSecond�s
r�c�s��t�d�IdH�j����j��}�j��}�jj��fdd�g|�R�IdH\}}|����j�||��IdH}���IdHd�|���|��||����|IdHd�|���|IdH|�	����d�dS)Nr�cs���Sr	rr)r��on_data1rrr��szPBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.client.<locals>.<lambda>rzr�rm)
r
r�rr:r�rUr�rrrOr!)r�Zon_data2r�r�rr�)r�r�r�r�r�r)r�rr��s(�


��



z>BaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.clientr�)
r�rr�r�r
rqrr�r}rr�r�r�r�r)r�r�r�r�r�rr�r�!test_start_tls_client_buf_proto_1[s
��"�z.BaseStartTLS.test_start_tls_client_buf_proto_1cs�d�j�t����j������fdd�}G�fdd�dtj�������fdd�}�j|�jd��}�j�	tj
||j�tj
d��Wd�dS1sNwYdS)	Nrvcs�|��j�|�t���}��t|�t���z'z�j��jd�|�d�}Wn	ty0YnwW|�	�dSW|�	�dS|�	�w�N�)
r|r}r~rrrrZcall_soon_threadsafer�rEr!r�)r�r�server_waits_on_handshakerrr��s����z=BaseStartTLS.test_start_tls_slow_client_cancel.<locals>.servecr�)
zCBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProtocSr�r�r�r�rrrrf�r�zLBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.__init__cr�r�r�r�rrrr-�r�zSBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.connection_madecSr�r	r�r�rrrrR�r�zQBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.data_receivedcSr�r�r�rrrrr;�r�zPBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.eof_receivedNr�rrrrr��r�r�c�s��t�d�IdH�j����j����jj���fdd�g|�R�IdH\}}|����IdH��tj��t��j�	||��d�IdHWd�dS1sSwYdS)Nr�cr�r	rrr�rrr��r�zPBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.client.<locals>.<lambda>)
r
r�rr:r�rU�assertRaises�TimeoutErrorr�r�r��r�r�r�rr�r�rr��s"�

��

�"�z>BaseStartTLS.test_start_tls_slow_client_cancel.<locals>.clientr�)r�rr�rr:r
rr�r}r�r�r�rr�r�rr�r�!test_start_tls_slow_client_cancel�s

��"�z.BaseStartTLS.test_start_tls_slow_client_cancelcs�d�j�d�t���t���d������fdd��G�fdd�dtj������fdd��������fd	d
�}�j�|��dS)Nrvsanswercsf|��j�|�|�|�t���}��t|�t���|���|���|�t����|��dSr	)	r|r}Zconnectr~rrrr�r�r!)r�r�rc)�ANSWERr��answerr�rrrr��s


z4BaseStartTLS.test_start_tls_server_1.<locals>.clientcs8eZdZdd�Zdd�Zdd�Z�fdd�Zd	d
�ZdS)z9BaseStartTLS.test_start_tls_server_1.<locals>.ServerProtocSs"||_||_||_d|_d|_dSr^)�on_con�on_con_lost�on_got_hellorcr.)rr�r�r�rrrrf	s

zBBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.__init__cSs||_|j�|�dSr	)r.r�r�r�rrrr-szIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_madecSs
||_dSr	)r.r�rrr�replace_transports
zKBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.replace_transportcs4|j|7_t|j�t��kr|j�d�dSdSr	)rcrr�r�r��r�rrrRs�zGBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.data_receivedcSs.d|_|dur|j�d�dS|j�|�dSr	)r.r�r�Z
set_exception)r�excrrrrDszIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_lostN)rWrXrYrfr-r�rRrDrr�rr�ServerProtosr�c�s��|IdH}|�����|jd��jj||�d�jd�IdH}|�|�|IdH|���|IdH��|j��|��dS)Nr&T)ryr)rUrrrcrr�r}r�r!)rr�r�r�r�r�)r�r�rr�rr�main#s�

�



z2BaseStartTLS.test_start_tls_server_1.<locals>.mainc�s���j��}�j��}�j��}�|||���j��fdd�dd�IdH}|jd����j��fdd��jd��tj��|||��jd�IdHWd�n1sTwY|�	�|�
�IdH�����dS)Ncs�Sr	rr)rrrr�=�zHBaseStartTLS.test_start_tls_server_1.<locals>.run_main.<locals>.<lambda>z	127.0.0.1rcs
�|��Sr	r�r�)r�r�rrr�@r�r�)rr:Z
create_serverZsocketsZgetsocknameZ
tcp_clientr}r
r�r!Zwait_closedrr)r�r�r��server)r�r�r�r�r�r)r�rr�run_main6s(�



����z6BaseStartTLS.test_start_tls_server_1.<locals>.run_main)r�rr�r�r
rrr�)rr�r)	r�r�r�r�r�r�r�rr�r�test_start_tls_server_1�s

z$BaseStartTLS.test_start_tls_server_1cs�fdd�}�j�|��dS)Nc�s����td���j�ddd�IdHWd�n1swYt��}��td���j�dd|�IdHWd�dS1sCwYdS)NzSSLContext, gotzis not supported)r2�	TypeErrorrr�rr���sslctxrrrr�Ms��"�z4BaseStartTLS.test_start_tls_wrong_args.<locals>.main)rr�)rr�rrr�test_start_tls_wrong_argsLsz&BaseStartTLS.test_start_tls_wrong_argsc	s�t���g��j��fdd��d��fdd�}��fdd�}�j|ddd	��'}��tj���j�||j	��Wd�n1sBwYWd�n1sQwY��
�����g�t�
���t�������dS)
Nc�
��|�Sr	��append�r�ctx��messagesrrr�]r�z5BaseStartTLS.test_handshake_timeout.<locals>.<lambda>FcsNz!z|�d�Wntyd�YnwW|��dSW|��dS|��w)Nr�T�r~rEr!r�)�server_side_abortedrrr�as���z3BaseStartTLS.test_handshake_timeout.<locals>.serverc�s6�t��jjtjg|�R�dtjd��d�IdHdS)N��r��server_hostnamerr�)r
r�rr�rrr�)r���
client_sslctxrrrr�js�����z3BaseStartTLS.test_handshake_timeout.<locals>.clientrm�Zmax_clientsZbacklog)rr�r�set_exception_handlerr�r�r
r�r�r�rGrrr�r�rr�rK�rr�r�r�r)r�r�rr�r�test_handshake_timeoutWs*	
����

z#BaseStartTLS.test_handshake_timeoutc	s�t���g�|j��fdd��dd�}�fdd�}|j|ddd��'}|�td	��|j�||j��Wd�n1s=wYWd�n1sLwY|�	�g�dS)
Ncr�r	r�r�r�rrr��r�zHBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.<lambda>cSsJzz|�d�Wn	tyYnwW|��dSW|��dS|��wr�r�r�rrrr��s���zFBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.serverc�s$�tj|�ddd��IdH\}}dS)Nr�g�?r�)r
�open_connection�r��reader�writer�r�rrr��s��zFBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.clientrmr�zSSL handshake.*is taking longer)
rr�rr�r�r2rEr�r�rrr�r)r�r�r�)test_create_connection_ssl_slow_handshake�s&�����
z6BaseStartTLS.test_create_connection_ssl_slow_handshakec	s�|j�dd��t���tjdd���fdd�}�fdd�}|j|d	d	d
��0}|�tj��|j�	||j
��Wd�n1sAwYWd�dSWd�dS1sYwYdS)NcS�dSr	rr�rrrr��r�zLBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.<lambda>F)Zdisable_verifycsnz1z	|j�dd�WntjyYntyYnwW|��dSW|��dSW|��dS|��w)NTrx)r�r��SSLError�OSErrorr!r�r�rrr��s 
�����zJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.serverc�s&�tj|�dtjd��IdH\}}dS)Nr�r�)r
r�rZLOOPBACK_TIMEOUTr�r�rrr��s��zJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.clientrmr�)rr�rr�r�r�r�r�ZSSLCertVerificationErrorr�r�r�r)r�r�r�-test_create_connection_ssl_failed_certificate�s$����"�z:BaseStartTLS.test_create_connection_ssl_failed_certificatecs��j�dd��t���t����fdd�}��fdd�}�j|ddd��}�j�||j��}Wd�n1s9wY��|d	�dS)
NcSrr	rr�rrrr��r�zBBaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.<lambda>cs�|��}z9z|j�dd�|�d�|�d�|�d�Wn
tjy'YnwW|��|��dSW|��|��dS|��|��w)NTrx�A
rms!please corrupt the SSL connection)�dupr�r�r~�sendr�rr!)r�Z	orig_sockr�rrr��s(�

����
z@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.serverc�s��tj|�dd��IdH\}}��|��IdHd�|�d���tj��|��IdHWd�n1s7wY|��dS)Nr�)r�r�r�B�OK)	r
r�rr�readlinerUr�r�rr!r�r�rrr��s��
�z@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.clientrmr�r)	rr�rr�r�r�r�r�rr)rr�r�r��resr)r�rr�r�#test_start_tls_client_corrupted_ssl�s��z0BaseStartTLS.test_start_tls_client_corrupted_sslN)rWrXrYr�rZLONG_TIMEOUTr}r]rtr�r�r�r�r�r�r�r�rrrrrrr[�s/B@[=Y0!!r[c@�eZdZdd�ZdS)�SelectorStartTLSTestscC�t��Sr	)r
ZSelectorEventLooprrrrr]��zSelectorStartTLSTests.new_loopN�rWrXrYr]rrrrr
�sr
�ProactorEventLoopzWindows onlyc@r)�ProactorStartTLSTestscCrr	)r
rrrrrr]rzProactorStartTLSTests.new_loopNrrrrrr�sr�__main__)�__doc__rBrJZunittestr�rr��ImportErrorr
rrr�testrZtest.test_asynciorrrZ
func_testsr
ZskipIfZTestCaserZFunctionalTestCaseMixinr[r
Z
skipUnless�hasattrrrWr�rrrr�<module>sF�W�