HEX
Server: LiteSpeed
System: Linux server.nevid-deploma.com 4.18.0-553.111.1.lve.el8.x86_64 #1 SMP Fri Mar 13 13:42:17 UTC 2026 x86_64
User: smilepac (1037)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/cppython/lib/python3.8/test/test_asyncio/__pycache__/test_sslproto.cpython-38.opt-1.pyc
U

/D�g g�@sNdZddlZddlZddlZddlZddlZddlmZzddlZWnek
r\dZYnXddl	Z	ddl	m
Z
ddl	mZddl	mZddl
mZddl
mZd	d
�Ze�edkd�Gdd
�d
ej��ZGdd�dej�Ze�edkd�Gdd�deej��Ze�edkd�e�ee	d�d�Gdd�deej���Zedk�rJe��dS)zTests for asyncio/sslproto.py.�N)�mock)�log)�	protocols)�sslproto)�utils)�
functionalcCst�d�dS�N)�asyncioZset_event_loop_policy�r
r
�>/opt/cppython/lib/python3.8/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__r
rrs

zSslProtoHandshakeTests.setUpN)�waiter�protocCsRt��}|dkrt��}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_protor
r
r�ssl_protocol"s�z#SslProtoHandshakeTests.ssl_protocol)�do_handshakec	Cs^t��}t��}d|j_|r&||j_ndd�}||j_tjd|d��|�|�W5QRX|S)N�cSsgSrr
)�callbackr
r
r�mock_handshake3sz>SslProtoHandshakeTests.connection_made.<locals>.mock_handshakezasyncio.sslproto._SSLPipe)�return_value)r�Mock�shutdownr(r$Zside_effectZpatch�connection_made)rr"r$�	transportZsslpiper'r
r
rr+,s
z&SslProtoHandshakeTests.connection_madec	CsJt��}t��}t��}|�td��tj|j|||dd�W5QRXdS)N�a positive numberrr�	rrrr)�assertRaisesRegex�
ValueErrorrrr�rr!Z	app_protorr
r
r�test_handshake_timeout_zero:s�z2SslProtoHandshakeTests.test_handshake_timeout_zeroc	CsJt��}t��}t��}|�td��tj|j|||dd�W5QRXdS)Nr-i����rr.r1r
r
r�test_handshake_timeout_negativeBs�z6SslProtoHandshakeTests.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"r
r
r�test_eof_received_waiterJs

z/SslProtoHandshakeTests.test_eof_received_waiterc	CsP|j��}|j|d�}tj��}tj�tj�z|�	d�W5tj�|�XdSr4)
rr6r#r�logger�getEffectiveLevel�setLevel�logging�FATALZ_fatal_error)rrr"Z	log_levelr
r
r�test_fatal_error_no_name_errorRs

z5SslProtoHandshakeTests.test_fatal_error_no_name_errorcCsJ|j��}|j|d�}|�|�|�t�t�|j�|�|�	�t�dSr4)
rr6r#r+�connection_lost�ConnectionAbortedErrorrr8r9r:r<r
r
r�test_connection_lostas


z+SslProtoHandshakeTests.test_connection_lostcCsH|j��}|j|d�}|�|�}t�|j�|j��|�|j	j
�dSr4)rr6r#r+rr8rr �
assertTrue�abortZcalled)rrr"r,r
r
r�test_close_during_handshakeks


z2SslProtoHandshakeTests.test_close_during_handshakecCsx|j��}|j|d�}|�|�d��t�}|�|�d|�|�|�|�|�|�d��|�	d�|�|�d��dS)Nr5�socket)
rr6r#�assertIsNoneZ_get_extra_info�objectrr+ZassertIsNotNonerD)rrr"�defaultr
r
r�(test_get_extra_info_on_closed_connectionvs


z?SslProtoHandshakeTests.test_get_extra_info_on_closed_connectioncCsN|j��}|j|d�}t��}|j�|�|�|j��|�|�|j	|�dSr4)
rr6r#r	rr�set_protocolrrZ
_app_protocol)rrr"Z
new_app_protor
r
r�test_set_new_app_protocol�s
z0SslProtoHandshakeTests.test_set_new_app_protocolcCs4|��}|�|�|j}|��|�|�d��dS�Nsdata)r#r+rr rK�
data_received�rr"Ztranspr
r
r� test_data_received_after_closing�s

