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

�Ke����ddlmZddlmZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZmZmZmZmZddlmZddlmZddlmZddlZdd	lmZdd
lmZmZmZ	ddlZn
#e$rdZYnwxYwejd���ej�ej�e ��pej!d
��Z"ej�ej�e ��pej!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$��Z/ej-ed��Gd�d e/����Z0ej-ej1d!��d"��ej2d#��Gd$�d%ej$������Z3ej-ed��ej-ej1d!��d"��ej2d#��Gd&�d'e3��������Z4ej-ed��ej2d#��Gd(�d)e3������Z5e6d*krej7��dSdS)+�)�support)�
socket_helper)�contextmanagerN)�verbose�run_with_tz�run_with_locale�cpython_only�requires_working_socket)�hashlib_helper)�threading_helper)�warnings_helper)�mock)�datetime�timezone�	timedeltaT)�modulezkeycert3.pemzpycacert.pemc��eZdZd�Zed��d���Zd�Zeddd��ed��d	�����Zd
�Z	d�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/apps/python3/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�rs 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-r.rrrri �"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)Nr/)r2r�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)r2rr7)rr9s  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_valuePsc��
�]�_�_�	��
��	�	�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(r2rr;r>rP�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)rA�accept�ssl�
SSLContext�PROTOCOL_TLS_SERVER�load_cert_chain�CERTFILE�wrap_socket)r�	newsocket�fromaddr�context�
connstreams     r"�get_requestzSecureTCPServer.get_requestdsc��"&�+�"4�"4�"6�"6��I�x��n�S�%<�=�=�G��#�#�H�-�-�-� �,�,�Y�D�,�I�I�J��x�'�'r$N)rQrRrSrdrTr$r"rVrVbs#������	(�	(�	(�	(�	(r$rVc��eZdZdS)rVN�rQrRrSrTr$r"rVrVos�������r$c�p��eZdZejZdZdZ�fd�Zd�Z	d�Z
d�Zd�Zd�Z
d	�Zd
�Zd�Zd�Zd
�Z�xZS)�SimpleIMAPHandlerNr@c�x��t�����d|j_d|j_dS�NF)�super�setup�server�is_selected�logged�r�	__class__s �r"rlzSimpleIMAPHandler.setupzs.���
���
�
����"'����!�����r$c��tr$td|���z��|j�|��dS)NzSENT: %r)r�print�strip�wfile�write�r�messages  r"�_sendzSimpleIMAPHandler._sendsA���	0��*�w�}�}���.�/�/�/��
����!�!�!�!�!r$c�6�|�|dz��dS)N�
)ryrws  r"�
_send_linezSimpleIMAPHandler._send_line�s���
�
�7�W�$�%�%�%�%�%r$c�V�|�|�d����dS)N�ASCII)r|�encoderws  r"�_send_textlinez SimpleIMAPHandler._send_textline�s&��������w�/�/�0�0�0�0�0r$c�\�|�d�|||f����dS)N� )r��join)r�tag�coderxs    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�readrH�endswithrrsrt�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�)rr�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)rmror�r��rr�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)rmror�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.)rmrnr|r�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)rmrnr�r�s   r"�cmd_UNSELECTzSimpleIMAPHandler.cmd_UNSELECT�sX���;�"�	A�&+�D�K�#����c�4�)U�V�V�V�V�V����c�5�*?�@�@�@�@�@r$)rQrRrSr�LOOPBACK_TIMEOUT�timeoutr�r�rlryr|r�r�r�r�r�r�r�r��
__classcell__�rqs@r"rhrhus���������&�G��L��L�"�"�"�"�"�
"�"�"�
&�&�&�1�1�1�<�<�<�(@�(@�(@�T=�=�=�9�9�9�
8�8�8�G�G�G�
A�A�A�A�A�A�Ar$rhc�>�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�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d �Z!dS)"�NewIMAPTestsMixinNTc��	Gd�d|j��}|�|j��|�tjdf|��|_t
j|jdz|jj	ddi���|_
d|j
_|j
���|r|j
|jj�|_|j|jfS)	Nc��eZdZd�ZdS)�/NewIMAPTestsMixin._setup.<locals>.TestTCPServerc�X�	|�|��|����r=��
close_request�server_close�r�request�client_addresss   r"�handle_errorz<NewIMAPTestsMixin._setup.<locals>.TestTCPServer.handle_error�s2����"�"�7�+�+�+��!�!�#�#�#�r$N�rQrRrSr�rTr$r"�
TestTCPServerr��s#������
�
�
�
�
r$r�rz-server�
poll_interval�{�G�z�?��name�target�kwargsT)�server_class�
addCleanup�_cleanupr�HOSTrm�	threading�Thread�_testMethodName�
serve_forever�thread�daemon�start�
imap_class�server_address�client)r�imap_handlerrBr�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)N�LOGOUT)r��state�shutdownrmr�r�join_threadr�r's r"r�zNewIMAPTestsMixin._cleanup�sz��	��;�"�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�rurvr's r"r�zVNewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandler.handles���
� � ��)�)�)�)�)r$N�rQrRrSr�rTr$r"�
EOFHandlerr�
s#������
*�
*�
*�
*�
*r$r�F�rB)	�socketserver�StreamRequestHandlerr�rGrrI�abortr�r�)rr��_rms    r"�)test_EOF_without_complete_welcome_messagez;NewIMAPTestsMixin.test_EOF_without_complete_welcome_messages���	*�	*�	*�	*�	*��:�	*�	*�	*��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��ryr�r�s   r"r�zQNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITY�4���
�
�;�<�<�<��!�!�#�t�-C�D�D�D�D�Dr$N�rQrRrSr�rTr$r"�BadNewlineHandlerr�s(������
E�
E�
E�
E�
Er$r�Fr�)rhr�rGrrIr�r�r�)rr�r�rms    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�rQrRrSr�rTr$r"�
EnableHandlerr�s������4�L�L�Lr$r�zENABLE.*NONAUTH�foo)	rhr��assertFalse�utf8_enabled�assertRaisesRegexrrIrE�enable)rr�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�rhr�rrIrEr�)rr�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�rh�loginrr�rrIrEr��rr�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_ENABLE4�!���!�!�#�t�-@�A�A�A�A�Ar$c3�~K�|�d��dV�|j_|�|dd��dS�N�+r�zFAKEAUTH successful�r�rm�responser�r�s   r"�cmd_AUTHENTICATEzYNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_AUTHENTICATE6�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)rQrRrSr�rrrrTr$r"�UTF8AppendServerr2sL������/�L�
B�
B�
B�
D�
D�
D�
5�
5�
5�
5�
5r$r �ascii�MYAUTHc��dS�NsfakerT��xs r"�<lambda>z@NewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.<lambda>@���'�r$r��
ZmFrZQ==
r�utf-8�Subject: üñí©öðé�UTF8 (%s)
)	rhr�r�	_encoding�authenticaterr��appendr)	rr r�rmr�r��
msg_stringr	r
s	         r"�test_enable_UTF8_True_appendz.NewIMAPTestsMixin.test_enable_UTF8_True_append1sm��	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_ENABLEOrr$c3�~K�|�d��dV�|j_|�|dd��dSrrr�s   r"rzaNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_AUTHENTICATEQrr$N�rQrRrSr�rrrTr$r"�
UTF8Serverr4Ms?������4�L�
B�
B�
B�
D�
D�
D�
D�
Dr$r8r"c��dSr$rTr%s r"r'zNNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>Vs���r$r�rz
charset.*UTF8r��bar)rhr�r.rr��
assertTruer�r�rrIrE�search)rr8r�r�r	s     r"�*test_search_disallows_charset_in_utf8_modez<NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_modeLsR��	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_AUTHENTICATE`sB���!�!�#�t�9�@�@��a��I�I�K�K�K�K�Kr$N�rQrRrSrrTr$r"�MyServerr@_s(������
K�
K�
K�
K�
Kr$rGz'unrecognized authentication type METHOD�METHODc��dS�NrrTrTr$r"r'z6NewIMAPTestsMixin.test_bad_auth_name.<locals>.<lambda>fs��!�r$�rhr�r�rrIrEr.�rrGr�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�NrrCz[AUTHENTICATIONFAILED] invalid�r�rr�r�s   r"rzPNewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATEj�D�����#�#�C�(�(�(� %����
��!�!�#�t�-M�N�N�N�N�Nr$NrFrTr$r"rGrQis(������
O�
O�
O�
O�
Or$rGz \[AUTHENTICATIONFAILED\] invalidr"c��dSr$rTr%s r"r'z?NewIMAPTestsMixin.test_invalid_authentication.<locals>.<lambda>qs��G�r$rKrLs    r"�test_invalid_authenticationz-NewIMAPTestsMixin.test_invalid_authenticationhs���	O�	O�	O�	O�	O�(�	O�	O�	O�
�K�K��)�)�	���
�
#�
#�G�M�$7�3�5�5�	=�	=�����*;�*;�<�<�<�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=�	=����	=�	=�	=�	=�	=�	=rNc���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_AUTHENTICATEurr$NrFrTr$r"rGrZt�(������
D�
D�
D�
D�
Dr$rGr"c��dSr$rTr%s r"r'zCNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.<lambda>zr(r$r�r)�rhr�r.rr�rrGr�rmr�r�s      r"�test_valid_authentication_bytesz1NewIMAPTestsMixin.test_valid_authentication_bytesss���	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$NrFrTr$r"rGrcr\r$rGr"c��dS�N�fakerTr%s r"r'zHNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.<lambda>�s��&�r$r�r)r^r_s      r"�$test_valid_authentication_plain_textz6NewIMAPTestsMixin.test_valid_authentication_plain_text~s���	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 successfulrCz	No access�r�r��rr�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�rQrRrSr�rrTr$r"�AuthHandlerrn��(������8�L�
>�
>�
>�
>�
>r$rw�
AUTH=CRAM-MD5�tim�tanstaaftanstaafr��rhr�r;r��login_cram_md5r�rrwr�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>.AuthHandlerroc3�K�|�d��dV�}|dkr|�|dd��dS|�|dd��dSrqrrrss    r"rzVNewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandler.cmd_AUTHENTICATE�rur$NrvrTr$r"rwr��rxr$rwryrz�tanstaaftanstaafr�r|r~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*
rCz[AUTHENTICATIONFAILED] abortedr�zMYAUTH successfulrTr�s   r"rzPNewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATE�s~�����#�#�C�(�(�(� %����
��=�H�,�,��%�%���8�:�:�:�:�:�
�%�%�c�4�1D�E�E�E�E�Er$NrFrTr$r"rGr��s(������	
F�	
F�	
F�	
F�	
Fr$rGz \[AUTHENTICATIONFAILED\] abortedr"c��dSr=rTr%s r"r'z?NewIMAPTestsMixin.test_aborted_authentication.<locals>.<lambda>�s��D�r$rKrLs    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�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:�	:����	:�	:�	:�	:�	:�	:rNzimaplib._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�rTr$r"�TooLongHandlerr��s(������
A�
A�
A�
A�
Ar$r�Fr�zgot more than 10 bytes)rhr�r�rrIrEr�r�)rr�r�rms    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�rhr�r�)rr�rms   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�Ac�H�|�t��\}}|jd}|�d|d���}|�|jjd��|���|�d|tj	���}|�|jjtj	��|���|�
t��5|�d|d���}ddd��dS#1swxYwYdS)Nr�	localhost�r�r)r�rhr�r�r�sockr�r�rr�rG�
ValueError)rr�rm�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�|��dSrJ)r�sleeprhr�r's r"r�zXNewIMAPTestsMixin.test_imaplib_timeout_functionality_test.<locals>.TimeoutHandler.handle�s)���
�1�
�
�
�!�(�(��.�.�.�.�.r$Nr�rTr$r"�TimeoutHandlerr��s#������
/�
/�
/�
/�
/r$r�rr�g����MbP?r�)rhr�r�rG�TimeoutErrorr�)rr�r�rmr�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�rhr�r�rrro�assertIsNone�rr�rm�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�rhr�r�rrro�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�rhrrr�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�rhrrr�r�rs     r"�test_logoutzNewIMAPTestsMixin.test_logout�s����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 completedrrr�s   r"�cmd_LSUBz5NewIMAPTestsMixin.test_lsub.<locals>.LsubCmd.cmd_LSUBs0���#�#�$>�?�?�?��(�(��d�4D�E�E�Er$N)rQrRrSr�rTr$r"�LsubCmdr�
s(������
F�
F�
F�
F�
Fr$r�rrr�rs() "." directoryA)rhr�r�lsubr)rr�r�r�r	r
s      r"�	test_lsubzNewIMAPTestsMixin.test_lsub	s���	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�rhr�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)"rQrRrSr�r�r�r�r�r�rrr1r=rMrWr`rhr�requires_hashdigestr�r�r�r�patchr�r�r�r�r�r�r�r�r�r�rTr$r"r�r��s������
�F�(�(�(�(�B��� 2�2�2�2�2�2�.�.�.�!�!�!�)�)�)�<�<�<�6(�(�(�$5�5�5�	=�	=�	=�	;�	;�	;�	;�	;�	;�(�^�'��t�<�<�<�$�$�=�<�$�"(�^�'��t�<�<�<�$�$�=�<�$�":�:�:�"�T�Z�"�B�'�'�4�4�(�'�4����

C�
C�
C�	G�	G�	G�)�)�)�)�)�)�/�/�/�1�1�1�	8�	8�	8�
/�
/�
/�
/�
/r$r�c�*�eZdZejZejZdS)�NewIMAPTestsN)	rQrRrSrrIr�r��	TCPServerr�rTr$r"r�r�!s��������J��)�L�L�Lr$r�zSSL not availablec�8�eZdZeZeZd�Zd�Ze	d���Z
dS)�NewIMAPSSLTestsc���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)rZr[�PROTOCOL_TLS_CLIENTr�verify_mode�
CERT_REQUIRED�check_hostname�load_verify_locations�CAFILEr��CertificateErrorr�rhr�r�r��rr�r�rmr�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�)
rZr[r�r�r�r�rhr�r�r�r�s     r"�test_ssl_verifiedz!NewIMAPSSLTests.test_ssl_verified9s{���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)Nr@�open�_connectr��)�certfile)r
�check_warnings�DeprecationWarningrr��objectr�r^r's r"�test_certfile_arg_warnz&NewIMAPSSLTests.test_certfile_arg_warnDs���
�
+�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)rQrRrS�	IMAP4_SSLr�rVr�r�r�r	r�rTr$r"r�r�&s\�������J�"�L��������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_errorRs+���"�"�7�+�+�+��!�!�#�#�#�r$Nr�rTr$r"rGr�Qs#������
�
�
�
�
r$rGzcreating serverzserver createdzADDR =zCLASS =zHDLR =z
%s servingr�r�r�Tzserver running)
r�rrsrr�rA�getsockname�RequestHandlerClassr�r�r�r�r�)rr��hdlrrGrmr9s      r"�make_serverz"ThreadedNetworkedTests.make_serverOs6��	�	�	�	�	�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)rrsr�r�r�)rrmr�s   r"�reap_serverz"ThreadedNetworkedTests.reap_serverosi���	(��&�'�'�'����������������
�
�
��	��&�M�M�M�M�M�	�	r$c#�K�|�tjdf|��\}}	|V�|�||��dS#|�||��wxYw)Nr)r�rr�r�)rr�rmr�s    r"�
reaped_serverz$ThreadedNetworkedTests.reaped_serverxsm�����)�)�=�+=�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�)rr�rmr�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�rhr�r�r��rrmr�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)�flagsrkr�rps �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�rr|rr�)rr�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.)rtr�r�extendr�r|rr�)rr�r��	new_flags�	flags_msgrs      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$)rQrRrSr�rr�rr�r�s@r"�BracketFlagHandlerr��sr�������
!�
!�
!�
!�
!�
D�
D�
D�

O�
O�
O�
A�
A�
A�
A�
A�
A�
Ar$r
r"c��dSr$rTr%s r"r'z;ThreadedNetworkedTests.test_bracket_flags.<locals>.<lambda>�����r$r�r)�test�1z+FLAGSz[test]s[test]�PERMANENTFLAGS)rhr�r.rrr��storerJ)rr
rmr�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�rTr$r"r�r�s#������
*�
*�
*�
*�
*r$r�)	r�r�r�rGrrIr�r�r�)rr�rms   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�rTr$r"r�r�s(������
E�
E�
E�
E�
Er$r�)rhr�rGrrIr�r�r�)rr�rms   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$Nr7rTr$r"r8r �s<������0��	>�	>�	>�	@�	@�	@�	@�	@r$r8c�0�|�|j��5\}}|�|j��|�t
jj|jd��|�|j��ddd��dS#1swxYwYdS)Nr�)	r�r8r�r�rGrrIrEr�r�s   r"r�z;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�rTr$r"�NoEnableServerr&�s������!�L�L�Lr$r'r�)r8r�rGrrIrEr�)rr'rmr�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>.NonUTF8ServerNrfrTr$r"�
NonUTF8Serverr*�s�������Dr$r+rrr�r)	rhrGrrIrEr�rrr�)rr+rmr�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"rzXThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPENDrr$N)rQrRrSrrTr$r"r r.s#������
5�
5�
5�
5�
5r$r r!r"c��dSr$rTr%s r"r'zEThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.<lambda>
s��g�r$r�r)rr*r+r,)	r8r�rr-r.rr�r/r)	rr rmr�r�r�r0r	r
s	         r"r1z3ThreadedNetworkedTests.test_enable_UTF8_True_append�s���	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$rTr%s r"r'zSThreadedNetworkedTests.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda> s��W�r$r�rr�r:)r�r8r.rr�r;r�rGrrIrEr<)rrmr�r	r�s     r"r=zAThreadedNetworkedTests.test_search_disallows_charset_in_utf8_modes%��
�
�
�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����dSrBrDr�s   r"rzLThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATE,s<���!�!�#�t�.,�,2�F�4��7�O�O�=�=�=�=�=r$NrFrTr$r"rGr5*s#������
=�
=�
=�
=�
=r$rGrHc��dSrJrTrTr$r"r'z;ThreadedNetworkedTests.test_bad_auth_name.<locals>.<lambda>2s��a�r$�rhr�rGrrIrEr.)rrGrmr�s    r"rMz)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��dSrSrTr�s   r"rzUThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATE9rUr$NrFrTr$r"rGr;7s(������
O�
O�
O�
O�
Or$rGr"c��dSr$rTr%s r"r'zDThreadedNetworkedTests.test_invalid_authentication.<locals>.<lambda>@s��W�r$r8�rrGrmr�r�r
s      r"rWz2ThreadedNetworkedTests.test_invalid_authentication4s`��	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_AUTHENTICATEGrr$NrFrTr$r"rGrBEs(������
D�
D�
D�
D�
Dr$rGr"c��dSr$rTr%s r"r'zBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>Mrr$r�r)c��dSrfrTr%s r"r'zBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>Ss���r$)rhr�r.rrr>s      r"�test_valid_authenticationz0ThreadedNetworkedTests.test_valid_authenticationBs���	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�DriTrjc��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>.AuthHandlerroc3�K�|�d��dV�}|dkr|�|dd��dS|�|dd��dSrqrrrss    r"rzPThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandler.cmd_AUTHENTICATE`rur$NrvrTr$r"rwrJ\s(������8�L�
>�
>�
>�
>�
>r$rwryrzr�r�r{)rhr�r;r�r}r)rrwrmr�rr
s      r"�test_login_cram_md5z*ThreadedNetworkedTests.test_login_cram_md5Xs���	>�	>�	>�	>�	>�+�	>�	>�	>��
�
�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�$�'�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	(�	(rGc�:�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�rTr�s   r"rzUThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATEzsp�����#�#�C�(�(�(� %����
��=�H�,�,��%�%�c�4�1Q�R�R�R�R�R��%�%�c�4�1D�E�E�E�E�Er$NrFrTr$r"rGrOxs(������
F�
F�
F�
F�
Fr$rGr"c��dSr=rTr%s r"r'zDThreadedNetworkedTests.test_aborted_authentication.<locals>.<lambda>�s��T�r$r8r>s      r"r�z2ThreadedNetworkedTests.test_aborted_authenticationus^��		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�	Kr?c���Gd�dt��}|�|��5}|jtjj|jg|j�R�ddd��dS#1swxYwYdS)Nc��eZdZd�ZdS)�?ThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandlerc�`�|j�dtjdzzdz��dS)Ns* OK �xr{)rurvr�_MAXLINEr's r"r�zFThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandler.handle�s0���
� � ��G�,<�t�,C�!C�g�!M�N�N�N�N�Nr$Nr�rTr$r"r�rT�s(������
O�
O�
O�
O�
Or$r�)rhr�rGrrIrEr�r�)rr�rms   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�	Grc��|�t��5}|j|j�5	ddd��n#1swxYwYddd��dS#1swxYwYdSr=)r�rhr�r�)rrms  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�rhr�r�rrror��rrmr�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#1swxYwYdSrZ)	r�rhr�r�rrror�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
Fz 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�rhr�r�rr�r��_dump_ur�assert_called_with)r�untagged_resp_dictrmr��	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)*rQrRrSr�r�r�rrIr�r�r�rr�r�r�reap_threadsr�rrr�rhr8r�rrr1r=rMrWrFrr�rLr�r�r�r�r�r	�unittest�
skipUnlessrcrTr$r"r�r�KsA�������)�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�)rZr[r�r�r�r�r�r�rhr�r�r�)rr�rmr�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)
rQrRrSrVr�r�r�rrdr�rTr$r"rhrh�s;������"�L��J��"���#�"���r$rh�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��portrmr'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=)rmrrorpr�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�)rrorprmr��assertIsInstance�strrJr�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�)rrorprmr�r)rr|s  r"r�zRemoteIMAPTest.test_logout�s���
�
-�d�i�
8�
8�	/�	/���#�#�%�%�B��D�K����R��U�E�2�.�.�.�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/�	/����	/�	/�	/�	/�	/�	/s�>A%�%A)�,A)N)rQrRrSrprqryrzrrIr�rrrtr}r�rTr$r"rlrl�sp������"�D��D��H��H���J�@�@�@�%�%�%�
*�*�*�/�/�/�/�/r$rlc�$��eZdZ�fd�Zd�Z�xZS)�RemoteIMAP_STARTTLSTestc���t�����tj|j��5|j���}|�|dd��ddd��dS#1swxYwYdS)Nrr�)rkrrrrorprm�starttlsr)rr|rqs  �r"rrzRemoteIMAP_STARTTLSTest.setUp�s����
���
�
����
�
-�d�i�
8�
8�	*�	*���%�%�'�'�B����R��U�D�)�)�)�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*�	*�	*s�6A>�>B�Bc��|jjD]}|�|t���|�d|jj��dS)Nrv)rmr�rwrx�assertNotIn)rr{s  r"r}z&RemoteIMAP_STARTTLSTest.test_logincapasP���;�+�	,�	,�C��!�!�#�s�+�+�+�+�����$�+�*B�C�C�C�C�Cr$)rQrRrSrrr}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=rTr's r"rrzRemoteIMAP_SSLTest.setUp����r$c��dSr=rTr's r"rtzRemoteIMAP_SSLTest.tearDownr�r$c��tjtj��}d|_tj|_|�t��|Srj)rZr[r�r��	CERT_NONEr�r]r^)rr�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)Nrvz
AUTH=PLAINrr�)
r�rwrxr�rJrryrzrr�)rrmr{r|s    r"�check_logincapaz"RemoteIMAP_SSLTest.check_logincapas���	��*�
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=)rrorpr�rqr�)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)rrorpr�rqr�r)rr�r|s   r"r�zRemoteIMAP_SSLTest.test_logout-s���
�
-�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��	rrorprGr�r�rqr^r�r's r"�#test_ssl_context_certfile_exclusivez6RemoteIMAP_SSLTest.test_ssl_context_certfile_exclusive3s���
�
-�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_exclusive9s���
�
-�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)rQrRrSrqr�r�rrrtr�r�r}r�r�r�rTr$r"r�r�
s��������D��J�
�
�
�
�
�
����	�	�	�*�*�*�
/�/�/�J�J�J�I�I�I�I�Ir$r��__main__)8rr�test.supportr�
contextlibrr�os.path�osr�rrr�rArrrr	r
rrr
rerrrrrZ�ImportError�pathr��dirname�__file__�curdirr^r��TestCaserr�rVr�r�rhr�r�rfr�r�rh�is_resource_enabled�skiprlr�r�rQ�mainrTr$r"�<module>r�s���������&�&�&�&�&�&�%�%�%�%�%�%�������������������������
�
�
�
�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��O�O��	����b�g�o�o�h�/�/�<�2�9�n�	M�	M��=;�=;�=;�=;�=;�(�#�=;�=;�=;�@��(�(�(�(�(�,�0�(�(�(��!�I�I�
�
�
�
�
�
�
�
��I�\A�\A�\A�\A�\A��9�\A�\A�\A�~J/�J/�J/�J/�J/�J/�J/�J/�Z
*�*�*�*�*�$�h�&7�*�*�*�
���S�-�.�.�"I�"I�"I�"I�"I�'��):�"I�"I�/�.�"I�Hn�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)�)A3�2A3