HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/test_asyncio/__pycache__/test_sslproto.cpython-310.opt-1.pyc
o

�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�</usr/local/lib/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$r�logger�getEffectiveLevel�setLevel�logging�FATALZ_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-ZassertIsNotNonerH)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!rO�
data_received�rr#Ztransprrr� test_data_received_after_closing�s

z7SslProtoHandshakeTests.test_data_received_after_closingcCs4|��}|�|�|j}|��|�|�d��dSrU)r$r-rr!rO�writerWrrr�test_write_after_closing�s

z/SslProtoHandshakeTests.test_write_after_closing)�__name__�
__module__�__qualname__rr$r-r5r7rArGrJrMrRrTrXrZ�
__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�bufsizerhrrr�__init__�s

z7BaseStartTLS.test_buf_feed_data.<locals>.Proto.__init__cSs|jr|jS|jSr	)rhrfrd�r�sizehintrrr�
get_buffer�sz9BaseStartTLS.test_buf_feed_data.<locals>.Proto.get_buffercSs>|jr|j|jd|�7_dS|j|jd|�7_dSr	)rhrgrfrd)r�nsizerrr�buffer_updated�sz=BaseStartTLS.test_buf_feed_data.<locals>.Proto.buffer_updatedN)r[r\r]rjrmrorrrr�Proto�srp)FT�s12345�s1234��drzempty buffer)r
�BufferedProtocolrZ_feed_data_to_buffered_proto�assertEqualrgr2�RuntimeError)rrprhrrrr�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�lenrv�	start_tls�sendallr,rN�	SHUT_RDWRr!��sockrg��	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rj��
zLBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.__init__c� |jd7_��|jd�dS�Nrq�r�rv�r�trrrrr-��zSBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.connection_madecS�|j�|�dSr	�r��
set_result�rrgrrrrV��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�r[r\r]rjr-rVr;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>r~)	r
�sleeprr:�create_connectionrYr�rvr!)�addrr�r�new_tr�r�r��client_contextr�r�r�r�client�s�

��


z>BaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.client��timeout��PAYLOAD_SIZEr�simple_server_sslcontext�simple_client_sslcontextr
r�
tcp_serverr�r�run_until_complete�wait_forr�r�
SHORT_TIMEOUT�weakref�ref�
gc_collectrO�rr�r��srvr�r�r�r�rr�r�!test_start_tls_client_reg_proto_1�s 
���
z.BaseStartTLS.test_start_tls_client_reg_proto_1cry)	Nrzcs^|��j�|j�dd�|�d�|�t���}��t|�t���|�tj	�|�
�dSr{)r�r�r�r�r�r�rvr,rNr�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rj.r�zMBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.__init__cs&||_|jd7_��|jd�dSr�)r�r�rvr�rrrr-3szTBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.connection_madecSr�r	r�r�rrrrV: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>�sslr~)r
r�rr:r�rvrYr!�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)Nrzrcs�|��j�|�t���}��t|�t���|j�dd�|�d�|�t���}��t|�t���|�d�|�t���}��t|�t���|�tj	�|�
�dS)NTr|r~�2rr�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�rcrd)rr�rrrrjvszQBaseStartTLS.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	)rdrkrrrrm~szSBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.get_buffercs*��|d�|j�t|jd|���dSr�)rvr�r��bytesrd)Zslfrnrrrro�szWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.buffer_updatedN)r[r\r]rjr-rmror)r�rrr�ClientProtoFirstus
r�cr�)
zIBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecondcSr�r�r�r�rrrrj�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rV�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>r~r�rq)
r
r�rr:r�rYr�rvrSr!)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
rurr�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)	Nrzcs�|��j�|�t���}��t|�t���z'z�j��jd�|�d�}Wn	ty0YnwW|�	�dSW|�	�dS|�	�w�N�)
r�r�r�r�rvrZcall_soon_threadsafer�rIr!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rj�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rV�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�rY�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)Nrzsanswercsf|��j�|�|�|�t���}��t|�t���|���|���|�t����|��dSr	)	r�r��connectr�r�rvr�r�r!)r�r�rg)�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|_dSrb)�on_con�on_con_lost�on_got_hellorgr.)rr�r�r�rrrrj	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	)rgr�r�r�r��r�rrrVs�zGBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.data_receivedcSs.d|_|dur|j�d�dS|j�|�dSr	)r.r�r��
set_exception)r�excrrrrHszIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_lostN)r[r\r]rjr-r�rVrHrr�rr�ServerProtosr�c�s��|IdH}|�����|jd��jj||�d�jd�IdH}|�|�|IdH|���|IdH��|j��|��dS)Nr&T)r}r)rYrvrgrr�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:�
create_serverZsockets�getsocknameZ
tcp_clientr�r
r�r!Zwait_closedrv)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�rIr!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>.clientrq�Zmax_clients�backlog)rr�r�set_exception_handlerr�r�r
r�r�r�rKrvr�r�rr�rO�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>.clientrqr�zSSL handshake.*is taking longer)
rr�rrr�r2rIr�r�rvrr)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)NTr|)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
rrZLOOPBACK_TIMEOUTrrrrr��s��zJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.clientrqr�)rrrr�r�r�r�r�ZSSLCertVerificationErrorr�r�rr)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)
NcSr
r	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)NTr|�A
rqs!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
rrv�readlinerYr�r�rr!rr�rrr��s��
�z@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.clientrqr�r)	rrrr�r�r�r�r�rv)rr�r�r��resr)r�rr�r�#test_start_tls_client_corrupted_ssl�s��z0BaseStartTLS.test_start_tls_client_corrupted_sslN)r[r\r]r�rZLONG_TIMEOUTr�rarxr�r�r�r�r�r�rr	r
rrrrrr_�s/B@[=Y0!!r_c@�eZdZdd�ZdS)�SelectorStartTLSTestscC�t��Sr	)r
ZSelectorEventLooprrrrra��zSelectorStartTLSTests.new_loopN�r[r\r]rarrrrr�sr�ProactorEventLoopzWindows onlyc@r)�ProactorStartTLSTestscCrr	)r
rrrrrrarzProactorStartTLSTests.new_loopNrrrrrr�sr�__main__)�__doc__rErNZunittestr�rr��ImportErrorr
rrr�testrZtest.test_asynciorrrZ
func_testsr
ZskipIfZTestCaserZFunctionalTestCaseMixinr_rZ
skipUnless�hasattrrr[r�rrrr�<module>sF�W