Sindbad~EG File Manager

Current Path : /usr/local/lib/python3.11/test/__pycache__/
Upload File :
Current File : //usr/local/lib/python3.11/test/__pycache__/test_imaplib.cpython-311.pyc

�

SԚg�����ddlmZddlmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZmZmZmZmZmZddlmZddlmZddlmZddlZdd	lmZdd
lmZmZmZ	ddlZn
#e$rdZYnwxYwejd���ej�ej� e!��pej"d
d��Z#ej�ej� e!��pej"d
d��Z$Gd�dej%��Z&erGd�de	j'��Z(ej)Z)nGd�d��Z(dZ)Gd�de	j*��Z+Gd�d��Z,Gd�de,ej%��Z-ej.ed��Gd�de,ej%����Z/Gd�dej%��Z0ej.ed��Gd �d!e0����Z1ej.ej2d"��d#��ej3d$��Gd%�d&ej%������Z4ej.ed��ej.ej2d"��d#��ej3d$��Gd'�d(e4��������Z5ej.ed��ej3d$��Gd)�d*e4������Z6e7d+krej8��dSdS),�)�support)�
socket_helper)�contextmanagerN)�verbose�run_with_tz�run_with_locale�cpython_only�requires_resource�requires_working_socket)�hashlib_helper)�threading_helper)�warnings_helper)�mock)�datetime�timezone�	timedeltaT)�module�certdatazkeycert3.pemzpycacert.pemc��eZdZd�Zed��d���Zd�Zeddd��ed��d	�����Zd
�Z	e
jd���ZdS)
�TestImaplibc��tjd��}tjd��}|�tj|��|��tjd��}|�tj|��|��tjd��}|�tj|��|��dS)N)	i��rrrr���rrs.25 (INTERNALDATE "01-Jan-2000 00:00:00 +0000")s.25 (INTERNALDATE "01-Jan-2000 11:30:00 +1130")s.25 (INTERNALDATE "31-Dec-1999 12:30:00 -1130"))�calendar�timegm�imaplib�Internaldate2tuple�assertEqual�time�mktime)�self�t0�tts   �./usr/local/lib/python3.11/test/test_imaplib.py�test_Internaldate2tuplez#TestImaplib.test_Internaldate2tuple#s���
�_�>�
?�
?��
�
'�=�?�?�������R���"�-�-�-�
�
'�=�?�?�������R���"�-�-�-�
�
'�=�?�?�������R���"�-�-�-�-�-�zMST+07MDT,M4.1.0,M10.5.0c�z�|�tjd��tjd����dS)Ns.25 (INTERNALDATE "02-Apr-2000 02:30:00 +0000")s.25 (INTERNALDATE "02-Apr-2000 03:30:00 +0000"))�assertNotEqualrr�r!s r$�"test_Internaldate2tuple_issue10941z.TestImaplib.test_Internaldate2tuple_issue10941/sP�����G�6�=�?�?��&�A�
C�
C�	D�	D�	D�	D�	Dr&c��ddtjd��ddtjdt	tdd������dgS)Ni�5wge��A)	����r-�!�rrr)	r,r-r.r-r/r0rrrri �"18-May-2033 05:33:20 +0200")r�	localtimer�
fromtimestamprrr)s r$�
timevalueszTestImaplib.timevalues6sO���L�$�.��*D�*D�4�3��&�z�'/�	�!�[�0I�0I�'J�'J�L�L�.�0�	0r&�LC_ALL�de_DE�fr_FRzSTD-1DST,M3.2.0,M11.1.0c��d}|���D],}tj|��}|�||���-dS)Nr1)r4r�Time2Internaldater)r!�expected�t�internals    r$�test_Time2Internaldatez"TestImaplib.test_Time2Internaldate>sU��
2�����"�"�	1�	1�A��0��3�3�H����X�x�0�0�0�0�	1�	1r&c�\�|���D]}tj|���dS�N)r4rr9)r!r;s  r$�,test_that_Time2Internaldate_returns_a_resultz8TestImaplib.test_that_Time2Internaldate_returns_a_resultIs;�����"�"�	)�	)�A��%�a�(�(�(�(�	)�	)r&c���tj��5}	|�dtjf��|�d��n#tj$rYnwxYwddd��n#1swxYwYt
j��}|�t��5}tj
��ddd��n#1swxYwY|�|jj
|��dS)N�z3Cannot run the test with local IMAP server running.)�socket�connectr�
IMAP4_PORT�skipTest�errorr�get_socket_conn_refused_errs�assertRaises�OSError�IMAP4�assertIn�	exception�errno)r!�s�expected_errnos�cms    r$�test_imap4_host_default_valuez)TestImaplib.test_imap4_host_default_valuePse���]�_�_�	��
��	�	�2�w�1�2�3�3�3��
�
�I�K�K�K�K���<�
�
�
���
����	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�(�D�F�F��
�
�
�w�
'�
'�	�2��M�O�O�O�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	��
�
�b�l�(�/�:�:�:�:�:sF�A.�6A
�A.�
A�A.�A�A.�.A2�5A2�&C�C
�
C
N)
�__name__�
__module__�__qualname__r%rr*r4rr=r@r�skip_if_tcp_blackholerR�r&r$rr!s�������
.�
.�
.��[�+�,�,�D�D�-�,�D�0�0�0��_�X�w��0�0��[�*�+�+�1�1�,�+�1�0�1�)�)�)��(�;�;�)�(�;�;�;r&rc��eZdZd�ZdS)�SecureTCPServerc���|j���\}}tjtj��}|�t��|�|d���}||fS)NT)�server_side)rC�accept�ssl�
SSLContext�PROTOCOL_TLS_SERVER�load_cert_chain�CERTFILE�wrap_socket)r!�	newsocket�fromaddr�context�
connstreams     r$�get_requestzSecureTCPServer.get_requestesc��"&�+�"4�"4�"6�"6��I�x��n�S�%<�=�=�G��#�#�H�-�-�-� �,�,�Y�D�,�I�I�J��x�'�'r&N)rSrTrUrgrWr&r$rYrYcs#������	(�	(�	(�	(�	(r&rYc��eZdZdS)rYN�rSrTrUrWr&r$rYrYps�������r&c�p��eZdZejZdZdZ�fd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Z�xZS)�SimpleIMAPHandlerNrBc�x��t�����d|j_d|j_dS�NF)�super�setup�server�is_selected�logged�r!�	__class__s �r$rozSimpleIMAPHandler.setup{s.���
���
�
����"'����!�����r&c��tr$td|���z��|j�|��dS)NzSENT: %r)r�print�strip�wfile�write�r!�messages  r$�_sendzSimpleIMAPHandler._send�sA���	0��*�w�}�}���.�/�/�/��
����!�!�!�!�!r&c�6�|�|dz��dS)N�
)r|rzs  r$�
_send_linezSimpleIMAPHandler._send_line�s���
�
�7�W�$�%�%�%�%�%r&c�V�|�|�d����dS)N�ASCII)r�encoderzs  r$�_send_textlinez SimpleIMAPHandler._send_textline�s&��������w�/�/�0�0�0�0�0r&c�\�|�d�|||f����dS)N� )r��join)r!�tag�coder{s    r$�_send_taggedzSimpleIMAPHandler._send_tagged�s/�����C�H�H�c�4��%9�:�:�;�;�;�;�;r&c���|�d��	d}		|j�d��}|dkrdS||z
}n#t$rYdSwxYw|�d��rn�Qt
r$t
d|���z��|jr4	|j�	|��n#t$r
d|_YnwxYw��|�d�����}|d}|d}|dd�}t|d	|z��r6t|d	|z��||��}|r||_t|��n|�|d
|dz����`)Nz* OK IMAP4rev1rr&r~zGOT: %rr�r��cmd_�BADz unknown)r��rfile�readrJ�endswithrrvrw�continuation�send�
StopIteration�decode�split�hasattr�getattr�nextr�)r!�line�part�	splitliner��cmd�argsr�s        r$�handlezSimpleIMAPHandler.handle�s������,�-�-�-�%	@��D�
���:�?�?�1�-�-�D��s�{�{����D�L�D�D�������F�F������=�=��)�)���
��
0��i�$�*�*�,�,�.�/�/�/�� �
�-��%�*�*�4�0�0�0�0��$�-�-�-�(,�D�%�%�%�-��������G�,�,�2�2�4�4�I��A�,�C��A�,�C��Q�R�R�=�D��t�V�c�\�*�*�
@�:�w�t�V�c�\�:�:�3��E�E���'�(4�D�%���&�&�&���!�!�#�u�c�J�.>�?�?�?�K%	@s(� A�A�
A�A�B9�9C
�C
c��|jr
d|jznd}|�d|z��|�|dd��dS)Nz
IMAP4rev1 �	IMAP4rev1z
* CAPABILITY �OK�CAPABILITY completed)�capabilitiesr�r�)r!r�r��capss    r$�cmd_CAPABILITYz SimpleIMAPHandler.cmd_CAPABILITY�s\���$�!��t�0�0�0� �	
�	
���O�d�2�3�3�3����#�t�%;�<�<�<�<�<r&c�v�d|j_|�d��|�|dd��dS)Nz"* BYE IMAP4ref1 Server logging outr�zLOGOUT completed)rprrr�r��r!r�r�s   r$�
cmd_LOGOUTzSimpleIMAPHandler.cmd_LOGOUT�s@��!�������@�A�A�A����#�t�%7�8�8�8�8�8r&c�X�|d|j_|�|dd��dS)Nrr�zLOGIN completed)rprrr�r�s   r$�	cmd_LOGINzSimpleIMAPHandler.cmd_LOGIN�s/��!�!�W�������#�t�%6�7�7�7�7�7r&c�v�d|j_|�d��|�|dd��dS)NT�
* 2 EXISTSr��[READ-WRITE] SELECT completed.)rprqrr�r�s   r$�
cmd_SELECTzSimpleIMAPHandler.cmd_SELECT�s=��"&�������
�&�&�&����#�t�%E�F�F�F�F�Fr&c��|jjr%d|j_|�|dd��dS|�|dd��dS)NFr�z*Returned to authenticated state. (Success)r�zNo mailbox selected)rprqr�r�s   r$�cmd_UNSELECTzSimpleIMAPHandler.cmd_UNSELECT�sX���;�"�	A�&+�D�K�#����c�4�)U�V�V�V�V�V����c�5�*?�@�@�@�@�@r&)rSrTrUr�LOOPBACK_TIMEOUT�timeoutr�r�ror|rr�r�r�r�r�r�r�r��
__classcell__�rts@r$rkrkvs���������&�G��L��L�"�"�"�"�"�
"�"�"�
&�&�&�1�1�1�<�<�<�(@�(@�(@�T=�=�=�9�9�9�
8�8�8�G�G�G�
A�A�A�A�A�A�Ar&rkc�`�eZdZdZd"d�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
�Zd�Zd�Z
d
�Zd�Zd�Zejdd���d���Zejdd���d���Zd�Zejdd��d���Zd�Zed��d���Zd�Zd�Zd�Zd�Zd�Z d �Z!d!�Z"dS)#�NewIMAPTestsMixinNTc��Gd�d|j��}|�|j��|�tjdf|��|_t
j|jdz|jj	ddi���|_
d|j
_|j
���|r|j
|jj�|_|j|jfS)	a
        Sets up imap_handler for tests. imap_handler should inherit from either:
        - SimpleIMAPHandler - for testing IMAP commands,
        - socketserver.StreamRequestHandler - if raw access to stream is needed.
        Returns (client, server).
        c��eZdZd�ZdS)�/NewIMAPTestsMixin._setup.<locals>.TestTCPServerc�V�|�|��|����)zP
                End request and raise the error if one occurs.
                ��
close_request�server_close�r!�request�client_addresss   r$�handle_errorz<NewIMAPTestsMixin._setup.<locals>.TestTCPServer.handle_error�s-���"�"�7�+�+�+��!�!�#�#�#�r&N�rSrTrUr�rWr&r$�
TestTCPServerr��s#������
�
�
�
�
r&r�rz-server�
poll_interval�{�G�z�?��name�target�kwargsT)�server_class�
addCleanup�_cleanupr�HOSTrp�	threading�Thread�_testMethodName�
serve_forever�thread�daemon�start�
imap_class�server_address�client)r!�imap_handlerrDr�s    r$�_setupzNewIMAPTestsMixin._setup�s���	�	�	�	�	�D�-�	�	�	�	
����
�&�&�&��'�'��);�Q�(?��N�N����&��%�i�/��;�,�$�T�*�
,�,�,���"������������	G�)�$�/�4�;�+E�F�D�K��{�D�K�'�'r&c�
�|j�)|jjdkr|j���|j���|j���tj|j��d|_dS)z�
        Cleans up the test server. This method should not be called manually,
        it is added to the cleanup queue in the _setup method already.
        N�LOGOUT)r��state�shutdownrpr�r
�join_threadr�r)s r$r�zNewIMAPTestsMixin._cleanup�su���;�"�t�{�'8�H�'D�'D��K� � �"�"�"���������� � �"�"�"��$�T�[�1�1�1�����r&c��Gd�dtj��}|�|d���\}}|jtjj|jg|j�R�dS)Nc��eZdZd�ZdS)�ONewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandlerc�:�|j�d��dS�Ns* OK�rxryr)s r$r�zVNewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandler.handles���
� � ��)�)�)�)�)r&N�rSrTrUr�rWr&r$�
EOFHandlerr�s#������
*�
*�
*�
*�
*r&r�F�rD)	�socketserver�StreamRequestHandlerr�rIrrK�abortr�r�)r!r��_rps    r$�)test_EOF_without_complete_welcome_messagez;NewIMAPTestsMixin.test_EOF_without_complete_welcome_message	s���	*�	*�	*�	*�	*��:�	*�	*�	*��K�K�
�E�K�:�:�	��6����'�-�-�t��	2�!�0�	2�	2�	2�	2�	2�	2r&c��Gd�dt��}|�|d���\}}|jtjj|jg|j�R�dS)Nc��eZdZd�ZdS)�BNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandlerc�^�|�d��|�|dd��dS�Ns* CAPABILITY IMAP4rev1 AUTH
r�r��r|r�r�s   r$r�zQNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITY�4���
�
�;�<�<�<��!�!�#�t�-C�D�D�D�D�Dr&N�rSrTrUr�rWr&r$�BadNewlineHandlerr�s(������
E�
E�
E�
E�
Er&r�Fr�)rkr�rIrrKr�r�r�)r!r�r�rps    r$�test_line_terminationz'NewIMAPTestsMixin.test_line_terminations���	E�	E�	E�	E�	E� 1�	E�	E�	E��K�K� 1�5�K�A�A�	��6����'�-�-�t��	2�!�0�	2�	2�	2�	2�	2�	2r&c�h�Gd�dt��}|�|��\}}|�|j��|�t
jjd��5|�d��ddd��n#1swxYwY|�|j��dS)Nc��eZdZdZdS)�MNewIMAPTestsMixin.test_enable_raises_error_if_not_AUTH.<locals>.EnableHandler�AUTH ENABLE UTF8=ACCEPTN�rSrTrUr�rWr&r$�
EnableHandlerr�s������4�L�L�Lr&r�zENABLE.*NONAUTH�foo)	rkr��assertFalse�utf8_enabled�assertRaisesRegexrrKrG�enable)r!r�r�r�s    r$�$test_enable_raises_error_if_not_AUTHz6NewIMAPTestsMixin.test_enable_raises_error_if_not_AUTHs���	5�	5�	5�	5�	5�-�	5�	5�	5��K�K�
�.�.�	�������,�-�-�-�
�
#�
#�G�M�$7�9J�
K�
K�	!�	!��M�M�%� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�����,�-�-�-�-�-s�+B
�
B�Bc���|�t��\}}|�tjjd��5|�d��ddd��dS#1swxYwYdS)N�does not support ENABLEr�)r�rkrrrKrGr)r!r�r�s   r$�)test_enable_raises_error_if_no_capabilityz;NewIMAPTestsMixin.test_enable_raises_error_if_no_capability$s����K�K� 1�2�2�	���
�
#�
#�G�M�$7�)�+�+�	!�	!��M�M�%� � � �	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!�	!����	!�	!�	!�	!�	!�	!s�A&�&A*�-A*c�D�|�t��\}}|�dd��\}}|�|d��|�t
jjd��5|�d��ddd��dS#1swxYwYdS)N�user�passr�r�UTF8=ACCEPT)	r�rk�loginrrrrKrGr�r!r�r��typ�datas     r$�.test_enable_UTF8_raises_error_if_not_supportedz@NewIMAPTestsMixin.test_enable_UTF8_raises_error_if_not_supported*s����K�K� 1�2�2�	����L�L���0�0�	��T�����d�#�#�#�
�
#�
#�G�M�$7�)�+�+�	)�	)��M�M�-�(�(�(�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)�	)����	)�	)�	)�	)�	)�	)s�2B�B�Bc��Gd�dt��}|�|��\}}|�|jd��|�dd���\}}|�|d��|�|jd��|�d��\}}|�|d��|�|jd	��d
}|�ddd|�d	����\}}|�|d��|�|jd|z�d	����dS)Nc�$�eZdZdZd�Zd�Zd�ZdS)�HNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServerzENABLE UTF8=ACCEPTc�4�|�|dd��dS�Nr�zENABLE successful�r�r�s   r$�
cmd_ENABLEzSNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_ENABLE5�!���!�!�#�t�-@�A�A�A�A�Ar&c3�~K�|�d��dV�|j_|�|dd��dS�N�+r�zFAKEAUTH successful�r�rp�responser�r�s   r$�cmd_AUTHENTICATEzYNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_AUTHENTICATE7�G�����#�#�C�(�(�(�',�u�u���$��!�!�#�t�-B�C�C�C�C�Cr&c3�~K�|�d��dV�|j_|�|dd��dS�Nrr��okayrr�s   r$�
cmd_APPENDzSNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPEND;�F�����#�#�C�(�(�(�',�u�u���$��!�!�#�t�V�4�4�4�4�4r&N)rSrTrUr�rrr!rWr&r$�UTF8AppendServerr3sL������/�L�
B�
B�
B�
D�
D�
D�
5�
5�
5�
5�
5r&r#�ascii�MYAUTHc��dS�NsfakerW��xs r$�<lambda>z@NewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.<lambda>A���'�r&r��
ZmFrZQ==
r	�utf-8�Subject: üñí©öðé�UTF8 (%s)
)	rkr�r�	_encoding�authenticaterr�appendr�)	r!r#r�rpr�r��
msg_stringrr
s	         r$�test_enable_UTF8_True_appendz.NewIMAPTestsMixin.test_enable_UTF8_True_append2sm��	5�	5�	5�	5�	5�0�	5�	5�	5����%5�6�6��������)�7�3�3�3��%�%�h�0A�0A�B�B���a�����t�$�$�$������/�:�:�:��-�-�
�.�.���a�����t�$�$�$�����)�7�3�3�3�.�
��M�M�$��d�J�4E�4E�g�4N�4N�O�O�	��T�����d�#�#�#������
�z�
)�1�1�'�:�:�	<�	<�	<�	<�	<r&c���Gd�dt��}|�|��\}}|�dd���\}}|�|d��|�d��\}}|�|d��|�|j��|�tj	j
d��5|�dd	��ddd��dS#1swxYwYdS)
Nc��eZdZdZd�Zd�ZdS)�PNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Serverr�c�4�|�|dd��dSrrr�s   r$rz[NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_ENABLEPrr&c3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$rzaNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_AUTHENTICATERrr&N�rSrTrUr�rrrWr&r$�
UTF8Serverr7Ns?������4�L�
B�
B�
B�
D�
D�
D�
D�
Dr&r;r%c��dSr'rWr(s r$r*zNNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>Ws���r&r�r	z
charset.*UTF8r��bar)rkr�r1rr�
assertTruer�rrrKrG�search)r!r;r�r�rs     r$�*test_search_disallows_charset_in_utf8_modez<NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_modeMsR��	D�	D�	D�	D�	D�*�	D�	D�	D��K�K�
�+�+�	����$�$�X�/@�/@�A�A���Q�����d�#�#�#����}�-�-���Q�����d�#�#�#�����+�,�,�,�
�
#�
#�G�M�$7��
I�
I�	(�	(��M�M�%��'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(s�	C-�-C1�4C1c��Gd�dt��}|�|��\}}|�tjjd��5|�dd���ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�6NewIMAPTestsMixin.test_bad_auth_name.<locals>.MyServerc�f�|�|dd�|d����dS�N�NOz#unrecognized authentication type {}r�r��formatr�s   r$rzGNewIMAPTestsMixin.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATEasB���!�!�#�t�9�@�@��a��I�I�K�K�K�K�Kr&N�rSrTrUrrWr&r$�MyServerrC`s(������
K�
K�
K�
K�
Kr&rJz'unrecognized authentication type METHOD�METHODc��dS�NrrWrWr&r$r*z6NewIMAPTestsMixin.test_bad_auth_name.<locals>.<lambda>gs��!�r&�rkr�rrrKrGr1�r!rJr�r�s    r$�test_bad_auth_namez$NewIMAPTestsMixin.test_bad_auth_name_s���	K�	K�	K�	K�	K�(�	K�	K�	K��K�K��)�)�	���
�
#�
#�G�M�$7�9�;�;�	5�	5�����)�)�4�4�4�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5�	5����	5�	5�	5�	5�	5�	5��A6�6A:�=A:c��Gd�dt��}|�|��\}}|�tjjd��5|�dd���ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�?NewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServerc3�tK�|�d��dV�|_|�|dd��dS�NrrFz[AUTHENTICATIONFAILED] invalid�r�rr�r�s   r$rzPNewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATEk�D�����#�#�C�(�(�(� %����
��!�!�#�t�-M�N�N�N�N�Nr&NrIrWr&r$rJrTjs(������
O�
O�
O�
O�
Or&rJz \[AUTHENTICATIONFAILED\] invalidr%c��dSr'rWr(s r$r*z?NewIMAPTestsMixin.test_invalid_authentication.<locals>.<lambda>rs��G�r&rNrOs    r$�test_invalid_authenticationz-NewIMAPTestsMixin.test_invalid_authenticationis���	O�	O�	O�	O�	O�(�	O�	O�	O�
�K�K��)�)�	���
�
#�
#�G�M�$7�3�5�5�	=�	=�����*;�*;�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=rQc���Gd�dt��}|�|��\}}|�dd���\}}|�|d��|�|jd��dS)Nc��eZdZd�ZdS)�CNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.MyServerc3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$rzTNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.MyServer.cmd_AUTHENTICATEvrr&NrIrWr&r$rJr]u�(������
D�
D�
D�
D�
Dr&rJr%c��dSr'rWr(s r$r*zCNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.<lambda>{r+r&r�r,�rkr�r1rr�r!rJr�rpr�r�s      r$�test_valid_authentication_bytesz1NewIMAPTestsMixin.test_valid_authentication_bytests���	D�	D�	D�	D�	D�(�	D�	D�	D�
���X�.�.�����%�%�h�0A�0A�B�B���a�����t�$�$�$������/�:�:�:�:�:r&c���Gd�dt��}|�|��\}}|�dd���\}}|�|d��|�|jd��dS)Nc��eZdZd�ZdS)�HNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.MyServerc3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$rzYNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.MyServer.cmd_AUTHENTICATE�rr&NrIrWr&r$rJrf�r_r&rJr%c��dS�N�fakerWr(s r$r*zHNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.<lambda>�s��&�r&r�r,rarbs      r$�$test_valid_authentication_plain_textz6NewIMAPTestsMixin.test_valid_authentication_plain_texts���	D�	D�	D�	D�	D�(�	D�	D�	D�
���X�.�.�����%�%�h�0@�0@�A�A���a�����t�$�$�$������/�:�:�:�:�:r&�md5��opensslc���Gd�dt��}|�|��\}}|�d|jv��|�dd��\}}|�|d��dS)Nc��eZdZdZd�ZdS)�@NewIMAPTestsMixin.test_login_cram_md5_bytes.<locals>.AuthHandler�LOGINDISABLED AUTH=CRAM-MD5c3�K�|�d��dV�}|dkr|�|dd��dS|�|dd��dS�Nz:+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ=s2dGltIGYxY2E2YmU0NjRiOWVmYTFjY2E2ZmZkNmNmMmQ5ZjMy
r�zCRAM-MD5 successfulrFz	No access�r�r��r!r�r��rs    r$rzQNewIMAPTestsMixin.test_login_cram_md5_bytes.<locals>.AuthHandler.cmd_AUTHENTICATE��{�����#�#�%9�:�:�:��E�E���7�7�7��%�%�c�4�1F�G�G�G�G�G��%�%�c�4��=�=�=�=�=r&N�rSrTrUr�rrWr&r$�AuthHandlerrq��(������8�L�
>�
>�
>�
>�
>r&rz�
AUTH=CRAM-MD5�tim�tanstaaftanstaafr��rkr�r>r��login_cram_md5r�r!rzr�r��rets     r$�test_login_cram_md5_bytesz+NewIMAPTestsMixin.test_login_cram_md5_bytes�s���
	>�
	>�
	>�
	>�
	>�+�
	>�
	>�
	>��K�K��,�,�	�������6�+>�>�?�?�?��&�&�u�.A�B�B���Q�����d�#�#�#�#�#r&c���Gd�dt��}|�|��\}}|�d|jv��|�dd��\}}|�|d��dS)Nc��eZdZdZd�ZdS)�ENewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandlerrrc3�K�|�d��dV�}|dkr|�|dd��dS|�|dd��dSrtrurvs    r$rzVNewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandler.cmd_AUTHENTICATE�rxr&NryrWr&r$rzr��r{r&rzr|r}�tanstaaftanstaafr�rr�s     r$�test_login_cram_md5_plain_textz0NewIMAPTestsMixin.test_login_cram_md5_plain_text�s���
	>�
	>�
	>�
	>�
	>�+�
	>�
	>�
	>��K�K��,�,�	�������6�+>�>�?�?�?��&�&�u�.@�A�A���Q�����d�#�#�#�#�#r&c��Gd�dt��}|�|��\}}|�tjjd��5|�dd���ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�?NewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServerc3�K�|�d��dV�|_|jdkr|�|dd��dS|�|dd��dS�Nrs*
rFz[AUTHENTICATIONFAILED] abortedr�zMYAUTH successfulrWr�s   r$rzPNewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATE�s~�����#�#�C�(�(�(� %����
��=�H�,�,��%�%���8�:�:�:�:�:�
�%�%�c�4�1D�E�E�E�E�Er&NrIrWr&r$rJr��s(������	
F�	
F�	
F�	
F�	
Fr&rJz \[AUTHENTICATIONFAILED\] abortedr%c��dSr?rWr(s r$r*z?NewIMAPTestsMixin.test_aborted_authentication.<locals>.<lambda>�s��D�r&rNrOs    r$�test_aborted_authenticationz-NewIMAPTestsMixin.test_aborted_authentication�s���
	F�
	F�
	F�
	F�
	F�(�
	F�
	F�
	F��K�K��)�)�	���
�
#�
#�G�M�$7�3�5�5�	:�	:�����.�.�9�9�9�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:rQzimaplib._MAXLINE�
c��Gd�dt��}|�|d���\}}|�tjjd��5|j|j�ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�:NewIMAPTestsMixin.test_linetoolong.<locals>.TooLongHandlerc�:�|j�d��dS)Ns* OK xxxxxxxxxxx
r�r)s r$r�zANewIMAPTestsMixin.test_linetoolong.<locals>.TooLongHandler.handle�s���
� � �!?�@�@�@�@�@r&Nr�rWr&r$�TooLongHandlerr��s(������
A�
A�
A�
A�
Ar&r�Fr�zgot more than 10 bytes)rkr�rrrKrGr�r�)r!r�r�rps    r$�test_linetoolongz"NewIMAPTestsMixin.test_linetoolong�s���	A�	A�	A�	A�	A�.�	A�	A�	A��K�K���K�>�>�	��6�
�
#�
#�G�M�$7�(�*�*�	4�	4��D�O�V�2�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	4�	4s�A0�0A4�7A4c��|�td���\}}|j|j�5	ddd��dS#1swxYwYdS)NFr�)r�rkr�r�)r!r�rps   r$�test_simple_with_statementz,NewIMAPTestsMixin.test_simple_with_statement�s����K�K� 1�5�K�A�A�	��6�
�T�_�f�3�
4�	�	��	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�>�A�A�walltimec�H�|�t��\}}|jd}|�d|d���}|�|jjd��|���|�d|tj	���}|�|jjtj	��|���|�
t��5|�d|d���}ddd��dS#1swxYwYdS)Nr�	localhost�r�r)r�rkr�r�r�sockr�r�rr�rI�
ValueError)r!r�rp�addrr�s     r$�test_imaplib_timeout_testz+NewIMAPTestsMixin.test_imaplib_timeout_test�sR���K�K� 1�2�2�	��6��$�Q�'������d�D��A�A�������,�d�3�3�3�����������d�G�<T��U�U�������,�g�.F�G�G�G�������
�
�
�z�
*�
*�	C�	C��_�_�[�$��_�B�B�F�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C�	C����	C�	C�	C�	C�	C�	Cs�1D�D�Dc��Gd�dt��}|�|��\}}|jd}|�t��5|�d|d���}ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�QNewIMAPTestsMixin.test_imaplib_timeout_functionality_test.<locals>.TimeoutHandlerc�b�tjd��t�|��dSrM)r�sleeprkr�r)s r$r�zXNewIMAPTestsMixin.test_imaplib_timeout_functionality_test.<locals>.TimeoutHandler.handle�s)���
�1�
�
�
�!�(�(��.�.�.�.�.r&Nr�rWr&r$�TimeoutHandlerr��s#������
/�
/�
/�
/�
/r&r�rr�g����MbP?r�)rkr�r�rI�TimeoutErrorr�)r!r�r�rpr�r�s      r$�'test_imaplib_timeout_functionality_testz9NewIMAPTestsMixin.test_imaplib_timeout_functionality_test�s���	/�	/�	/�	/�	/�.�	/�	/�	/�
�K�K��/�/�	��6��$�Q�'��
�
�
�|�
,�
,�	G�	G��_�_�[�$��_�F�F�F�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs�A9�9A=�A=c�(�|�td���\}}|j|j�5}|�dd��|�|jd��ddd��n#1swxYwY|�|j��dS�NFr�rr)r�rkr�r�r
rrr�assertIsNone�r!r�rp�imaps    r$�test_with_statementz%NewIMAPTestsMixin.test_with_statement�s����K�K� 1�5�K�A�A�	��6�
�T�_�f�3�
4�	4���J�J�v�v�&�&�&����V�]�F�3�3�3�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4�	4����	4�	4�	4�	4�	
���&�-�(�(�(�(�(s�2A-�-A1�4A1c��|�td���\}}|j|j�5}|�dd��|�|jd��|���|�|j��ddd��n#1swxYwY|�|j��dSr�)	r�rkr�r�r
rrr�logoutr�r�s    r$�test_with_statement_logoutz,NewIMAPTestsMixin.test_with_statement_logout�s����K�K� 1�5�K�A�A�	��6�
�T�_�f�3�
4�	-���J�J�v�v�&�&�&����V�]�F�3�3�3��K�K�M�M�M����f�m�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�
	
���&�-�(�(�(�(�(s�A B�B�"Bc��|�t��\}}|�dd��\}}|�|d��|�|dd��|�|jd��dS)Nrrr�r�LOGIN completed�AUTH)r�rkr
rr�rs     r$�
test_loginzNewIMAPTestsMixin.test_login�s~���K�K� 1�2�2�	����L�L���0�0�	��T�����d�#�#�#�����a��"4�5�5�5������v�.�.�.�.�.r&c��|�t��\}}|�dd��\}}|�|d��|�|dd��|���\}}|�|d||f��|�|dd||f��|�|jd��dS)	Nrrr�rr��BYEsIMAP4ref1 Server logging outr�)r�rkr
rr�r�rs     r$�test_logoutzNewIMAPTestsMixin.test_logouts����K�K� 1�2�2�	����L�L���0�0�	��T�����d�#�#�#�����a��"4�5�5�5��M�M�O�O�	��T�����e�c�4�[�1�1�1�����a��"A�C��;�O�O�O������x�0�0�0�0�0r&c��Gd�dt��}|�|��\}}|�dd��|���\}}|�|d��|�|dd��dS)Nc��eZdZd�ZdS)�,NewIMAPTestsMixin.test_lsub.<locals>.LsubCmdc�Z�|�d��|�|dd��S)Nz* LSUB () "." directoryAr�zLSUB completedrur�s   r$�cmd_LSUBz5NewIMAPTestsMixin.test_lsub.<locals>.LsubCmd.cmd_LSUB
s0���#�#�$>�?�?�?��(�(��d�4D�E�E�Er&N)rSrTrUr�rWr&r$�LsubCmdr�s(������
F�
F�
F�
F�
Fr&r�rrr�rs() "." directoryA)rkr�r
�lsubr)r!r�r�r�rr
s      r$�	test_lsubzNewIMAPTestsMixin.test_lsubs���	F�	F�	F�	F�	F�'�	F�	F�	F��K�K��(�(�	������V�V�$�$�$��K�K�M�M�	��T�����d�#�#�#�����a��"6�7�7�7�7�7r&c���|�t��\}}|�dd��|���\}}|�|d��|�|dd��|���\}}|�|d��|�|dd��|�|jd��dS)Nrrr�r�2s*Returned to authenticated state. (Success)r�)r�rkr
�selectr�unselectr�rs     r$�
test_unselectzNewIMAPTestsMixin.test_unselects����K�K� 1�2�2�	������V�V�$�$�$��M�M�O�O�	��T�����d�#�#�#�����a��$�'�'�'��O�O�%�%�	��T�����d�#�#�#�����a��"O�P�P�P������v�.�.�.�.�.r&)T)#rSrTrUr�r�r�r�r�rrrr4r@rPrZrcrkr�requires_hashdigestr�r�r�r�patchr�r�r
r�r�r�r�r�r�r�r�rWr&r$r�r��s������
�F�(�(�(�(�B��� 2�2�2�2�2�2�.�.�.�!�!�!�)�)�)�<�<�<�6(�(�(�$5�5�5�	=�	=�	=�	;�	;�	;�	;�	;�	;�(�^�'��t�<�<�<�$�$�=�<�$�"(�^�'��t�<�<�<�$�$�=�<�$�":�:�:�"�T�Z�"�B�'�'�4�4�(�'�4����
��z�"�"�
C�
C�#�"�
C�	G�	G�	G�)�)�)�)�)�)�/�/�/�1�1�1�	8�	8�	8�
/�
/�
/�
/�
/r&r�c�*�eZdZejZejZdS)�NewIMAPTestsN)	rSrTrUrrKr�r��	TCPServerr�rWr&r$r�r�#s��������J��)�L�L�Lr&r�zSSL not availablec�|�eZdZeZeZed��d���Zed��d���Z	e
d���ZdS)�NewIMAPSSLTestsr�c���tjtj��}|�|jtj��|�|jd��|�t��|�	tj
d��5|�t��\}}|j
|jd|i�}|���ddd��dS#1swxYwYdS)NT�=IP address mismatch, certificate is not valid for '127.0.0.1'�ssl_context)r]r^�PROTOCOL_TLS_CLIENTr�verify_mode�
CERT_REQUIRED�check_hostname�load_verify_locations�CAFILEr�CertificateErrorr�rkr�r�r��r!r�r�rpr�s     r$�test_ssl_raiseszNewIMAPSSLTests.test_ssl_raises-s)���n�S�%<�=�=������0�#�2C�D�D�D�����3�T�:�:�:��)�)�&�1�1�1�
�
#�
#�C�$8����	�	����$5�6�6�I�A�v�$�T�_�f�&;�>�1<�>�>�F��O�O����
	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�AC*�*C.�1C.c��tjtj��}|�t��|�t��\}}|�d|jd|���}|�	��dS)Nr�r�r�)
