Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_poplib.cpython-311.opt-1.pyc
�

�KedF��t�dZddlZddlZddlZddlZddlZddlZddlmZmZddl	m
Zddlm
Z
ddlmZddlmZddlmZejd	��Zejd
��Zejd���ejZdZd
Zeed��rzddlZdZej�ej�e��pejd��Zej�ej�e��pejd��Z eed��Z!dZ"dZ#Gd�dej$��Z%Gd�dej&ej'��Z(Gd�de��Z)erddl*m+Z+Gd�de+e%��Z,e!Gd�de)����Z-e!Gd�d e)����Z.Gd!�d"e��Z/d#�Z0e1d$krej2��dSdS)%zTest script for poplib module.�N)�TestCase�
skipUnless)�support)�hashlib_helper)�
socket_helper)�threading_helper)�warnings_helper�asynchat�asyncoreT)�moduleF�POP3_SSLzkeycert3.pemzpycacert.pemzSSL not supporteds1 1
2 2
3 3
4 4
5 5
.
stFrom: postmaster@python.org
Content-Type: text/plain
MIME-Version: 1.0
Subject: Dummy

line1
line2
line3
.
c��eZdZgdgd�ZdZd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�ZeZd�ZeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zerd�Zd�Zd�ZdSdS)�DummyPOP3Handlerzpython-testlib-pop-server)�UIDL�IMPLEMENTATIONFc���tj�||��|�d��g|_|�d��d|_d|_dS)N�
�(+OK dummy pop3 server ready. <timestamp>F)r
�
async_chat�__init__�set_terminator�	in_buffer�push�
tls_active�tls_starting��self�conns  �:/usr/local/apps/python3/lib/python3.11/test/test_poplib.pyrzDummyPOP3Handler.__init__:s^����$�$�T�4�0�0�0����G�$�$�$�����	�	�<�=�=�=����!�����c�:�|j�|��dS�N)r�append�r�datas  r�collect_incoming_dataz&DummyPOP3Handler.collect_incoming_dataBs������d�#�#�#�#�#r c��d�|j��}t|d��}g|_|�d��d���}|�d��}|dkr||dzd�}nd}t
|d|z��r t|d|z��}||��dS|�d	|z��dS)
Nr �
ISO-8859-1� r������cmd_z$-ERR unrecognized POP3 command "%s".)	�joinr�str�split�lower�find�hasattr�getattrr)r�line�cmd�space�arg�methods      r�found_terminatorz!DummyPOP3Handler.found_terminatorEs����x�x���'�'���4��&�&������j�j��o�o�a� �&�&�(�(���	�	�#�����B�;�;��u�q�y�z�z�"�C�C��C��4��#��&�&�	C��T�6�C�<�0�0�F��F�3�K�K�K�K�K��I�I�<�c�A�B�B�B�B�Br c���r"��rs r�handle_errorzDummyPOP3Handler.handle_errorU���
r c�r�tj�||�d��dz��dS)Nr(r)r
rr�encoder$s  rrzDummyPOP3Handler.pushXs2���� � ��t�{�{�<�'@�'@�7�'J�K�K�K�K�Kr c�0�|�|��dSr"�r�rr8s  r�cmd_echozDummyPOP3Handler.cmd_echo[s���	�	�#�����r c�f�|dkr|�d��|�d��dS)N�guidoz-ERR no such userz+OK password requiredrCrDs  r�cmd_userzDummyPOP3Handler.cmd_user_s7���'�>�>��I�I�)�*�*�*��	�	�)�*�*�*�*�*r c�f�|dkr|�d��|�d��dS)N�pythonz-ERR wrong passwordz+OK 10 messagesrCrDs  r�cmd_passzDummyPOP3Handler.cmd_passds7���(�?�?��I�I�+�,�,�,��	�	�#�$�$�$�$�$r c�0�|�d��dS)Nz
+OK 10 100rCrDs  r�cmd_statzDummyPOP3Handler.cmd_statis���	�	�,�����r c��|r|�d|�d|����dS|�d��tj�|t��dS)Nz+OK r)z+OK)rr
r�	LIST_RESPrDs  r�cmd_listzDummyPOP3Handler.cmd_listls`���	6��I�I�I�S�S�S�#�#�.�/�/�/�/�/��I�I�e������$�$�T�9�5�5�5�5�5r c��|�dtt��z��tj�|t��dS)Nz+OK %s bytes)r�len�	RETR_RESPr
rrDs  r�cmd_retrzDummyPOP3Handler.cmd_retrus>���	�	�.�#�i�.�.�0�1�1�1��� � ��y�1�1�1�1�1r c�0�|�d��dS)Nz +OK message marked for deletion.rCrDs  r�cmd_delezDummyPOP3Handler.cmd_dele{s���	�	�4�5�5�5�5�5r c�0�|�d��dS�Nz+OK done nothing.rCrDs  r�cmd_noopzDummyPOP3Handler.cmd_noop~����	�	�%�&�&�&�&�&r c�0�|�d��dSrXrCrDs  r�cmd_rpopzDummyPOP3Handler.cmd_rpop�rZr c�0�|�d��dSrXrCrDs  r�cmd_apopzDummyPOP3Handler.cmd_apop�rZr c�X�|�d��|���dS)Nz+OK closing.)r�close_when_donerDs  r�cmd_quitzDummyPOP3Handler.cmd_quit�s,���	�	�.�!�!�!��������r c�T�t|j��}|jstrg|d<|S�N�STLS)�dict�CAPASr�SUPPORTS_SSL)r�_capass  r�
_get_capaszDummyPOP3Handler._get_capas�s0���d�j�!�!����	 �<�	 ��F�6�N��
r c�^�|�d��|���rn|������D]G\}}|g}|r|�|��|�d�|�����H|�d��dS)Nz+OK Capability list followsr)�.)rri�items�extendr.)rr8�cap�params�_lns     r�cmd_capazDummyPOP3Handler.cmd_capa�s����	�	�/�0�0�0��?�?���	)�#���0�0�6�6�8�8�
)�
)���V��e���'��J�J�v�&�&�&��	�	�#�(�(�3�-�-�(�(�(�(��	�	�#�����r c�B�|�|jrdnd��dS)Nz+OK I know RFC6856z-ERR What is UTF8?!)r�enable_UTF8rDs  r�cmd_utf8zDummyPOP3Handler.cmd_utf8�s6���	�	��%�-�&�&�,�	.�	.�	.�	.�	.r c��|jdur�|�d��tjtj��}|�t��|�|jddd���}|�	��|�
|��d|_d|_g|_|�
��dS|�d��dS)NFz+OK Begin TLS negotiationT)�server_side�do_handshake_on_connect�suppress_ragged_eofsz*-ERR Command not permitted when TLS active)rr�ssl�
SSLContext�PROTOCOL_TLS_SERVER�load_cert_chain�CERTFILE�wrap_socket�socket�del_channel�
set_socketrr�_do_tls_handshake)rr8�context�tls_socks    r�cmd_stlszDummyPOP3Handler.cmd_stls�s�����%�'�'��	�	�5�6�6�6��.��)@�A�A���'�'��1�1�1�"�.�.�t�{�;?�GL�DI�/�K�K��� � �"�"�"�����)�)�)�"&���$(��!�!#����&�&�(�(�(�(�(��	�	�F�G�G�G�G�Gr c�@�	|j���d|_d|_dS#tj$r�}|jdtjtjfvrYd}~dS|jdtj	kr|�
��cYd}~Sd|jdvsd|jdvr|�
��cYd}~S�d}~wt$r?}|jdtj
kr|�
��cYd}~SYd}~dSd}~wwxYw)NTFr�SSLV3_ALERT_BAD_CERTIFICATEr+�SSLV3_ALERT_CERTIFICATE_UNKNOWN)r�do_handshakerrry�SSLError�args�SSL_ERROR_WANT_READ�SSL_ERROR_WANT_WRITE�
SSL_ERROR_EOF�handle_close�OSError�errno�ECONNABORTED)r�errs  rr�z"DummyPOP3Handler._do_tls_handshake�s_��
*���(�(�*�*�*� #'���$)��!�!�!��!�<�

�

�

��8�A�;�3�#:�#&�#;�#=�=�=��F�F�F�F�F��X�a�[�C�$5�5�5��,�,�.�.�.�.�.�.�.�.�3�s�x��{�B�B�7�3�8�A�;�F�F��,�,�.�.�.�.�.�.�.�.�������
/�
/�
/��8�A�;�%�"4�4�4��,�,�.�.�.�.�.�.�.�.�5�4�4�4�4�4�����
/���sD�+�D�%C�%.C�D�1C�
D�C�
D�.D�D�Dc���|jr|���dS	tj�|��dS#t
j$r|���YdSwxYwr")rr�r
r�handle_readry�SSLEOFErrorr�r=s rr�zDummyPOP3Handler.handle_read�s��� �
(��&�&�(�(�(�(�(�(��'�3�3�D�9�9�9�9�9����(�(�(��%�%�'�'�'�'�'�'�(���s�A�#A'�&A'N)�__name__�
__module__�__qualname__rfrsrr&r:r>rrErHrKrMrP�cmd_uidlrT�cmd_toprVrYr\r^rarirqrtrgr�r�r�r<r rrr5s��������,G�+H�I�I�E��K�"�"�"�$�$�$�C�C�C� ���L�L�L����+�+�+�
%�%�%�
 � � �6�6�6��H�2�2�2��G�6�6�6�'�'�'�'�'�'�'�'�'����������.�.�.�
�0(�	H�	H�	H�$	*�	*�	*�*	(�	(�	(�	(�	(�S0(�0(r rc�T�eZdZeZejfd�Zd�Zd�Z	d�Z
d�Zd�ZeZ
d�Zd�Zd	S)
�DummyPOP3Serverc���tj�|��tj�|��d|_|�|tj��|�	|��|�
d��d|_tj��|_
|j���dd�\|_|_d|_dS)NT�F�)�	threading�Threadrr�
dispatcher�daemon�
create_socketr�SOCK_STREAM�bind�listen�active�Lock�active_lock�getsockname�host�port�handler_instance)r�address�afs   rrzDummyPOP3Server.__init__�s�����!�!�$�'�'�'���$�$�T�*�*�*�������2�v�1�2�2�2��	�	�'�������A�������$�>�+�+���#�{�6�6�8�8��!��<���	�4�9� $����r c��tj��|_tj�|��|j���dSr")r��Event�_DummyPOP3Server__flagr��start�waitr=s rr�zDummyPOP3Server.start�sB���o�'�'�������t�$�$�$���������r c��d|_|j���	|jrZtjrN|j5t�dd���ddd��n#1swxYwY|jrtj�Nt�d���dS#t�d���wxYw)NTg�������?r+)�timeout�count)�
ignore_all)r�r��setr�
socket_mapr��loop�	close_allr=s r�runzDummyPOP3Server.run�s�������������	0��+�
8�(�"5�
8��%�8�8��M�M�#�Q�M�7�7�7�8�8�8�8�8�8�8�8�8�8�8����8�8�8�8��+�
8�(�"5�
8�
���$��/�/�/�/�/��H���$��/�/�/�/���s.�B �A%�B �%A)�)B �,A)�-B � B=c�<�d|_|���dS�NF)r�r.r=s r�stopzDummyPOP3Server.stop�s������	�	�����r c�:�|�|��|_dSr")�handlerr�)rr�addrs   r�handle_acceptedzDummyPOP3Server.handle_accepted�s�� $���T� 2� 2����r c�.�|���dSr")�closer=s r�handle_connectzDummyPOP3Server.handle_connect�s���
�
�����r c��dS)Nrr<r=s r�writablezDummyPOP3Server.writable�s���qr c���r"r<r=s rr>zDummyPOP3Server.handle_errorr?r N)r�r�r�rr�r�AF_INETrr�r�r�r�r�r�r�r>r<r rr�r��s��������G�#)�>�
%�
%�
%�
%����0�0�0����
3�3�3���� �K��������r r�c�4�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zejdd���d���Zejdd���d���Zd�Zd�Zd�Zd�Zd�Zd�Zed���Zed���Zed���ZdS)�
TestPOP3Classc�V�|�|�d����dS)N�+OK)�
assertTrue�
startswith�r�resps  r�assertOKzTestPOP3Class.assertOKs&���������/�/�0�0�0�0�0r c���tttf��|_|j���tj|jj|jjtj
���|_dS�N�r�)r��HOST�PORT�serverr��poplib�POP3r�r��test_support�LOOPBACK_TIMEOUT�clientr=s r�setUpzTestPOP3Class.setUp	s\��%�t�T�l�3�3�����������k�$�+�"2�D�K�4D�*6�*G�I�I�I����r c�x�|j���|j���d|_dSr")r�r�r�r�r=s r�tearDownzTestPOP3Class.tearDowns5��������������������r c�`�|�|j���d��dS)Ns(+OK dummy pop3 server ready. <timestamp>)�assertEqualr��
getwelcomer=s r�test_getwelcomezTestPOP3Class.test_getwelcomes<�������/�/�1�1�D�	F�	F�	F�	F�	Fr c�\�|�tj|jjd��dS)Nz	echo -err)�assertRaisesr��error_protor��	_shortcmdr=s r�test_exceptionszTestPOP3Class.test_exceptionss(�����&�,�d�k�.C�[�Q�Q�Q�Q�Qr c��|�|j�d����|�tj|jjd��dS)NrG�invalid)r�r��userr�r�r�r=s r�	test_userzTestPOP3Class.test_usersJ���
�
�d�k�&�&�w�/�/�0�0�0����&�,�d�k�.>�	�J�J�J�J�Jr c��|�|j�d����|�tj|jjd��dS)NrJr�)r�r��pass_r�r�r�r�r=s r�
test_pass_zTestPOP3Class.test_pass_ sJ���
�
�d�k�'�'��1�1�2�2�2����&�,�d�k�.>�	�J�J�J�J�Jr c�`�|�|j���d��dS)N)�
�d)r�r��statr=s r�	test_statzTestPOP3Class.test_stat$s,�������)�)�+�+�Y�7�7�7�7�7r c��|�|j���dd�gd�df��|�|j�d���d����dS)Nr+)s1 1s2 2s3 3s4 4s5 5��1sOK 1 1)r�r��listr��endswithr=s r�	test_listzTestPOP3Class.test_list's|�������)�)�+�+�A�B�B�/�B�B�B���	�	�	�	
�����(�(��-�-�6�6�y�A�A�B�B�B�B�Br c�t�dgd�df}|j�d��}|�||��dS)N�
+OK 116 bytes�sFrom: postmaster@python.orgsContent-Type: text/plainsMIME-Version: 1.0sSubject: Dummyr sline1sline2sline3�q�foo)r��retrr�)r�expectedrs   r�	test_retrzTestPOP3Class.test_retr-sS��$�8�8�8��	��
�k���u�%�%������h�'�'�'�'�'r c��|�tj|jjdtjdzdzz��dS)Nzecho +%sr��a)r�r�r�r�r��_MAXLINEr=s r�test_too_long_linesz!TestPOP3Class.test_too_long_lines6sI�����&�,�d�k�.C�$���2�)=��(D�E�	G�	G�	G�	G�	Gr c�`�|�|j�d����dS�Nr)r�r��deler=s r�	test_delezTestPOP3Class.test_dele:�*���
�
�d�k�&�&�u�-�-�.�.�.�.�.r c�^�|�|j�����dSr")r�r��noopr=s r�	test_noopzTestPOP3Class.test_noop=s(���
�
�d�k�&�&�(�(�)�)�)�)�)r c�`�|�|j�d����dSr
)r�r��rpopr=s r�	test_rpopzTestPOP3Class.test_rpop@rr �md5T)�opensslc�b�|�|j�dd����dS)Nr�
dummypassword)r�r��apopr=s r�test_apop_normalzTestPOP3Class.test_apop_normalCs,���
�
�d�k�&�&�u�o�>�>�?�?�?�?�?r c���dddzz}tj|jd|��5|�tj|jjdd��ddd��dS#1swxYwYdS)Nr��<i@B�welcomer	�kb)r��	swap_attrr�r�r�r�r)r�evil_welcomes  r�test_apop_REDOSzTestPOP3Class.test_apop_REDOSGs�������0��
�
#�D�K��L�
I�
I�	O�	O����f�0�$�+�2B�C��N�N�N�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O�	O�	Os�-A�A"�%A"c�r�dgd�df}|�|j�dd��|��dS)Nrrrr+)r�r��top)rrs  r�test_topzTestPOP3Class.test_topRsN��%�4�4�4��	��
	
��������A�.�.��9�9�9�9�9r c�l�|j���|j�d��dSr
)r��uidlr=s r�	test_uidlzTestPOP3Class.test_uidlZs2������������������r c�|�d|jj_|�tj|jj��dSr�)r�r�rsr�r�r�r��utf8r=s r�test_utf8_raises_if_unsupportedz-TestPOP3Class.test_utf8_raises_if_unsupported^s3��*/����'����&�,�d�k�.>�?�?�?�?�?r c��d|jj_d}|j���}|�||��dS)NTs+OK I know RFC6856)r�r�rsr�r+r�)rr�results   r�	test_utf8zTestPOP3Class.test_utf8bsC��*.����'�(����!�!�#�#�������*�*�*�*�*r c��|j���}|�d|���v��dS)Nr�r��capar��keys�rr2s  r�	test_capazTestPOP3Class.test_capahs;���{���!�!�����(�D�I�I�K�K�7�8�8�8�8�8r c���|j���}|�|��|�|jj��|�|jj��dSr")r��quitr��assertIsNone�sock�filer�s  r�	test_quitzTestPOP3Class.test_quitls_���{���!�!������������$�+�*�+�+�+����$�+�*�+�+�+�+�+r c��|j���}|�d|���v��dSrcr1r4s  r�test_stls_capazTestPOP3Class.test_stls_capars:���{���!�!������$�)�)�+�+�-�.�.�.�.�.r c�h�d}|j���}|�||��dS)N�+OK Begin TLS negotiation)r��stlsr�)rrr�s   r�	test_stlszTestPOP3Class.test_stlsws6��/���{���!�!������x�(�(�(�(�(r c�`�d}tjtj��}|�t��|�|jtj��|�|jd��|�	tj
��5|j�|���}ddd��n#1swxYwYtjd|jjt"j���|_|j�|���}|�||��dS)Nr?T�r��	localhostr�)ryrz�PROTOCOL_TLS_CLIENT�load_verify_locations�CAFILEr��verify_mode�
CERT_REQUIRED�check_hostnamer��CertificateErrorr�r@r�r�r�r�r�r�)rr�ctxr�s    r�test_stls_contextzTestPOP3Class.test_stls_context}sC��/���n�S�4�5�5���!�!�&�)�)�)������#�*;�<�<�<�����+�T�2�2�2�
�
�
�s�3�
4�
4�	1�	1��;�#�#�C�#�0�0�D�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1��k�+�t�{�/?�*6�*G�I�I�I����{�����,�,������x�(�(�(�(�(s�C�C�	CN)r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr�requires_hashdigestrr#r&r)r,r/r5r;�requires_sslr=rArMr<r rr�r�s������1�1�1�I�I�I����F�F�F�R�R�R�K�K�K�K�K�K�8�8�8�C�C�C�(�(�(�G�G�G�/�/�/�*�*�*�/�/�/�(�^�'��t�<�<�<�@�@�=�<�@�(�^�'��t�<�<�<�O�O�=�<�O�:�:�:� � � �@�@�@�+�+�+�9�9�9�,�,�,��/�/��\�/��)�)��\�)�
�)�)��\�)�)�)r r�)�
SSLConnectionc��eZdZd�ZdS)�DummyPOP3_SSLHandlerc���tj�||��|���|�d��g|_|�d��d|_d|_dS)NrrTF)	r
rr�secure_connectionrrrrrrs  rrzDummyPOP3_SSLHandler.__init__�sp����(�(��t�4�4�4��"�"�$�$�$�����(�(�(��D�N��I�I�@�A�A�A�"�D�O� %�D���r N)r�r�r�rr<r rrRrR�s#������	&�	&�	&�	&�	&r rRc�0�eZdZd�Zd�Zd�Zd�ZeZd�ZdS)�TestPOP3_SSLClassc��tttf��|_t|j_|j���tj|jj	|jj
��|_dSr")r�r�r�r�rRr�r�r�r
r�r�r�r=s rr�zTestPOP3_SSLClass.setUp�sT��%�t�T�l�3�3���2������������o�d�k�&6���8H�I�I����r c�F�|�dtj��dS)Nr
)�assertInr��__all__r=s r�test__all__zTestPOP3_SSLClass.test__all__�s���
�
�j�&�.�1�1�1�1�1r c	��tjtj��}d|_tj|_|�ttj	|j
j|j
jt|���|�ttj	|j
j|j
jt|���|�ttj	|j
j|j
jtt|���|j���tj	|j
j|j
j|���|_|�|jjtj��|�|jjj|��|�|j����d����dS)NF)�keyfiler�)�certfiler�)r]r^r�rCr�)ryrzrErJ�	CERT_NONErHr��
ValueErrorr�r
r�r�r�r}r�r7�assertIsInstancer9�	SSLSocket�assertIsr�r�rr�)rrLs  r�test_contextzTestPOP3_SSLClass.test_context�s|���n�S�4�5�5��"����-������*�f�o�t�{�7G� �K�,�h��	�	M�	M�	M����*�f�o�t�{�7G� �K�,�x��	�	N�	N�	N����*�f�o�t�{�7G� �K�,�h�%-�s�	�	<�	<�	<�	
��������o�d�k�&6���8H�03�5�5�5������d�k�.��
�>�>�>��
�
�d�k�&�.��4�4�4������(�(�*�*�5�5�f�=�=�>�>�>�>�>r c�Z�|�tj|jj��dSr"�r�r�r�r�r@r=s rrAzTestPOP3_SSLClass.test_stls��&�����&�,�d�k�.>�?�?�?�?�?r c��|j���}|�d|���v��dSrc�r�r2�assertFalser3r4s  rr=z TestPOP3_SSLClass.test_stls_capa�s<���{���!�!������4�9�9�;�;�.�/�/�/�/�/r N)	r�r�r�r�r[rdrArMr=r<r rrVrV�sm������J�J�J�2�2�2�?�?�?�&@�@�@�"��0�0�0�0�0r rVc�*�eZdZd�Zd�Zd�ZeZd�ZdS)�TestPOP3_TLSClassc��tttf��|_|j���tj|jj|jjtj
���|_|j���dSr�)
r�r�r�r�r�r�r�r�r�r�r�r�r@r=s rr�zTestPOP3_TLSClass.setUp�sr��%�t�T�l�3�3�����������k�$�+�"2�D�K�4D�*6�*G�I�I�I�����������r c��|jj�U|jj�I	|j���n.#tj$r|j���YnwxYw|j���d|_dSr")	r�r:r9r7r�r�r�r�r�r=s rr�zTestPOP3_TLSClass.tearDown�s����;��'�D�K�,<�,H�
$��� � �"�"�"�"���%�
$�
$�
$���!�!�#�#�#�#�#�	
$����
	
�����������s�4�(A�Ac�Z�|�tj|jj��dSr"rfr=s rrAzTestPOP3_TLSClass.test_stls�rgr c��|j���}|�d|���v��dS)NsSTLSrir4s  rr=z TestPOP3_TLSClass.test_stls_capa�s<���{���!�!������D�I�I�K�K�/�0�0�0�0�0r N)r�r�r�r�r�rArMr=r<r rrlrl�s[������������@�@�@�"��1�1�1�1�1r rlc�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�TestTimeoutsc���tj��|_tjtjtj��|_|j�d��tj	|j��|_
tj|j|j|jf���|_
d|j
_|j
���|j���dS)N�<)�targetr�T)r�r��evtrr�r�r9�
settimeoutr�	bind_portr�r�r��threadr�r�r�r=s rr�zTestTimeouts.setUp�s����?�$�$����M�&�.�&�2D�E�E��	��	���R� � � �!�+�D�I�6�6��	��&�d�k���4�9�@U�V�V�V���!�������������
�
�����r c�F�|j���d|_dSr")ryr.r=s rr�zTestTimeouts.tearDown�s!�������������r c�T�|���|���	|���\}}|�d��|���n#t
$rYnwxYw|���dS#|���wxYw)Ns
+ Hola mundo
)r�r��accept�sendr��TimeoutError)rrv�servrr�s     rr�zTestTimeouts.server�s������
�
�
����	�	�	�	������J�D�$��I�I�'�(�(�(��J�J�L�L�L�L���	�	�	��D�	����
�J�J�L�L�L�L�L��D�J�J�L�L�L�L���s*�AA+�*B�+
A8�5B�7A8�8B�B'c��|�tj����tjtj��	t
jt|j	��}tjd��n#tjd��wxYw|�
|j���tj��|�
��dSr")r8r�getdefaulttimeout�setdefaulttimeoutr�r�r�r�r�r�r�r9�
gettimeoutr��r�pops  r�testTimeoutDefaultzTestTimeouts.testTimeoutDefaults������&�2�4�4�5�5�5�� ��!>�?�?�?�	+��+�d�D�I�.�.�C��$�T�*�*�*�*��F�$�T�*�*�*�*���������,�,�.�.��0M�N�N�N��	�	�����s�A:�:Bc��|�tj����tjd��	t	jt|jd���}tjd��n#tjd��wxYw|�|j�	����|�
��dS)N�r�)r8rr�r�r�r�r�r�r9r�r�r�s  r�testTimeoutNonezTestTimeouts.testTimeoutNones������&�2�4�4�5�5�5�� ��$�$�$�	+��+�d�D�I�t�<�<�<�C��$�T�*�*�*�*��F�$�T�*�*�*�*�������#�(�-�-�/�/�0�0�0��	�	�����s�!A2�2Bc��tjt|jtj���}|�|j���tj��|�	��|�
t��5tjt|jd���ddd��dS#1swxYwYdS)Nr�r)r�r�r�r�r�r�r�r9r�r�r�r`r�s  r�testTimeoutValuezTestTimeouts.testTimeoutValues����k�$��	�<�3P�Q�Q�Q�������,�,�.�.��0M�N�N�N��	�	����
�
�
�z�
*�
*�	4�	4��K��d�i��3�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�"C�C�CN)	r�r�r�r�r�r�r�r�r�r<r rrrrr�sn������������

�
�
�������4�4�4�4�4r rrc�d�tj��}tjtjg|�R�dSr")r�threading_setup�unittest�addModuleCleanup�threading_cleanup)�thread_infos r�setUpModuler� s3��"�2�4�4�K���.�@�O�;�O�O�O�O�O�Or �__main__)3�__doc__r�r�osr�r�r�rr�testrr��test.supportrrrr	�import_deprecatedr
r�requires_working_socketr�r�rgr3ry�pathr.�dirname�__file__�curdirr}rGrOrOrSrrr�r�r�r��test.test_ftplibrPrRrVrlrrr�r��mainr<r r�<module>r�sU��$�$�
�
�
�
�
�
�
�
�	�	�	�	�������������)�)�)�)�)�)�)�)�(�(�(�(�(�(�'�'�'�'�'�'�&�&�&�&�&�&�)�)�)�)�)�)�(�(�(�(�(�(�-�?�,�Z�8�8��,�?�,�Z�8�8��%��$�D�1�1�1�1��������
�7�6�:���R��J�J�J��L��w�|�|�B�G�O�O�H�5�5�B���N�S�S�H�
�W�\�\�"�'�/�/�(�3�3�@�r�y�.�
Q�
Q�F��z�,�(;�<�<��
8�	�
	�	�[(�[(�[(�[(�[(�x�*�[(�[(�[(�z0�0�0�0�0�h�)�9�+;�0�0�0�fD)�D)�D)�D)�D)�H�D)�D)�D)�N�&�.�.�.�.�.�.�	&�	&�	&�	&�	&�}�.>�	&�	&�	&��&0�&0�&0�&0�&0�
�&0�&0���&0�R�1�1�1�1�1�
�1�1���1�B64�64�64�64�64�8�64�64�64�rP�P�P�
�z����H�M�O�O�O�O�O��r