z7SslProtoHandshakeTests.test_data_received_after_closingcCs4|��}|�|�|j}|��|�|�d��dSrQ)r#r+rr rK�writerSr
r
r�test_write_after_closing�s

z/SslProtoHandshakeTests.test_write_after_closing)�__name__�
__module__�__qualname__rr#r+r2r3r=rCrFrIrNrPrTrV�
__classcell__r
r
rrr
s


r
c@steZdZdZdZdd�Zdd�Zdd�Zd	d
�Zdd�Z	d
d�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�ZdS)�BaseStartTLSi��<cCst�dSr)�NotImplementedErrorrr
r
r�new_loop�szBaseStartTLS.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�W5QRXqdS)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�bufsizerer
r
r�__init__�s
z7BaseStartTLS.test_buf_feed_data.<locals>.Proto.__init__cSs|jr|jS|jSdSr)rercra�r�sizehintr
r
r�
get_buffer�sz9BaseStartTLS.test_buf_feed_data.<locals>.Proto.get_buffercSs<|jr |j|jd|�7_n|j|jd|�7_dSr)rerdrcra�rZnsizer
r
r�buffer_updated�sz=BaseStartTLS.test_buf_feed_data.<locals>.Proto.buffer_updatedN)rWrXrYrgrjrlr
r
r
r�Proto�srm)FT�s12345�s1234��drzempty buffer)r	�BufferedProtocolrZ_feed_data_to_buffered_proto�assertEqualrdr/�RuntimeError)rrmrerr
r
r�test_buf_feed_data�s(





zBaseStartTLS.test_buf_feed_datac	s�d�j�t���t������fdd�}G�fdd�dtj������fdd�}�j|�jd��"}�j�	tj
||j�d	d��W5QRXt�
��������dS)
N�1cs�|��j�|�t���}��t|�t���|j�dd�|�d�|�t���}��t|�t���|�tj	�|�
�dS�NT��server_side�O��
settimeout�TIMEOUT�recv_all�lenrs�	start_tls�sendallr*rJ�	SHUT_RDWRr ��sockrd��	HELLO_MSGr�server_contextr
r�serve�s
z=BaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.servecs0eZdZdd�Z�fdd�Zdd�Zdd�Zd	S)
zCBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProtocSs||_||_d|_dS�Nr��on_data�on_eof�con_made_cnt�rr�r�r
r
rrg�szLBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.__init__cs |jd7_��|jd�dS�Nrn�r�rs�r�trrr
rr+�szSBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.connection_madecSs|j�|�dSr�r��
set_result�rrdr
r
rrR�szQBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.data_receivedcSs|j�d�dS�NT�r�r�rr
r
rr7�szPBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.ClientProto.eof_receivedN�rWrXrYrgr+rRr7r
rr
r�ClientProto�sr�c�s�t�d�IdH�j����j����jj���fdd�f|��IdH\}}|����j�||��IdH}���IdHd�|����IdH|��dS)N��?cs
����Srr
r
�r�r�r�r
r�<lambda>r%zPBaseStartTLS.test_start_tls_client_reg_proto_1.<locals>.client.<locals>.<lambda>rz)	r	�sleeprr6�create_connectionrUr�rsr )�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��weakref�refrK�rr�r��srvr
�r�r�r�rr�r�!test_start_tls_client_reg_proto_1�s
�
z.BaseStartTLS.test_start_tls_client_reg_proto_1c	s�d�j�t���t������fdd�}G�fdd�dtj������fdd�}�j|�jd��"}�j�	tj
||j�d	d��W5QRXt�
��������dS)
Nrvcs^|��j�|j�dd�|�d�|�t���}��t|�t���|�tj	�|�
�dSrw)r|r}r�r�r~rrsr*rJr�r r�r�r
rr�s
z>BaseStartTLS.test_create_connection_memory_leak.<locals>.servecs0eZdZdd�Z�fdd�Zdd�Zdd�Zd	S)
zDBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProtocSs||_||_d|_dSr�r�r�r
r
rrg,szMBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.__init__cs&||_|jd7_��|jd�dSr�)r�r�rsr�rr
rr+1szTBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.connection_madecSs|j�|�dSrr�r�r
r
rrR8szRBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.data_receivedcSs|j�d�dSr�r�rr
r
rr7;szQBaseStartTLS.test_create_connection_memory_leak.<locals>.ClientProto.eof_receivedNr�r
rr
rr�+sr�c�s�t�d�IdH�j����j����jj���fdd�f|�d�i�IdH\}}���IdHd�|����IdH|��dS)Nr�cs
����Srr
r
r�r
rr�Er%zQBaseStartTLS.test_create_connection_memory_leak.<locals>.client.<locals>.<lambda>�sslrz)r	r�rr6r�rsrUr �r�r�rr�r�rr�>s

���

z?BaseStartTLS.test_create_connection_memory_leak.<locals>.clientr�r�r�r�r
r�r�"test_create_connection_memory_leaks
�
z/BaseStartTLS.test_create_connection_memory_leakc	s�d�j�t���t���d����fdd�}G�fdd�dtj��G�fdd�dtj��������fd	d
�}�j|�jd��$}�j	�
tj||j��jd��W5QRXdS)Nrvrcs�|��j�|�t���}��t|�t���|j�dd�|�d�|�t���}��t|�t���|�d�|�t���}��t|�t���|�tj	�|�
�dS)NTrxrz�2r{r�r�r
rr�^s

z=BaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.servecs0eZdZdd�Z�fdd�Zdd�Zdd�Zd	S)
zHBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirstcSs||_td�|_dSr�)r�r`ra)rr�r
r
rrgrszQBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.__init__cs�d7�dSr�r
�rr���client_con_made_callsr
rr+vszXBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.connection_madecSs|jSr)rarhr
r
rrjzszSBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.get_buffercSs|j�t|jd|���dSr)r�r��bytesrarkr
r
rrl}szWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoFirst.buffer_updatedN)rWrXrYrgr+rjrlr
r�r
r�ClientProtoFirstqsr�cs0eZdZdd�Z�fdd�Zdd�Zdd�Zd	S)
zIBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecondcSs||_||_d|_dSr�r�r�r
r
rrg�szRBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.__init__cs�d7�dSr�r
r�r�r
rr+�szYBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.connection_madecSs|j�|�dSrr�r�r
r
rrR�szWBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.data_receivedcSs|j�d�dSr�r�rr
r
rr7�szVBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.ClientProtoSecond.eof_receivedNr�r
r�r
r�ClientProtoSecond�sr�c�s�t�d�IdH�j����j��}�j��}�jj��fdd�f|��IdH\}}|����j�||��IdH}���IdHd�|���|��||����|IdHd�|���|IdH|�	����d�dS)Nr�cs���Srr
r
)r��on_data1r
rr��r%zPBaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.client.<locals>.<lambda>rzr�rn)
r	r�rr6r�rUr�rsrOr )r�Zon_data2r�r�rr�)r�r�r�r�r�r)r�rr��s&


��



z>BaseStartTLS.test_start_tls_client_buf_proto_1.<locals>.clientr�)
r�rr�r�r	rrrr�r}rr�r�r�r�r
)r�r�r�r�r�rr�r�!test_start_tls_client_buf_proto_1Ws
��z.BaseStartTLS.test_start_tls_client_buf_proto_1c	s�d�j�t����j������fdd�}G�fdd�dtj�������fdd�}�j|�jd��"}�j�	tj
||j�d	d��W5QRXdS)
Nrvcsv|��j�|�t���}��t|�t���z8z�j��jd�|�d�}Wnt	k
rbYnXW5|��XdS�N�)
r|r}r~rrsr rZcall_soon_threadsafer�rEr�)r�r�server_waits_on_handshaker
rr��s�
z=BaseStartTLS.test_start_tls_slow_client_cancel.<locals>.servecs0eZdZdd�Z�fdd�Zdd�Zdd�Zd	S)
zCBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProtocSs||_||_d|_dSr�r�r�r
r
rrg�szLBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.__init__cs |jd7_��|jd�dSr�r�r�rr
rr+�szSBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.connection_madecSs|j�|�dSrr�r�r
r
rrR�szQBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.data_receivedcSs|j�d�dSr�r�rr
r
rr7�szPBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.ClientProto.eof_receivedNr�r
rr
rr��sr�c	�s�t�d�IdH�j����j����jj���fdd�f|��IdH\}}|����IdH��tj��$t��j�	||��d�IdHW5QRXdS)Nr�cs
����Srr
r
r�r
rr��r%zPBaseStartTLS.test_start_tls_slow_client_cancel.<locals>.client.<locals>.<lambda>)
r	r�rr6r�rU�assertRaises�TimeoutErrorr�r�r��r�r�r�rr�r�rr��s

��

�z>BaseStartTLS.test_start_tls_slow_client_cancel.<locals>.clientr�r�)r�rr�rr6r	rr�r}r�r�r�r�r
r�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}�connectr~rrsr�r�r )r�r�rd)�ANSWERr��answerr�rr
rr��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_hellordr,)rr�r�r�r
r
rrgs
zBBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.__init__cSs||_|j�|�dSr)r,r�r�r�r
r
rr+szIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_madecSs
||_dSr)r,r�r
r
r�replace_transportszKBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.replace_transportcs0|j|7_t|j�t��kr,|j�d�dSr)rdrr�r�r��r�r
rrRszGBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.data_receivedcSs,d|_|dkr|j�d�n|j�|�dSr)r,r�r��
set_exception)r�excr
r
rrDszIBaseStartTLS.test_start_tls_server_1.<locals>.ServerProto.connection_lostN)rWrXrYrgr+r�rRrDr
r�r
r�ServerProtos
r�c�s�|IdH}|�����|jd��jj||�d�jd�IdH}|�|�|IdH|���|IdH��|j��|��dS)Nr%T)ryr)rUrsrdrr�r}r�r )rr�r�r�r�r�)r�r�rr�r
r�mains 

�



z2BaseStartTLS.test_start_tls_server_1.<locals>.mainc	�s��j��}�j��}�j��}�|||���j��fdd�dd�IdH}|jd����j��fdd��jd��&tj��|||��jd�IdHW5QRX|�	�|�
�IdH�����dS)Ncs�Srr
r
)rr
rr�8r%zHBaseStartTLS.test_start_tls_server_1.<locals>.run_main.<locals>.<lambda>z	127.0.0.1rcs
�|��Srr
�r�)r�r�r
rr�;r%r�)rr6�
create_serverZsockets�getsocknameZ
tcp_clientr}r	r�r Zwait_closedrs)r�r�r��server)r�r�r�r�r�r)r�rr�run_main1s(



�
��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	�sh��td���j�ddd�IdHW5QRXt��}��td���j�dd|�IdHW5QRXdS)NzSSLContext, gotzis not supported)r/�	TypeErrorrr�rr���sslctxrr
rr�Hs
 z4BaseStartTLS.test_start_tls_wrong_args.<locals>.main)rr�)rr�r
rr�test_start_tls_wrong_argsGsz&BaseStartTLS.test_start_tls_wrong_argsc
s�t���g��j��fdd��d��fdd�}��fdd�}�j|ddd	��0}��tj���j�||j	��W5QRXW5QRX��
�����g�t�
��������dS)
Ncs
��|�Sr��append�r�ctx��messagesr
rr�Xr%z5BaseStartTLS.test_handshake_timeout.<locals>.<lambda>Fcs<z,z|�d�Wntk
r(d�YnXW5|��XdS)Nr�T�r r~rEr�)�server_side_abortedr
rr�\s
z3BaseStartTLS.test_handshake_timeout.<locals>.serverc�s0t��jjtjf|��ddd��d�IdHdS)N�g$@)r��server_hostnamerr�)r	r�rr�r)r���
client_sslctxrr
rr�es����z3BaseStartTLS.test_handshake_timeout.<locals>.clientrn�Zmax_clients�backlog)rr�r�set_exception_handlerr�r�r	r�r�r�rGrsr�r�rK�rr�r�r�r
)r�r�rr�r�test_handshake_timeoutRs"	
�&

z#BaseStartTLS.test_handshake_timeoutc
s�t���g��j��fdd��dd�}��fdd�}�j|ddd��0}��td	���j�||j��W5QRXW5QRX��	�g�dS)
Ncs
��|�Srr�r�r�r
rr��r%zHBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.<lambda>cSs8z(z|�d�Wntk
r$YnXW5|��XdSr�r�r�r
r
rr��s

zFBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.serverc	�s<��t��(tj|�d�jdd��IdH\}}W5QRXdS�Nr�g�?)r�r�rr��assertWarns�DeprecationWarningr	�open_connectionr�r��reader�writerr�r
rr��s�zFBaseStartTLS.test_create_connection_ssl_slow_handshake.<locals>.clientrnr�zSSL handshake.*is taking longer)
rr�rr�r�r/rEr�r�rsr�r
)r�r�rr�)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
��W5QRXW5QRXdS)NcSsdSrr
r�r
r
rr��r%zLBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.<lambda>F)Zdisable_verifycsPz@z|j�dd�Wn(tjk
r*Yntk
r<YnXW5|��XdS)NTrx)r r�r��SSLError�OSErrorr�r�r
rr��s�

zJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.serverc	�s<��t��(tj|�d�jdd��IdH\}}W5QRXdSr�r�r�r�r
rr��s�zJBaseStartTLS.test_create_connection_ssl_failed_certificate.<locals>.clientrnr�)rr�rr�r�r�r�r�ZSSLCertVerificationErrorr�r�r�r
�r�rr�r�-test_create_connection_ssl_failed_certificate�s�	�z:BaseStartTLS.test_create_connection_ssl_failed_certificatec	sx�j�dd��t���t����fdd�}��fdd�}�j|ddd��}�j�||j��}W5QRX��|d	�dS)
NcSsdSrr
r�r
r
rr��r%zBBaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.<lambda>csl|��}zLz0|j�dd�|�d�|�d�|�d�Wntjk
rPYnXW5|��|��XdS)NTrx�A
rns!please corrupt the SSL connection)�dupr r�r�r~�sendr�r�)r�Z	orig_sockr�r
rr��s�


z@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.serverc	�s���t��&tj|�d�jd��IdH\}}W5QRX��|��IdHd�|�d���t	j
��|��IdHW5QRX|��dS)Nr�)r�r�rr��B�OK)r�r�r	r�rrs�readlinerUr�r�r�r r�r�r
rr��s�
z@BaseStartTLS.test_start_tls_client_corrupted_ssl.<locals>.clientrnr�r)	rr�rr�r�r�r�r�rs)rr�r�r��resr
r�r�#test_start_tls_client_corrupted_ssl�s�z0BaseStartTLS.test_start_tls_client_corrupted_sslN)rWrXrYr�r}r^rur�r�r�r�r�r�r�r�r�rr
r
r
rr[�s/@>[<Y/##r[c@seZdZdd�ZdS)�SelectorStartTLSTestscCst��Sr)r	ZSelectorEventLooprr
r
rr^�szSelectorStartTLSTests.new_loopN�rWrXrYr^r
r
r
rr�sr�ProactorEventLoopzWindows onlyc@seZdZdd�ZdS)�ProactorStartTLSTestscCst��Sr)r	rrr
r
rr^szProactorStartTLSTests.new_loopNrr
r
r
rr�sr�__main__)�__doc__rArJ�sysZunittestr�rr��ImportErrorr	rrrZtest.test_asynciorrrZ
func_testsrZskipIfZTestCaser
ZFunctionalTestCaseMixinr[rZ
skipUnless�hasattrrrWr�r
r
r
r�<module>s@
W