r]r^r�r�r�r�rkr�r�r�r�s     r$�test_ssl_verifiedz!NewIMAPSSLTests.test_ssl_verified<s{���n�S�%<�=�=���)�)�&�1�1�1��K�K� 1�2�2�	��6�����f�.C�A�.F�-8�!�:�:���������r&c��tjdtf��5tj�|jd��5tj�|jd��5|�ddt���ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)NrB�open�_connectr��)�certfile)r�check_warnings�DeprecationWarningrr��objectr�rar)s r$�test_certfile_arg_warnz&NewIMAPSSLTests.test_certfile_arg_warnHs���
�
+�R�1C�,D�
E�
E�	I�	I���"�"�4�?�F�;�;�
I�
I��Z�&�&�t��
�C�C�I�I��O�O�K��x�O�H�H�H�I�I�I�I�I�I�I�I�I�I�I����I�I�I�I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I�
I����
I�
I�
I�
I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�	I�	IsY�&C�&B)�(B�B)�B�B)�B�B)�C�)B-	�-C�0B-	�1C�C�CN)rSrTrU�	IMAP4_SSLr�rYr�r
r�r�r	r�rWr&r$r�r�(s��������J�"�L���z�"�"���#�"����z�"�"���#�"���I�I��\�I�I�Ir&r�c�2�eZdZejZejZd�Z	d�Z
ed���Zed���Z
ejd���Zejd���Zejd���Zejd���ZGd	�d
e��Zejd���Zejd���Zejd
���Zejd���Zejd���Zejd���Zejd���Zejd���Zejejdd���d�����Z ejd���Z!d�Z"ejd���Z#ejd���Z$ejd���Z%eje&e'j(dd��d�������Z)dS)�ThreadedNetworkedTestsc�&�Gd�d|j��}trtd��|||��}|�|j|j�����trItd��td|��td|j��td|j��tj	d|jz|j
d	d
i���}d|_|���trtd
��||fS)Nc��eZdZd�ZdS)�4ThreadedNetworkedTests.make_server.<locals>.MyServerc�V�|�|��|����r?r�r�s   r$r�zAThreadedNetworkedTests.make_server.<locals>.MyServer.handle_errorVs+���"�"�7�+�+�+��!�!�#�#�#�r&Nr�rWr&r$rJr�Us#������
�
�
�
�
r&rJzcreating serverzserver createdzADDR =zCLASS =zHDLR =z
%s servingr�r�r�Tzserver running)
r�rrvrr�rC�getsockname�RequestHandlerClassr�r�r�r�r�)r!r��hdlrrJrpr;s      r$�make_serverz"ThreadedNetworkedTests.make_serverSs6��	�	�	�	�	�t�(�	�	�	��	%��#�$�$�$���$��%�%������.��
�0I�0I�0K�0K�L�L�L��	8��"�#�#�#��(�D�!�!�!��)�T�.�/�/�/��(�F�6�7�7�7����� 1�1��'�$�T�*�

,�
,�
,�����	���	�	�	��	$��"�#�#�#��q�y�r&c���trtd��|���|���|���trtd��dSdS)Nzwaiting for server�done)rrvr�r�r�)r!rpr�s   r$�reap_serverz"ThreadedNetworkedTests.reap_serverssi���	(��&�'�'�'����������������
�
�
��	��&�M�M�M�M�M�	�	r&c#�K�|�tjdf|��\}}	|V�|�||��dS#|�||��wxYw)Nr)r�rr�r�)r!r�rpr�s    r$�
reaped_serverz$ThreadedNetworkedTests.reaped_server|sm�����)�)�=�+=�q�*A�4�H�H����	-��L�L�L����V�V�,�,�,�,�,��D���V�V�,�,�,�,���s�A�Ac#��K�|�|��5}|j|j�}	||fV�|���n#|���wxYw	ddd��dS#1swxYwYdSr?)r�r�r�r�)r!r�rpr�s    r$�reaped_pairz"ThreadedNetworkedTests.reaped_pair�s�����
�
�
��
%�
%�	 ��$�T�_�f�&;�<�F�
 ��f�n�$�$�$��
�
�������
�
���������	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 �	 ����	 �	 �	 �	 �	 �	 s'�A+�A�A+�A�A+�+A/�2A/c��|�t��5}|j|j�}|���ddd��dS#1swxYwYdSr?)r�rkr�r�r��r!rpr�s   r$�test_connectz#ThreadedNetworkedTests.test_connect�s���
�
�
� 1�
2�
2�	�f�$�T�_�f�&;�<�F��O�O����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�$A�A�Ac�<�Gd�dt��}|�|��5\}}|�dd���\}}|�|d��|�|jd��|�d��|�dd	d
��\}\}|�d|��|�d��|�d��\}\}|�d|��ddd��dS#1swxYwYdS)
Nc�0��eZdZ�fd�Zd�Zd�Zd�Z�xZS)�EThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandlerc�Z��gd�|_t�����dS)N)�Answered�Flagged�Deleted�Seen�Draft)�flagsrnr�rss �r$r�zLThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.handle�s*���P�P�P��
������ � � � � r&c3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$rzVThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_AUTHENTICATE�rr&c�l�d�|j��}|�d|z�d����|�d��|�d��d|z}|�|�d����|�|dd��dS)	N� \z* FLAGS (%s)r$r�s
* 0 RECENTz-* OK [PERMANENTFLAGS %s \*)] Flags permitted.r�r�)r�rrr�r�)r!r�r��flag_msg�msgs     r$r�zPThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_SELECT�s��� �:�:�d�j�1�1������(�!:� B� B�7� K� K�L�L�L����
�.�.�.����
�.�.�.�G�"�#������
�
�7� 3� 3�4�4�4��!�!�#�t�-M�N�N�N�N�Nr&c��|d�d���d�����}|j�|��dd�|j��z}d|d�d|��}|�|�d	����|�|d
d��dS)Nr��(�)z(FLAGS (%s))rz* rz FETCH r$r�zSTORE completed.)rwr�r�extendr�rr�r�)r!r�r��	new_flags�	flags_msgr	s      r$�	cmd_STOREzOThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_STORE�s��� ��G�M�M�#�.�.�4�4�S�9�9�?�?�A�A�	��
�!�!�)�,�,�,�*�U�Z�Z��
�-C�-C�C�	�	�)-�a����)�)�<������
�
�7� 3� 3�4�4�4��!�!�#�t�-?�@�@�@�@�@r&)rSrTrUr�rr�rr�r�s@r$�BracketFlagHandlerr��sr�������
!�
!�
!�
!�
!�
D�
D�
D�

O�
O�
O�
A�
A�
A�
A�
A�
A�
Ar&rr%c��dSr'rWr(s r$r*z;ThreadedNetworkedTests.test_bracket_flags.<locals>.<lambda>�����r&r�r,�test�1z+FLAGSz[test]s[test]�PERMANENTFLAGS)rkr�r1rrr��storerL)r!rrpr�r�r
rs       r$�test_bracket_flagsz)ThreadedNetworkedTests.test_bracket_flags�s|��	A�	A�	A�	A�	A�!2�	A�	A�	A�:�
�
�0�
1�
1�		+�5E�f�f��,�,�X�7H�7H�I�I�J�D�$����T�4�(�(�(����V�_�o�>�>�>��M�M�&�!�!�!� �,�,�t�X�x�@�@�K�C��$��M�M�)�T�*�*�*��M�M�&�!�!�!� �/�/�*:�;�;�K�C��$��M�M�)�T�*�*�*�		+�		+�		+�		+�		+�		+�		+�		+�		+�		+�		+�		+����		+�		+�		+�		+�		+�		+s�CD�D�Dc���Gd�dtj��}|�|��5}|jtjj|jg|j�R�ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�9ThreadedNetworkedTests.test_issue5949.<locals>.EOFHandlerc�:�|j�d��dSr�r�r)s r$r�z@ThreadedNetworkedTests.test_issue5949.<locals>.EOFHandler.handle�s���
� � ��)�)�)�)�)r&Nr�rWr&r$r�r�s#������
*�
*�
*�
*�
*r&r�)	r�r�r�rIrrKr�r�r�)r!r�rps   r$�test_issue5949z%ThreadedNetworkedTests.test_issue5949�s���	*�	*�	*�	*�	*��:�	*�	*�	*�
�
�
�
�
+�
+�	G�v��D��g�m�1�"�o�
G�06�0E�
G�
G�
G�
G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gs�)A$�$A(�+A(c���Gd�dt��}|�|��5}|jtjj|jg|j�R�ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�GThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandlerc�^�|�d��|�|dd��dSr�r�r�s   r$r�zVThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITY�r�r&Nr�rWr&r$r�r �s(������
E�
E�
E�
E�
Er&r�)rkr�rIrrKr�r�r�)r!r�rps   r$r�z,ThreadedNetworkedTests.test_line_termination�s���	E�	E�	E�	E�	E� 1�	E�	E�	E��
�
� 1�
2�
2�	G�f��D��g�m�1�"�o�
G�06�0E�
G�
G�
G�
G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	G��)A�A#�&A#c��eZdZdZd�Zd�ZdS)�!ThreadedNetworkedTests.UTF8Serverr�c�4�|�|dd��dSrrr�s   r$rz,ThreadedNetworkedTests.UTF8Server.cmd_ENABLE�s!�����c�4�)<�=�=�=�=�=r&c#�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$rz2ThreadedNetworkedTests.UTF8Server.cmd_AUTHENTICATE�sG��������$�$�$�#(�5�5�D�K� ����c�4�)>�?�?�?�?�?r&Nr:rWr&r$r;r$�s<������0��	>�	>�	>�	@�	@�	@�	@�	@r&r;c�0�|�|j��5\}}|�|j��|�t
jj|jd��|�|j��ddd��dS#1swxYwYdS)Nr�)	r�r;r�r�rIrrKrGrr�s   r$rz;ThreadedNetworkedTests.test_enable_raises_error_if_not_AUTH�s���
�
�
�d�o�
.�
.�	2�2B�6�6����V�0�1�1�1����g�m�1�6�=�%�H�H�H����V�0�1�1�1�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2�	2����	2�	2�	2�	2�	2�	2s�A#B�B�Bc���Gd�d|j��}|�|��5\}}|�tjj|jd��ddd��dS#1swxYwYdS)Nc��eZdZdZdS)�XThreadedNetworkedTests.test_enable_raises_error_if_no_capability.<locals>.NoEnableServerr�Nr�rWr&r$�NoEnableServerr*�s������!�L�L�Lr&r+r�)r;r�rIrrKrGr)r!r+rpr�s    r$rz@ThreadedNetworkedTests.test_enable_raises_error_if_no_capability�s���	"�	"�	"�	"�	"�T�_�	"�	"�	"�
�
�
�n�
-�
-�	I�1A�&�&����g�m�1�6�=�%�H�H�H�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�	I�	Is�/A%�%A)�,A)c��Gd�dt��}|�tjj��5|�|��5\}}|�dd��\}}|�|d��|�d��	ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��eZdZdS)�\ThreadedNetworkedTests.test_enable_UTF8_raises_error_if_not_supported.<locals>.NonUTF8ServerNrirWr&r$�
NonUTF8Serverr.�s�������Dr&r/rrr�r	)	rkrIrrKrGr�r
rr)r!r/rpr�rr
s      r$rzEThreadedNetworkedTests.test_enable_UTF8_raises_error_if_not_supported�sW��	�	�	�	�	�-�	�	�	�
�
�
�w�}�2�
3�
3�	�	��!�!�-�0�0�
�4D�V�V�"�L�L���8�8�	��T�� � ��d�+�+�+��
�
�m�,�,�,��	
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s6�B;�AB#�B;�#B'	�'B;�*B'	�+B;�;B?�B?c	���Gd�d|j��}|�|��5\}}|�|jd��|�dd���\}}|�|d��|�|jd��|�d��\}}|�|d��|�|jd	��d
}|�ddd|�d	����\}}|�|d��|�|jd|z�d	����ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�MThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServerc3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$r!zXThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPENDr"r&N)rSrTrUr!rWr&r$r#r2s#������
5�
5�
5�
5�
5r&r#r$r%c��dSr'rWr(s r$r*zEThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.<lambda>s��g�r&r�r,r	r-r.r/)	r;r�rr0r1rrr2r�)	r!r#rpr�r�r�r3rr
s	         r$r4z3ThreadedNetworkedTests.test_enable_UTF8_True_appends���	5�	5�	5�	5�	5�t��	5�	5�	5��
�
�.�
/�
/�	�3C�F�F����V�-�w�7�7�7��)�)�(�4E�4E�F�F�G�D�!����T�4�(�(�(����V�_�,�
.�
.�
.��m�m�M�2�2�G�D�!����T�4�(�(�(����V�-�w�7�7�7�2�J��
�
��d�D�*�"3�"3�G�"<�"<�>�>�I�C�����S�$�'�'�'������ �:�-�5�5�g�>�>�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�D*E � E$�'E$c��|�|j��5\}}|�dd���\}}|�|d��|�d��\}}|�|d��|�|j��|�tj	j
|jdd��ddd��dS#1swxYwYdS)Nr%c��dSr'rWr(s r$r*zSThreadedNetworkedTests.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>$s��W�r&r�r	r�r=)r�r;r1rrr>r�rIrrKrGr?)r!rpr�rr�s     r$r@zAThreadedNetworkedTests.test_search_disallows_charset_in_utf8_mode!s%��
�
�
�d�o�
.�
.�	P�2B�6�6��(�(��3D�3D�E�E�F�C�����S�$�'�'�'��]�]�=�1�1�F�C�����S�$�'�'�'��O�O�F�/�0�0�0����g�m�1�6�=�%��O�O�O�
	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P�	P����	P�	P�	P�	P�	P�	Ps�B(C�C�Cc�4�Gd�dt��}|�|��5\}}|�tjj��5|�dd���ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�;ThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServerc�f�|�|dd�|d����dSrErGr�s   r$rzLThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATE0s<���!�!�#�t�.,�,2�F�4��7�O�O�=�=�=�=�=r&NrIrWr&r$rJr9.s#������
=�
=�
=�
=�
=r&rJrKc��dSrMrWrWr&r$r*z;ThreadedNetworkedTests.test_bad_auth_name.<locals>.<lambda>6s��a�r&�rkr�rIrrKrGr1)r!rJrpr�s    r$rPz)ThreadedNetworkedTests.test_bad_auth_name+s/��	=�	=�	=�	=�	=�(�	=�	=�	=��
�
�h�
'�
'�	9�+;�F�F��"�"�7�=�#6�7�7�
9�
9��#�#�H�i�i�8�8�8�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9�
9����
9�
9�
9�
9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9�	9����	9�	9�	9�	9�	9�	9s5�(B
�A5�)B
�5A9	�9B
�<A9	�=B
�
B�Bc�:�Gd�dt��}|�|��5\}}|�tjj��5|�dd���\}}ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�DThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServerc3�tK�|�d��dV�|_|�|dd��dSrVrWr�s   r$rzUThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATE=rXr&NrIrWr&r$rJr?;s(������
O�
O�
O�
O�
Or&rJr%c��dSr'rWr(s r$r*zDThreadedNetworkedTests.test_invalid_authentication.<locals>.<lambda>Ds��W�r&r<�r!rJrpr�r�r
s      r$rZz2ThreadedNetworkedTests.test_invalid_authentication8s`��	O�	O�	O�	O�	O�(�	O�	O�	O��
�
�h�
'�
'�	N�+;�F�F��"�"�7�=�#6�7�7�
N�
N�#�0�0��;L�;L�M�M�
��d�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N�
N����
N�
N�
N�
N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N�	N����	N�	N�	N�	N�	N�	N�5�(B�A8�,B�8A<	�<B�?A<	�B�B�Bc��Gd�dt��}|�|��5\}}|�dd���\}}|�|d��|�|jd��ddd��n#1swxYwY|�|��5\}}|�dd���\}}|�|d��|�|jd��ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�BThreadedNetworkedTests.test_valid_authentication.<locals>.MyServerc3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r$rzSThreadedNetworkedTests.test_valid_authentication.<locals>.MyServer.cmd_AUTHENTICATEKrr&NrIrWr&r$rJrFIs(������
D�
D�
D�
D�
Dr&rJr%c��dSr'rWr(s r$r*zBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>Qrr&r�r,c��dSrirWr(s r$r*zBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>Ws���r&)rkr�r1rrrBs      r$�test_valid_authenticationz0ThreadedNetworkedTests.test_valid_authenticationFs���	D�	D�	D�	D�	D�(�	D�	D�	D��
�
�h�
'�
'�	.�+;�F�F��,�,�X�7H�7H�I�I�J�D�$����T�4�(�(�(����V�_�,�
.�
.�
.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.��
�
�h�
'�
'�	.�+;�F�F��,�,�X�7G�7G�H�H�J�D�$����T�4�(�(�(����V�_�,�
.�
.�
.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.�	.����	.�	.�	.�	.�	.�	.�%�AB�B�B�$AD�D�DrlTrmc��Gd�dt��}|�|��5\}}|�d|jv��|�dd��\}}|�|d��ddd��n#1swxYwY|�|��5\}}|�d|jv��|�dd��\}}|�|d��ddd��dS#1swxYwYdS)Nc��eZdZdZd�ZdS)�?ThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandlerrrc3�K�|�d��dV�}|dkr|�|dd��dS|�|dd��dSrtrurvs    r$rzPThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandler.cmd_AUTHENTICATEdrxr&NryrWr&r$rzrN`s(������8�L�
>�
>�
>�
>�
>r&rzr|r}r�r�r~)rkr�r>r�r�r)r!rzrpr�r�r
s      r$�test_login_cram_md5z*ThreadedNetworkedTests.test_login_cram_md5\s���	>�	>�	>�	>�	>�+�	>�	>�	>��
�
�k�
*�
*�	(�.>�v�v��O�O�O�v�/B�B�C�C�C��-�-�e�5G�H�H�I�C�����S�$�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�
�
�
�k�
*�
*�	(�.>�v�v��O�O�O�v�/B�B�C�C�C��-�-�e�5H�I�I�I�C�����S�$�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(rKc�:�Gd�dt��}|�|��5\}}|�tjj��5|�dd���\}}ddd��n#1swxYwYddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�DThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServerc3�K�|�d��dV�|_|jdkr|�|dd��dS|�|dd��dSr�rWr�s   r$rzUThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATE~sp�����#�#�C�(�(�(� %����
��=�H�,�,��%�%�c�4�1Q�R�R�R�R�R��%�%�c�4�1D�E�E�E�E�Er&NrIrWr&r$rJrS|s(������
F�
F�
F�
F�
Fr&rJr%c��dSr?rWr(s r$r*zDThreadedNetworkedTests.test_aborted_authentication.<locals>.<lambda>�s��T�r&r<rBs      r$r�z2ThreadedNetworkedTests.test_aborted_authenticationys^��		F�		F�		F�		F�		F�(�		F�		F�		F��
�
�h�
'�
'�	K�+;�F�F��"�"�7�=�#6�7�7�
K�
K�#�0�0��>�>�J�J�
��d�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K�
K����
K�
K�
K�
K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K�	K����	K�	K�	K�	K�	K�	KrCc���Gd�dt��}|�|��5}|jtjj|jg|j�R�ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�?ThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandlerc�`�|j�dtjdzzdz��dS)Ns* OK �xr~)rxryr�_MAXLINEr)s r$r�zFThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandler.handle�s0���
� � ��G�,<�t�,C�!C�g�!M�N�N�N�N�Nr&Nr�rWr&r$r�rX�s(������
O�
O�
O�
O�
Or&r�)rkr�rIrrKrGr�r�)r!r�rps   r$r�z'ThreadedNetworkedTests.test_linetoolong�s���	O�	O�	O�	O�	O�.�	O�	O�	O�
�
�
��
/�
/�	G�6��D��g�m�1�"�o�
G�06�0E�
G�
G�
G�
G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G�	G����	G�	G�	G�	G�	G�	Gr"c��|�t��5}|j|j�5	ddd��n#1swxYwYddd��dS#1swxYwYdSr?)r�rkr�r�)r!rps  r$r�z1ThreadedNetworkedTests.test_simple_with_statement�s����
�
� 1�
2�
2�	�f� ���&�"7�8�
�
��
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s.�A�9�A�=	�A�=	�A�A�Ac�P�|�t��5}|j|j�5}|�dd��|�|jd��ddd��n#1swxYwY|�|j��ddd��dS#1swxYwYdS�Nrr)r�rkr�r�r
rrrr��r!rpr�s   r$r�z*ThreadedNetworkedTests.test_with_statement�s ��
�
�
� 1�
2�
2�	-�f� ���&�"7�8�
8�D��
�
�6�6�*�*�*�� � ����7�7�7�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8�
8����
8�
8�
8�
8�
���f�m�,�,�,�		-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s4�B�2A)�B�)A-	�-B�0A-	�1B�B�"Bc��|�t��5}|j|j�5}|�dd��|�|jd��|���|�|j��ddd��n#1swxYwY|�|j��ddd��dS#1swxYwYdSr^)	r�rkr�r�r
rrrr�r�r_s   r$r�z1ThreadedNetworkedTests.test_with_statement_logout�sE���
�
� 1�
2�
2�	-�f� ���&�"7�8�
1�D��
�
�6�6�*�*�*�� � ����7�7�7����
�
�
��!�!�&�-�0�0�0�	
1�
1�
1�
1�
1�
1�
1�
1�
1�
1�
1����
1�
1�
1�
1�

���f�m�,�,�,�
	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-�	-����	-�	-�	-�	-�	-�	-s5�C	�A B�C	�B	�C	�B	�C	�	C
�C
z Won't work if __debug__ is Falsec��ddgi}|�t��5}|j|j�5}tj�|d��5}|�|��|�d��ddd��n#1swxYwYddd��n#1swxYwYddd��dS#1swxYwYdS)Nz
READ-WRITEr&�_mesgz)untagged responses dump:READ-WRITE: [b''])	r�rkr�r�rr�r��_dump_ur�assert_called_with)r!�untagged_resp_dictrpr��	mock_mesgs     r$�test_dump_urz#ThreadedNetworkedTests.test_dump_ur�s���
+�S�E�2��
�
�
� 1�
2�
2�	�f� ���&�"7�8�
�D��Z�&�&�t�W�5�5����M�M�"4�5�5�5��0�0�C����������������������
�
�
�
�
�
�
�
�
�
�
����
�
�
�
�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sX�B7�!B�+B�<B�B�B�B�B�B7�B#	�#B7�&B#	�'B7�7B;�>B;N)*rSrTrUr�r�r�rrKr�r�r�rr�r�r
�reap_threadsr�rrr�rkr;rrrr4r@rPrZrJrr�rPr�r�r�r�r�r	�unittest�
skipUnlessrgrWr&r$r�r�OsA�������)�L���J����@����-�-��^�-�� � ��^� ��"���#�"��
�"�.+�.+�#�"�.+�`�"�	G�	G�#�"�	G��"�
G�
G�#�"�
G�	@�	@�	@�	@�	@�&�	@�	@�	@��"�2�2�#�"�2��"�I�I�#�"�I��"���#�"���"���#�"��:�"�P�P�#�"�P��"�
9�
9�#�"�
9��"�N�N�#�"�N��"�.�.�#�"�.�*�"�'�^�'��t�<�<�<�(�(�=�<�#�"�(�6�"�K�K�#�"�K�$G�G�G��"���#�"���"�-�-�#�"�-��"�-�-�#�"�-��"���X���$F�G�G�
�
�H�G��\�#�"�
�
�
r&r�c�6�eZdZeZeZejd���Z	dS)�ThreadedNetworkedTestsSSLc�j�tjtj��}|�t��|�tjd��5|�t��5}|j	|j
d|i�}|���ddd��n#1swxYwYddd��n#1swxYwY|�t��5}|�	d|j
d|���}|���ddd��dS#1swxYwYdS)Nr�r�r�rr�)r]r^r�r�r�rr�r�rkr�r�r�)r!r�rpr�s    r$r�z+ThreadedNetworkedTestsSSL.test_ssl_verified�s����n�S�%<�=�=���)�)�&�1�1�1�
�
#�
#��$����	"�	"��#�#�$5�6�6�
"�&�(���&�*?�B�5@�B�B�����!�!�!�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"�
"����
"�
"�
"�
"�		"�	"�	"�	"�	"�	"�	"�	"�	"�	"�	"����	"�	"�	"�	"��
�
� 1�
2�
2�	�f��_�_�[�&�2G��2J�1<�%�>�>�F��O�O����	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	sH�B>�4'B'�B>�'B+	�+B>�.B+	�/B>�>C�C�#8D(�(D,�/D,N)
rSrTrUrYr�r�r�r
rhr�rWr&r$rlrl�s;������"�L��J��"���#�"���r&rl�networkznetwork resource disabledz'cyrus.andrew.cmu.edu blocks connectionsc�D�eZdZdZdZdZdZejZ	d�Z
d�Zd�Zd�Z
d	S)
�RemoteIMAPTestzcyrus.andrew.cmu.edur��	anonymousrc��tj|j��5|�|j|j��|_ddd��dS#1swxYwYdSr?)r�transient_internet�hostr��portrpr)s r$�setUpzRemoteIMAPTest.setUp�s���
�
-�d�i�
8�
8�	@�	@��/�/�$�)�T�Y�?�?�D�K�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�	@�	@s�&A
�
A�Ac��|j�Mtj|j��5|j���ddd��dS#1swxYwYdSdSr?)rprrsrtr�r)s r$�tearDownzRemoteIMAPTest.tearDown�s����;�"��1�$�)�<�<�
%�
%���"�"�$�$�$�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%�
%����
%�
%�
%�
%�
%�
%�#�"s�A�A�Ac��tj|j��5|jjD]}|�|t���|�d|jj��|�d|jj��|j�|j	|j
��}|�|dd��ddd��dS#1swxYwYdS)N�
LOGINDISABLEDzAUTH=ANONYMOUSrr�)rrsrtrpr��assertIsInstance�strrLr
�username�passwordr)r!�cap�rss   r$�test_logincapazRemoteIMAPTest.test_logincapa�s��
�
-�d�i�
8�
8�	*�	*��{�/�
0�
0���%�%�c�3�/�/�/�/��M�M�/�4�;�+C�D�D�D��M�M�*�D�K�,D�E�E�E���"�"�4�=�$�-�@�@�B����R��U�D�)�)�)�
	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�B,C�C�Cc���tj|j��5|j���}d|_|�|dd|��ddd��dS#1swxYwYdS�Nrr�)rrsrtrpr�r)r!r�s  r$r�zRemoteIMAPTest.test_logout�s���
�
-�d�i�
8�
8�	/�	/���#�#�%�%�B��D�K����R��U�E�2�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�>A%�%A)�,A)N)rSrTrUrtrur}r~rrKr�rvrxr�r�rWr&r$rprp�sp������"�D��D��H��H���J�@�@�@�%�%�%�
*�*�*�/�/�/�/�/r&rpc�$��eZdZ�fd�Zd�Z�xZS)�RemoteIMAP_STARTTLSTestc���t�����tj|j��5|j���}|�|dd��ddd��dS#1swxYwYdS)Nrr�)rnrvrrsrtrp�starttlsr)r!r�rts  �r$rvzRemoteIMAP_STARTTLSTest.setUps����
���
�
����
�
-�d�i�
8�
8�	*�	*���%�%�'�'�B����R��U�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�6A>�>B�Bc��|jjD]}|�|t���|�d|jj��dS)Nrz)rpr�r{r|�assertNotIn)r!rs  r$r�z&RemoteIMAP_STARTTLSTest.test_logincapasP���;�+�	,�	,�C��!�!�#�s�+�+�+�+�����$�+�*B�C�C�C�C�Cr&)rSrTrUrvr�r�r�s@r$r�r��sN�������*�*�*�*�*�D�D�D�D�D�D�Dr&r�c�F�eZdZdZeZd�Zd�Zd�Zd�Z	d�Z
d�Zd�Zd	�Z
d
S)�RemoteIMAP_SSLTesti�c��dSr?rWr)s r$rvzRemoteIMAP_SSLTest.setUp����r&c��dSr?rWr)s r$rxzRemoteIMAP_SSLTest.tearDownr�r&c��tjtj��}d|_tj|_|�t��|Srm)r]r^r�r��	CERT_NONEr�r`ra)r!r�s  r$�create_ssl_contextz%RemoteIMAP_SSLTest.create_ssl_contexts@���n�S�%<�=�=��%*��"�"%�-����#�#�H�-�-�-��r&c��	|jD]}|�|t���|�d|j��|�d|j��|�|j|j��}|�|dd��|�	��dS#|�	��wxYw)Nrzz
AUTH=PLAINrr�)
r�r{r|r�rLr
r}r~rr�)r!rprr�s    r$�check_logincapaz"RemoteIMAP_SSLTest.check_logincapa!s���	��*�
0�
0���%�%�c�3�/�/�/�/����_�f�.A�B�B�B��M�M�,��(;�<�<�<����d�m�T�]�;�;�B����R��U�D�)�)�)��M�M�O�O�O�O�O��F�M�M�O�O�O�O���s�BB/�/Cc���tj|j��5|�|j|j��}|�|��ddd��dS#1swxYwYdSr?)rrsrtr�rur�)r!�_servers  r$r�z!RemoteIMAP_SSLTest.test_logincapa,s���
�
-�d�i�
8�
8�	*�	*��o�o�d�i���;�;�G�� � ��)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�6A�A!�$A!c��tj|j��5|�|j|j��}|���}|�|dd|��ddd��dS#1swxYwYdSr�)rrsrtr�rur�r)r!r�r�s   r$r�zRemoteIMAP_SSLTest.test_logout1s���
�
-�d�i�
8�
8�	/�	/��o�o�d�i���;�;�G����!�!�B����R��U�E�2�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�AA9�9A=�A=c
��tj|j��5|�t|j|j|jt|������ddd��dS#1swxYwYdS)N)r�r��	rrsrtrIr�r�rurar�r)s r$�#test_ssl_context_certfile_exclusivez6RemoteIMAP_SSLTest.test_ssl_context_certfile_exclusive7s���
�
-�d�i�
8�
8�	J�	J�����D�O�T�Y��	�!�t�/F�/F�/H�/H�
�
J�
J�
J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J�	J����	J�	J�	J�	J�	J�	J��AA.�.A2�5A2c
��tj|j��5|�t|j|j|jt|������ddd��dS#1swxYwYdS)N)�keyfiler�r�r)s r$�"test_ssl_context_keyfile_exclusivez5RemoteIMAP_SSLTest.test_ssl_context_keyfile_exclusive=s���
�
-�d�i�
8�
8�	I�	I�����D�O�T�Y��	� �d�.E�.E�.G�.G�
�
I�
I�
I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I�	I����	I�	I�	I�	I�	I�	Ir�N)rSrTrUrur�r�rvrxr�r�r�r�r�r�rWr&r$r�r�s��������D��J�
�
�
�
�
�
����	�	�	�*�*�*�
/�/�/�J�J�J�I�I�I�I�Ir&r��__main__)9rr�test.supportr�
contextlibrr�os.path�osr�rrr�rCrrrr	r
rrr
rrirrrrr]�ImportError�pathr��dirname�__file__�curdirrar��TestCaserr�rYr�r�rkr�r�rjr�r�rl�is_resource_enabled�skiprpr�r�rS�mainrWr&r$�<module>r�s���������&�&�&�&�&�&�%�%�%�%�%�%�������������������������
�
�
�
�3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�3�(�'�'�'�'�'�)�)�)�)�)�)�(�(�(�(�(�(�����������2�2�2�2�2�2�2�2�2�2���J�J�J�J������
�C�C�C����� ���t�,�,�,�,�
�7�<�<������1�1�>�R�Y�
�N�[�[��	����b�g�o�o�h�/�/�<�2�9�j�.�	Y�	Y��>;�>;�>;�>;�>;�(�#�>;�>;�>;�B��(�(�(�(�(�,�0�(�(�(��!�I�I�
�
�
�
�
�
�
�
��I�\A�\A�\A�\A�\A��9�\A�\A�\A�~K/�K/�K/�K/�K/�K/�K/�K/�\
*�*�*�*�*�$�h�&7�*�*�*�
���S�-�.�.�$I�$I�$I�$I�$I�'��):�$I�$I�/�.�$I�Ln�n�n�n�n�X�.�n�n�n�b���S�-�.�.������ 6���/�.��0����G��	�*�*�,G�I�I����8�9�9�/�/�/�/�/�X�&�/�/�:�9�I�I�/�@���S�-�.�.�����G��	�*�*�,G�I�I����8�9�9�D�D�D�D�D�n�D�D�:�9�I�I�/�.�D����S�-�.�.����8�9�9�1I�1I�1I�1I�1I��1I�1I�:�9�/�.�1I�h�z����H�M�O�O�O�O�O��s�&A+�+A5�4A5

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists