403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.95
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_imaplib.cpython-36.opt-2.pyc
3

�
�^R��@sJddlmZejd�ZddlmZddlZddlZddlZ	ddl
Z
ddlZddlZddl
Z
ddlmZmZmZmZmZmZddlZddlmZddlmZmZmZyddlZWnek
r�dZYnXe	jje	jje�p�e	j d�Z!e	jje	jje�p�e	j d	�Z"Gd
d�dej#�Z$e�r2Gdd
�d
e
j%�Z&ej'Z'nGdd
�d
�Z&dZ'Gdd�de
j(�Z)Gdd�d�Z*Gdd�de*ej#�Z+ej,ed�Gdd�de*ej#��Z-Gdd�dej#�Z.ej,ed�Gdd�de.��Z/ej,ej0d�d�Gdd�dej#��Z1ej,ed�ej,ej0d�d�Gd d!�d!e1���Z2ej,ed�Gd"d#�d#e1��Z3e4d$k�rFej5�dS)%�)�support�	threading)�contextmanagerN)�reap_threads�verbose�transient_internet�run_with_tz�run_with_locale�cpython_only)�mock)�datetime�timezone�	timedeltazkeycert3.pemzpycacert.pemc@sXeZdZdd�Zed�dd��Zdd�Zedd	d
�ed�dd
���Zdd�Z	dd�Z
dS)�TestImaplibc
Csbtjd
�}tjd�}|jtj|�|�tjd�}|jtj|�|�tjd�}|jtj|�|�dS)N���rs.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")���rr)	rrrrrrrrr)�calendarZtimegm�imaplib�Internaldate2tuple�assertEqual�timeZmktime)�selfZt0�tt�r�1/opt/alt/python36/lib64/python3.6/test_imaplib.py�test_Internaldate2tuple s
z#TestImaplib.test_Internaldate2tuplezMST+07MDT,M4.1.0,M10.5.0cCs|jtjd�tjd��dS)Ns.25 (INTERNALDATE "02-Apr-2000 02:30:00 +0000")s.25 (INTERNALDATE "02-Apr-2000 03:30:00 +0000"))ZassertNotEqualrr)rrrr�"test_Internaldate2tuple_issue10941,sz.TestImaplib.test_Internaldate2tuple_issue10941c
Cs*ddtjd�ddtjdttd	d���dgS)Ni�5wge��A�����!�rr��<z"18-May-2033 05:33:20 +0200"rrr)	rrr rr!r"rrrrr)	rrr rr!r"rrr�xi )rZ	localtimerZ
fromtimestampr
r)rrrr�
timevalues3szTestImaplib.timevalues�LC_ALL�de_DE�fr_FRzSTD-1DST,M3.2.0,M11.1.0cCs0d}x&|j�D]}tj|�}|j||�qWdS)Nz"18-May-2033 05:33:20 +0200")r&r�Time2Internaldater)rZexpected�tZinternalrrr�test_Time2Internaldate;s
z"TestImaplib.test_Time2InternaldatecCs x|j�D]}tj|�q
WdS)N)r&rr*)rr+rrr�,test_that_Time2Internaldate_returns_a_resultFsz8TestImaplib.test_that_Time2Internaldate_returns_a_resultc
CsPtjg}ttd�r|jtj�|jt��}tj�WdQRX|j	|j
j|�dS)N�
EADDRNOTAVAIL)�errnoZECONNREFUSED�hasattr�appendr.�assertRaises�OSErrorr�IMAP4�assertInZ	exception)rZexpected_errnos�cmrrr�test_imap4_host_default_valueMs
z)TestImaplib.test_imap4_host_default_valueN)�__name__�
__module__�__qualname__rrrr&r	r,r-r7rrrrrs
rc@seZdZdd�ZdS)�SecureTCPServercCs6|jj�\}}tj�}|jt�|j|dd�}||fS)NT)Zserver_side)�socketZaccept�ssl�
SSLContext�load_cert_chain�CERTFILEZwrap_socket)rZ	newsocketZfromaddr�contextZ
connstreamrrr�get_request^s

zSecureTCPServer.get_requestN)r8r9r:rBrrrrr;\sr;c@seZdZdS)r;N)r8r9r:rrrrr;iscsheZdZdZdZdZ�fdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�Zdd�Z
dd�Z�ZS)�SimpleIMAPHandlerrN�cst�j�d|j_dS)N)�super�setup�server�logged)r)�	__class__rrrFts
zSimpleIMAPHandler.setupcCs$trtd|j��|jj|�dS)NzSENT: %r)r�print�strip�wfile�write)r�messagerrr�_sendxszSimpleIMAPHandler._sendcCs|j|d�dS)Ns
)rO)rrNrrr�
_send_line}szSimpleIMAPHandler._send_linecCs|j|jd��dS)N�ASCII)rP�encode)rrNrrr�_send_textline�sz SimpleIMAPHandler._send_textlinecCs|jdj|||f��dS)N� )rS�join)r�tag�coderNrrr�_send_tagged�szSimpleIMAPHandler._send_taggedcCs$|jd��xd}xJy$|jjd�}|dkr.dS||7}Wntk
rLdSX|jd�rPqWtrrtd|j��|jr�y|jj	|�Wqt
k
r�d|_YqXq|jd�j�}|d}|d}|dd�}t
|d	|��r
t|d	|�||�}|�r||_t|�q|j|d
|d�qWdS)Nz* OK IMAP4rev1�rs
zGOT: %rrQrr#Zcmd_ZBADz unknown)rSZrfile�readr3�endswithrrJrK�continuation�send�
StopIteration�decode�splitr0�getattr�nextrX)r�line�partZ	splitlinerV�cmd�argsr\rrr�handle�s>


zSimpleIMAPHandler.handlecCs4|jrd|jnd}|jd|�|j|dd�dS)Nz
IMAP4rev1 Z	IMAP4rev1z
* CAPABILITY �OKzCAPABILITY completed)�capabilitiesrSrX)rrVrfZcapsrrr�cmd_CAPABILITY�sz SimpleIMAPHandler.cmd_CAPABILITYcCs$d|j_|jd�|j|dd�dS)Nz"* BYE IMAP4ref1 Server logging outrhzLOGOUT completed)rGrHrSrX)rrVrfrrr�
cmd_LOGOUT�s
zSimpleIMAPHandler.cmd_LOGOUTcCs|d|j_|j|dd�dS)NrrhzLOGIN completed)rGrHrX)rrVrfrrr�	cmd_LOGIN�szSimpleIMAPHandler.cmd_LOGIN)r8r9r:Ztimeoutr\rirFrOrPrSrXrgrjrkrl�
__classcell__rr)rIrrCos*rCc@s�eZdZdZd3dd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zejd#d$�d%d&��Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�ZdS)4�NewIMAPTestsMixinNTcCs�Gdd�d|j�}|j|j�|jtjdf|�|_tj|jd|jj	ddid�|_
d|j
_|j
j�|rx|j
|jj�|_|j|jfS)	Nc@seZdZdd�ZdS)z/NewIMAPTestsMixin._setup.<locals>.TestTCPServercSs|j|�|j��dS)N)�
close_request�server_close)r�request�client_addressrrr�handle_error�s
z<NewIMAPTestsMixin._setup.<locals>.TestTCPServer.handle_errorN)r8r9r:rsrrrr�
TestTCPServer�srtrz-server�
poll_intervalg{�G�z�?)�name�target�kwargsT)�server_classZ
addCleanup�_cleanupr�HOSTrGr�ThreadZ_testMethodName�
serve_forever�thread�daemon�start�
imap_class�server_address�client)rZimap_handler�connectrtrrr�_setup�s	
zNewIMAPTestsMixin._setupcCsD|jdk	r |jjdkr |jj�|jj�|jj�|jjd�dS)N�LOGOUTg@)r��state�shutdownrGrpr~rU)rrrrrz�s



zNewIMAPTestsMixin._cleanupcCsBGdd�dtj�}|j|dd�\}}|jtjj|jf|j��dS)Nc@seZdZdd�ZdS)zONewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandlercSs|jjd�dS)Ns* OK)rLrM)rrrrrg�szVNewIMAPTestsMixin.test_EOF_without_complete_welcome_message.<locals>.EOFHandler.handleN)r8r9r:rgrrrr�
EOFHandler�sr�F)r�)	�socketserver�StreamRequestHandlerr�r2rr4�abortr�r�)rr��_rGrrr�)test_EOF_without_complete_welcome_message�sz;NewIMAPTestsMixin.test_EOF_without_complete_welcome_messagecCs@Gdd�dt�}|j|dd�\}}|jtjj|jf|j��dS)Nc@seZdZdd�ZdS)zBNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandlercSs|jd�|j|dd�dS)Ns* CAPABILITY IMAP4rev1 AUTH
rhzCAPABILITY completed)rOrX)rrVrfrrrrj�s
zQNewIMAPTestsMixin.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITYN)r8r9r:rjrrrr�BadNewlineHandler�sr�F)r�)rCr�r2rr4r�r�r�)rr�r�rGrrr�test_line_termination�sz'NewIMAPTestsMixin.test_line_terminationc	Cs`Gdd�dt�}|j|�\}}|j|j�|jtjjd��|jd�WdQRX|j|j�dS)Nc@seZdZdZdS)zMNewIMAPTestsMixin.test_enable_raises_error_if_not_AUTH.<locals>.EnableHandlerzAUTH ENABLE UTF8=ACCEPTN)r8r9r:rirrrr�
EnableHandlersr�zENABLE.*NONAUTH�foo)	rCr��assertFalse�utf8_enabled�assertRaisesRegexrr4�error�enable)rr�r�r�rrr�$test_enable_raises_error_if_not_AUTHsz6NewIMAPTestsMixin.test_enable_raises_error_if_not_AUTHc	Cs8|jt�\}}|jtjjd��|jd�WdQRXdS)Nzdoes not support ENABLEr�)r�rCr�rr4r�r�)rr�r�rrr�)test_enable_raises_error_if_no_capabilitys
z;NewIMAPTestsMixin.test_enable_raises_error_if_no_capabilityc	CsT|jt�\}}|jdd�\}}|j|d�|jtjjd��|jd�WdQRXdS)N�user�passrhzdoes not support ENABLEzUTF8=ACCEPT)	r�rC�loginrr�rr4r�r�)rr�r��typ�datarrr�.test_enable_UTF8_raises_error_if_not_supporteds
z@NewIMAPTestsMixin.test_enable_UTF8_raises_error_if_not_supportedc	Cs�Gdd�dt�}|j|�\}}|j|jd�|jddd��\}}|j|d�|j|jd�|jd	�\}}|j|d�|j|jd
�d}|jddd|jd
��\}}|j|d�|j|jd|jd
��dS)
Nc@s(eZdZdZdd�Zdd�Zdd�ZdS)	zHNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServerzENABLE UTF8=ACCEPTcSs|j|dd�dS)NrhzENABLE successful)rX)rrVrfrrr�
cmd_ENABLEszSNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_ENABLEcss&|jd�dV|j_|j|dd�dS)N�+rhzFAKEAUTH successful)rSrG�responserX)rrVrfrrr�cmd_AUTHENTICATE!s

zYNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_AUTHENTICATEcss&|jd�dV|j_|j|dd�dS)Nr�rh�okay)rSrGr�rX)rrVrfrrr�
cmd_APPEND%s

zSNewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPENDN)r8r9r:rir�r�r�rrrr�UTF8AppendServersr��ascii�MYAUTHcSsdS)Nsfaker)�xrrr�<lambda>+sz@NewIMAPTestsMixin.test_enable_UTF8_True_append.<locals>.<lambda>rhs
ZmFrZQ==
zUTF8=ACCEPTzutf-8uSubject: üñí©öðézUTF8 (%s)
)	rCr�r�	_encoding�authenticater�r�r1rR)	rr�r�rGrWr��
msg_stringr�r�rrr�test_enable_UTF8_True_appendsz.NewIMAPTestsMixin.test_enable_UTF8_True_appendc
Cs�Gdd�dt�}|j|�\}}|jddd��\}}|j|d�|jd�\}}|j|d�|j|j�|jtj	j
d��|jd	d
�WdQRXdS)Nc@s eZdZdZdd�Zdd�ZdS)zPNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8ServerzAUTH ENABLE UTF8=ACCEPTcSs|j|dd�dS)NrhzENABLE successful)rX)rrVrfrrrr�:sz[NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_ENABLEcss&|jd�dV|j_|j|dd�dS)Nr�rhzFAKEAUTH successful)rSrGr�rX)rrVrfrrrr�<s

zaNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.UTF8Server.cmd_AUTHENTICATEN)r8r9r:rir�r�rrrr�
UTF8Server8sr�r�cSsdS)Nsfaker)r�rrrr�AszNNewIMAPTestsMixin.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>rhzUTF8=ACCEPTz
charset.*UTF8r��bar)rCr�r�rr��
assertTruer�r�rr4r��search)rr�r�r�r�rrr�*test_search_disallows_charset_in_utf8_mode7sz<NewIMAPTestsMixin.test_search_disallows_charset_in_utf8_modecCsNGdd�dt�}|j|�\}}|jtjjd��|jddd��WdQRXdS)Nc@seZdZdd�ZdS)z6NewIMAPTestsMixin.test_bad_auth_name.<locals>.MyServercSs|j|ddj|d��dS)N�NOz#unrecognized authentication type {}r)rX�format)rrVrfrrrr�KszGNewIMAPTestsMixin.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrr�MyServerJsr�z'unrecognized authentication type METHOD�METHODcSsdS)Nrrrrrrr�Qsz6NewIMAPTestsMixin.test_bad_auth_name.<locals>.<lambda>)rCr�r�rr4r�r�)rr�r�r�rrr�test_bad_auth_nameIs

z$NewIMAPTestsMixin.test_bad_auth_namecCsNGdd�dt�}|j|�\}}|jtjjd��|jddd��WdQRXdS)Nc@seZdZdd�ZdS)z?NewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServercss$|jd�dV|_|j|dd�dS)Nr�r�z[AUTHENTICATIONFAILED] invalid)rSr�rX)rrVrfrrrr�Us
zPNewIMAPTestsMixin.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr�Tsr�z \[AUTHENTICATIONFAILED\] invalidr�cSsdS)Nsfaker)r�rrrr�\sz?NewIMAPTestsMixin.test_invalid_authentication.<locals>.<lambda>)rCr�r�rr4r�r�)rr�r�r�rrr�test_invalid_authenticationSs

z-NewIMAPTestsMixin.test_invalid_authenticationcCsPGdd�dt�}|j|�\}}|jddd��\}}|j|d�|j|jd�dS)Nc@seZdZdd�ZdS)zCNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.MyServercss&|jd�dV|j_|j|dd�dS)Nr�rhzFAKEAUTH successful)rSrGr�rX)rrVrfrrrr�`s

zTNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr�_sr�r�cSsdS)Nsfaker)r�rrrr�eszCNewIMAPTestsMixin.test_valid_authentication_bytes.<locals>.<lambda>rhs
ZmFrZQ==
)rCr�r�rr�)rr�r�rGrWr�rrr�test_valid_authentication_bytes^s
z1NewIMAPTestsMixin.test_valid_authentication_bytescCsPGdd�dt�}|j|�\}}|jddd��\}}|j|d�|j|jd�dS)Nc@seZdZdd�ZdS)zHNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.MyServercss&|jd�dV|j_|j|dd�dS)Nr�rhzFAKEAUTH successful)rSrGr�rX)rrVrfrrrr�ks

zYNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr�jsr�r�cSsdS)N�faker)r�rrrr�pszHNewIMAPTestsMixin.test_valid_authentication_plain_text.<locals>.<lambda>rhs
ZmFrZQ==
)rCr�r�rr�)rr�r�rGrWr�rrr�$test_valid_authentication_plain_textis
z6NewIMAPTestsMixin.test_valid_authentication_plain_textcCsNGdd�dt�}|j|�\}}|jd|jk�|jdd�\}}|j|d�dS)Nc@seZdZdZdd�ZdS)z@NewIMAPTestsMixin.test_login_cram_md5_bytes.<locals>.AuthHandlerzLOGINDISABLED AUTH=CRAM-MD5css:|jd�dV}|dkr(|j|dd�n|j|dd�dS)Nz:+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ=s2dGltIGYxY2E2YmU0NjRiOWVmYTFjY2E2ZmZkNmNmMmQ5ZjMy
rhzCRAM-MD5 successfulr�z	No access)rSrX)rrVrf�rrrrr�ws

zQNewIMAPTestsMixin.test_login_cram_md5_bytes.<locals>.AuthHandler.cmd_AUTHENTICATEN)r8r9r:rir�rrrr�AuthHandlerusr�z
AUTH=CRAM-MD5�timstanstaaftanstaafrh)rCr�r�ri�login_cram_md5r)rr�r�r��retrrr�test_login_cram_md5_bytests
z+NewIMAPTestsMixin.test_login_cram_md5_bytescCsNGdd�dt�}|j|�\}}|jd|jk�|jdd�\}}|j|d�dS)Nc@seZdZdZdd�ZdS)zENewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandlerzLOGINDISABLED AUTH=CRAM-MD5css:|jd�dV}|dkr(|j|dd�n|j|dd�dS)Nz:+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ=s2dGltIGYxY2E2YmU0NjRiOWVmYTFjY2E2ZmZkNmNmMmQ5ZjMy
rhzCRAM-MD5 successfulr�z	No access)rSrX)rrVrfr�rrrr��s

zVNewIMAPTestsMixin.test_login_cram_md5_plain_text.<locals>.AuthHandler.cmd_AUTHENTICATEN)r8r9r:rir�rrrrr��sr�z
AUTH=CRAM-MD5r��tanstaaftanstaafrh)rCr�r�rir�r)rr�r�r�r�rrr�test_login_cram_md5_plain_text�s
z0NewIMAPTestsMixin.test_login_cram_md5_plain_textcCsNGdd�dt�}|j|�\}}|jtjjd��|jddd��WdQRXdS)Nc@seZdZdd�ZdS)z?NewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServercss>|jd�dV|_|jdkr,|j|dd�n|j|dd�dS)Nr�s*
r�z[AUTHENTICATIONFAILED] abortedrhzMYAUTH successful)rSr�rX)rrVrfrrrr��s

zPNewIMAPTestsMixin.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr��sr�z \[AUTHENTICATIONFAILED\] abortedr�cSsdS)Nr)r�rrrr��sz?NewIMAPTestsMixin.test_aborted_authentication.<locals>.<lambda>)rCr�r�rr4r�r�)rr�r�r�rrr�test_aborted_authentication�s

z-NewIMAPTestsMixin.test_aborted_authenticationzimaplib._MAXLINE�
c	CsNGdd�dt�}|j|dd�\}}|jtjjd��|j|j�WdQRXdS)Nc@seZdZdd�ZdS)z:NewIMAPTestsMixin.test_linetoolong.<locals>.TooLongHandlercSs|jjd�dS)Ns* OK ��xs
sxxxxxxxxxxxs* OK xxxxxxxxxxxs* OK xxxxxxxxxxx
)rLrM)rrrrrg�szANewIMAPTestsMixin.test_linetoolong.<locals>.TooLongHandler.handleN)r8r9r:rgrrrr�TooLongHandler�sr�F)r�zgot more than 10 bytes)rCr�r�rr4r�r�r�)rr�r�rGrrr�test_linetoolong�s

z"NewIMAPTestsMixin.test_linetoolongc	Cs.|jtdd�\}}|j|j��WdQRXdS)NF)r�)r�rCr�r�)rr�rGrrr�test_simple_with_statement�sz,NewIMAPTestsMixin.test_simple_with_statementc
CsT|jtdd�\}}|j|j�� }|jdd�|j|jd�WdQRX|j|j�dS)NF)r�r�r�)r�rCr�r�r�rrH�assertIsNone)rr�rG�imaprrr�test_with_statement�s
z%NewIMAPTestsMixin.test_with_statementc
Csh|jtdd�\}}|j|j��4}|jdd�|j|jd�|j�|j|j�WdQRX|j|j�dS)NF)r�r�r�)	r�rCr�r�r�rrH�logoutr�)rr�rGr�rrr�test_with_statement_logout�sz,NewIMAPTestsMixin.test_with_statement_logoutcCsL|jt�\}}|jdd�\}}|j|d�|j|dd�|j|jd�dS)Nr�r�rhrsLOGIN completed�AUTH)r�rCr�rr�)rr�r�r�r�rrr�
test_login�s
zNewIMAPTestsMixin.test_logincCst|jt�\}}|jdd�\}}|j|d�|j|dd�|j�\}}|j|d�|j|dd�|j|jd�dS)	Nr�r�rhrsLOGIN completed�BYEsIMAP4ref1 Server logging outr�)r�rCr�rr�r�)rr�r�r�r�rrr�test_logout�szNewIMAPTestsMixin.test_logoutcCsVGdd�dt�}|j|�\}}|jdd�|j�\}}|j|d�|j|dd�dS)Nc@seZdZdd�ZdS)z,NewIMAPTestsMixin.test_lsub.<locals>.LsubCmdcSs|jd�|j|dd�S)Nz* LSUB () "." directoryArhzLSUB completed)rSrX)rrVrfrrr�cmd_LSUB�s
z5NewIMAPTestsMixin.test_lsub.<locals>.LsubCmd.cmd_LSUBN)r8r9r:r�rrrr�LsubCmd�sr�r�r�rhrs() "." directoryA)rCr�r�Zlsubr)rr�r�r�r�r�rrr�	test_lsub�szNewIMAPTestsMixin.test_lsub)T)r8r9r:r�r�rzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�patchr�r�r�r�r�r�r�rrrrrn�s0
!			

rnc@seZdZejZejZdS)�NewIMAPTestsN)	r8r9r:rr4r�r��	TCPServerryrrrrr��sr�zSSL not availablec@s0eZdZeZeZdd�Zdd�Ze	dd��Z
dS)�NewIMAPSSLTestscCsjtjtj�}tj|_d|_|jt�|jtj	d��.|j
t�\}}|j|j
d|i�}|j�WdQRXdS)NTz.hostname '127.0.0.1' doesn't match 'localhost'�ssl_context)r=r>�PROTOCOL_SSLv23�
CERT_REQUIRED�verify_mode�check_hostname�load_verify_locations�CAFILEr��CertificateErrorr�rCr�r�r�)rr�r�rGr�rrr�test_ssl_raises�s

zNewIMAPSSLTests.test_ssl_raisescCsTtjtj�}tj|_d|_|jt�|jt	�\}}|j
d|jd|d�}|j�dS)NT�	localhostr)r�)
r=r>r�r�r�r�r�r�r�rCr�r�r�)rr�r�rGr�rrr�test_ssl_verified�s
z!NewIMAPSSLTests.test_ssl_verifiedcCsftjdtf��Ntjj|jd��2tjj|jd��|jddtd�WdQRXWdQRXWdQRXdS)NrD�openZ_connectr��)�certfile)rZcheck_warnings�DeprecationWarningrr��objectr�r@)rrrr�test_certfile_arg_warnsz&NewIMAPSSLTests.test_certfile_arg_warnN)r8r9r:�	IMAP4_SSLr�r;ryr�r�r
r�rrrrr��s


r�c@s$eZdZejZejZdd�Z	dd�Z
edd��Zedd��Z
ed	d
��Zedd��Zed
d��Zedd��ZGdd�de�Zedd��Zedd��Zedd��Zedd��Zedd��Zedd��Zedd ��Zed!d"��Zed#d$��Zed%d&��Zd'd(�Zed)d*��Z ed+d,��Z!ed-d.��Z"d/S)0�ThreadedNetworkedTestscCs�Gdd�d|j�}trtd�|||�}|j|j|jj��trjtd�td|�td|j�td|j�tj	d|j|j
d	d
id�}d|_|j�tr�td
�||fS)Nc@seZdZdd�ZdS)z4ThreadedNetworkedTests.make_server.<locals>.MyServercSs|j|�|j��dS)N)rorp)rrqrrrrrrss
zAThreadedNetworkedTests.make_server.<locals>.MyServer.handle_errorN)r8r9r:rsrrrrr�sr�zcreating serverzserver createdzADDR =zCLASS =zHDLR =z
%s servingrug{�G�z�?)rvrwrxTzserver running)
ryrrJrr�r<ZgetsocknameZRequestHandlerClassrr|r}rr�)rZaddr�hdlrr�rGr+rrr�make_servers&

z"ThreadedNetworkedTests.make_servercCs4trtd�|j�|j�|j�tr0td�dS)Nzwaiting for server�done)rrJr�rprU)rrGr~rrr�reap_server6sz"ThreadedNetworkedTests.reap_serverccs4|jtjdf|�\}}z
|VWd|j||�XdS)Nr)r�rr{r�)rr�rGr~rrr�
reaped_server?s
z$ThreadedNetworkedTests.reaped_serverccs@|j|��,}|j|j�}z||fVWd|j�XWdQRXdS)N)r�r�r�r�)rr�rGr�rrr�reaped_pairGs
z"ThreadedNetworkedTests.reaped_pairc	Cs.|jt��}|j|j�}|j�WdQRXdS)N)r�rCr�r�r�)rrGr�rrr�test_connectPsz#ThreadedNetworkedTests.test_connectcCs�Gdd�dt�}|j|���\}}|jddd��\}}|j|d�|j|jd�|jd�|jd	d
d�\}\}|jd|�|jd�|jd
�\}\}|jd|�WdQRXdS)Ncs4eZdZ�fdd�Zdd�Zdd�Zdd�Z�ZS)	zEThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandlercsdddddg|_t�j�dS)NZAnsweredZFlaggedZDeletedZSeenZDraft)�flagsrErg)r)rIrrrgaszLThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.handlecss&|jd�dV|j_|j|dd�dS)Nr�rhzFAKEAUTH successful)rSrGr�rX)rrVrfrrrr�es

zVThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_AUTHENTICATEcSs^dj|j�}|jd|jd��|jd�|jd�d|}|j|jd��|j|dd�dS)	Nz \z* FLAGS (%s)r�s
* 2 EXISTSs
* 0 RECENTz-* OK [PERMANENTFLAGS %s \*)] Flags permitted.rhz[READ-WRITE] SELECT completed.)rUr�rPrRrX)rrVrfZflag_msg�msgrrr�
cmd_SELECTjs

zPThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_SELECTcSsf|djd�jd�j�}|jj|�ddj|j�}d|d|f}|j|jd��|j|d	d
�dS)Nr#�(�)z(FLAGS (%s))z \z
* %s FETCH %srr�rhzSTORE completed.)rKr`r��extendrUrPrRrX)rrVrfZ	new_flagsZ	flags_msgr�rrr�	cmd_STOREtszOThreadedNetworkedTests.test_bracket_flags.<locals>.BracketFlagHandler.cmd_STORE)r8r9r:rgr�r�r�rmrr)rIr�BracketFlagHandler_s
r�r�cSsdS)Nsfaker)r�rrrr�}sz;ThreadedNetworkedTests.test_bracket_flags.<locals>.<lambda>rhs
ZmFrZQ==
�test�1z+FLAGSz[test]s[test]ZPERMANENTFLAGS)rCr�r�rr�Zselect�storer5)rr�rGr�rWr�r�rrr�test_bracket_flagsVs	

z)ThreadedNetworkedTests.test_bracket_flagsc
CsFGdd�dtj�}|j|�� }|jtjj|jf|j��WdQRXdS)Nc@seZdZdd�ZdS)z9ThreadedNetworkedTests.test_issue5949.<locals>.EOFHandlercSs|jjd�dS)Ns* OK)rLrM)rrrrrg�sz@ThreadedNetworkedTests.test_issue5949.<locals>.EOFHandler.handleN)r8r9r:rgrrrrr��sr�)	r�r�r�r2rr4r�r�r�)rr�rGrrr�test_issue5949�s
z%ThreadedNetworkedTests.test_issue5949c
CsDGdd�dt�}|j|�� }|jtjj|jf|j��WdQRXdS)Nc@seZdZdd�ZdS)zGThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandlercSs|jd�|j|dd�dS)Ns* CAPABILITY IMAP4rev1 AUTH
rhzCAPABILITY completed)rOrX)rrVrfrrrrj�s
zVThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITYN)r8r9r:rjrrrrr��sr�)rCr�r2rr4r�r�r�)rr�rGrrrr��s
z,ThreadedNetworkedTests.test_line_terminationc@s eZdZdZdd�Zdd�ZdS)z!ThreadedNetworkedTests.UTF8ServerzAUTH ENABLE UTF8=ACCEPTcCs|j|dd�dS)NrhzENABLE successful)rX)rrVrfrrrr��sz,ThreadedNetworkedTests.UTF8Server.cmd_ENABLEccs&|jd�dV|j_|j|dd�dS)Nr�rhzFAKEAUTH successful)rSrGr�rX)rrVrfrrrr��s

z2ThreadedNetworkedTests.UTF8Server.cmd_AUTHENTICATEN)r8r9r:rir�r�rrrrr��sr�cCsL|j|j��6\}}|j|j�|jtjj|jd�|j|j�WdQRXdS)Nr�)	r�r�r�r�r2rr4r�r�)rrGr�rrrr��sz;ThreadedNetworkedTests.test_enable_raises_error_if_not_AUTHcCsDGdd�d|j�}|j|��\}}|jtjj|jd�WdQRXdS)Nc@seZdZdZdS)zXThreadedNetworkedTests.test_enable_raises_error_if_no_capability.<locals>.NoEnableServerr�N)r8r9r:rirrrr�NoEnableServer�srr�)r�r�r2rr4r�r�)rrrGr�rrrr��sz@ThreadedNetworkedTests.test_enable_raises_error_if_no_capabilitycCsnGdd�dt�}|jtjj��F|j|��0\}}|jdd�\}}|j|d�|jd�WdQRXWdQRXdS)Nc@seZdZdS)z\ThreadedNetworkedTests.test_enable_UTF8_raises_error_if_not_supported.<locals>.NonUTF8ServerN)r8r9r:rrrr�
NonUTF8Server�srr�r�rhzUTF8=ACCEPT)	rCr2rr4r�r�r�rr�)rrrGr�r�r�rrrr��s
zEThreadedNetworkedTests.test_enable_UTF8_raises_error_if_not_supportedc	
Cs�Gdd�d|j�}|j|���\}}|j|jd�|jddd��\}}|j|d�|j|jd�|jd	�\}}|j|d�|j|jd
�d}|jddd|jd
��\}}|j|d�|j|jd|jd
��WdQRXdS)
Nc@seZdZdd�ZdS)zMThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServercss&|jd�dV|j_|j|dd�dS)Nr�rhr�)rSrGr�rX)rrVrfrrrr��s

zXThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.UTF8AppendServer.cmd_APPENDN)r8r9r:r�rrrrr��sr�r�r�cSsdS)Nsfaker)r�rrrr��szEThreadedNetworkedTests.test_enable_UTF8_True_append.<locals>.<lambda>rhs
ZmFrZQ==
zUTF8=ACCEPTzutf-8uSubject: üñí©öðézUTF8 (%s)
)	r�r�rr�r�r�r�r1rR)	rr�rGr�rWr�r�r�r�rrrr��s"z3ThreadedNetworkedTests.test_enable_UTF8_True_appendcCs||j|j��f\}}|jddd��\}}|j|d�|jd�\}}|j|d�|j|j�|jtj	j
|jdd�WdQRXdS)Nr�cSsdS)Nsfaker)r�rrrr��szSThreadedNetworkedTests.test_search_disallows_charset_in_utf8_mode.<locals>.<lambda>rhzUTF8=ACCEPTr�r�)r�r�r�rr�r�r�r2rr4r�r�)rrGr�r�r�rrrr��szAThreadedNetworkedTests.test_search_disallows_charset_in_utf8_modecCsXGdd�dt�}|j|��4\}}|jtjj��|jddd��WdQRXWdQRXdS)Nc@seZdZdd�ZdS)z;ThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServercSs|j|ddj|d��dS)Nr�z#unrecognized authentication type {}r)rXr�)rrVrfrrrr��szLThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr��sr�r�cSsdS)Nrrrrrrr��sz;ThreadedNetworkedTests.test_bad_auth_name.<locals>.<lambda>)rCr�r2rr4r�r�)rr�rGr�rrrr��sz)ThreadedNetworkedTests.test_bad_auth_namecCs\Gdd�dt�}|j|��8\}}|jtjj��|jddd��\}}WdQRXWdQRXdS)Nc@seZdZdd�ZdS)zDThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServercss$|jd�dV|_|j|dd�dS)Nr�r�z[AUTHENTICATIONFAILED] invalid)rSr�rX)rrVrfrrrr�s
zUThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr��sr�r�cSsdS)Nsfaker)r�rrrr�szDThreadedNetworkedTests.test_invalid_authentication.<locals>.<lambda>)rCr�r2rr4r�r�)rr�rGr�rWr�rrrr��sz2ThreadedNetworkedTests.test_invalid_authenticationcCs�Gdd�dt�}|j|��8\}}|jddd��\}}|j|d�|j|jd�WdQRX|j|��8\}}|jddd��\}}|j|d�|j|jd�WdQRXdS)	Nc@seZdZdd�ZdS)zBThreadedNetworkedTests.test_valid_authentication.<locals>.MyServercss&|jd�dV|j_|j|dd�dS)Nr�rhzFAKEAUTH successful)rSrGr�rX)rrVrfrrrr�s

zSThreadedNetworkedTests.test_valid_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr�sr�r�cSsdS)Nsfaker)r�rrrr�szBThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>rhs
ZmFrZQ==
cSsdS)Nr�r)r�rrrr�s)rCr�r�rr�)rr�rGr�rWr�rrr�test_valid_authentication	sz0ThreadedNetworkedTests.test_valid_authenticationcCs�Gdd�dt�}|j|��6\}}|jd|jk�|jdd�\}}|j|d�WdQRX|j|��6\}}|jd|jk�|jdd�\}}|j|d�WdQRXdS)Nc@seZdZdZdd�ZdS)z?ThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandlerzLOGINDISABLED AUTH=CRAM-MD5css:|jd�dV}|dkr(|j|dd�n|j|dd�dS)Nz:+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ=s2dGltIGYxY2E2YmU0NjRiOWVmYTFjY2E2ZmZkNmNmMmQ5ZjMy
rhzCRAM-MD5 successfulr�z	No access)rSrX)rrVrfr�rrrr�&s

zPThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandler.cmd_AUTHENTICATEN)r8r9r:rir�rrrrr�"sr�z
AUTH=CRAM-MD5r�r�rhstanstaaftanstaaf)rCr�r�rir�r)rr�rGr�r�r�rrr�test_login_cram_md5sz*ThreadedNetworkedTests.test_login_cram_md5cCs\Gdd�dt�}|j|��8\}}|jtjj��|jddd��\}}WdQRXWdQRXdS)Nc@seZdZdd�ZdS)zDThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServercss>|jd�dV|_|jdkr,|j|dd�n|j|dd�dS)Nr�s*
r�z[AUTHENTICATIONFAILED] abortedrhzMYAUTH successful)rSr�rX)rrVrfrrrr�@s


zUThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r8r9r:r�rrrrr�>sr�r�cSsdS)Nr)r�rrrr�KszDThreadedNetworkedTests.test_aborted_authentication.<locals>.<lambda>)rCr�r2rr4r�r�)rr�rGr�rWr�rrrr�;sz2ThreadedNetworkedTests.test_aborted_authenticationc
CsDGdd�dt�}|j|�� }|jtjj|jf|j��WdQRXdS)Nc@seZdZdd�ZdS)z?ThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandlercSs|jjdtjdd�dS)Ns* OK r�s
)rLrMrZ_MAXLINE)rrrrrgPszFThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandler.handleN)r8r9r:rgrrrrr�Osr�)rCr�r2rr4r�r�r�)rr�rGrrrr�Ns
z'ThreadedNetworkedTests.test_linetoolongcCs2|jt��}|j|j��WdQRXWdQRXdS)N)r�rCr�r�)rrGrrrr�Xsz1ThreadedNetworkedTests.test_simple_with_statementcCsX|jt��D}|j|j�� }|jdd�|j|jd�WdQRX|j|j�WdQRXdS)Nr�r�)r�rCr�r�r�rrHr�)rrGr�rrrr�_s
z*ThreadedNetworkedTests.test_with_statementcCsl|jt��X}|j|j��4}|jdd�|j|jd�|j�|j|j�WdQRX|j|j�WdQRXdS)Nr�r�)	r�rCr�r�r�rrHr�r�)rrGr�rrrr�gsz1ThreadedNetworkedTests.test_with_statement_logoutN)#r8r9r:r�r�ryrr4r�r�r�rr�r�rr�rrr�rCr�r�r�r�r�r�r�r�rrr�r�r�r�r�rrrrr�s2 		1
	


r�c@s eZdZeZeZedd��ZdS)�ThreadedNetworkedTestsSSLcCs�tjtj�}tj|_d|_|jt�|jtj	d��6|j
t�� }|j|j
d|i�}|j�WdQRXWdQRX|j
t��$}|jd|j
d|d�}|j�WdQRXdS)NTz.hostname '127.0.0.1' doesn't match 'localhost'r�r�r)r�)r=r>r�r�r�r�r�r�r�r�r�rCr�r�r�)rr�rGr�rrrr�xs

z+ThreadedNetworkedTestsSSL.test_ssl_verifiedN)	r8r9r:r;ryr�r�rr�rrrrrssrZnetworkznetwork resource disabledc@sBeZdZdZdZdZdZejZ	dd�Z
dd�Zd	d
�Zdd�Z
d
S)�RemoteIMAPTestzcyrus.andrew.cmu.edur�Z	anonymousr�c
Cs,t|j��|j|j|j�|_WdQRXdS)N)r�hostr��portrG)rrrr�setUp�szRemoteIMAPTest.setUpc	Cs.|jdk	r*t|j��|jj�WdQRXdS)N)rGrr	r�)rrrr�tearDown�s
zRemoteIMAPTest.tearDowncCszt|j��fx|jjD]}|j|t�qW|jd|jj�|jd|jj�|jj|j|j	�}|j
|dd�WdQRXdS)N�
LOGINDISABLEDzAUTH=ANONYMOUSrrh)rr	rGri�assertIsInstance�strr5r��username�passwordr)r�cap�rsrrr�test_logincapa�szRemoteIMAPTest.test_logincapac
Cs:t|j��&|jj�}d|_|j|dd�WdQRXdS)Nrr�)rr	rGr�r)rrrrrr��s
zRemoteIMAPTest.test_logoutN)r8r9r:r	r
rrrr4r�rrrr�rrrrr�s	rcs$eZdZ�fdd�Zdd�Z�ZS)�RemoteIMAP_STARTTLSTestc
s>t�j�t|j�� |jj�}|j|dd�WdQRXdS)Nrrh)rErrr	rGZstarttlsr)rr)rIrrr�s

zRemoteIMAP_STARTTLSTest.setUpcCs2x|jjD]}|j|t�q
W|jd|jj�dS)Nr
)rGrirr�assertNotIn)rrrrrr�sz&RemoteIMAP_STARTTLSTest.test_logincapa)r8r9r:rrrmrr)rIrr�src@sTeZdZdZeZdd�Zdd�Zdd�Zdd	�Z	d
d�Z
dd
�Zdd�Zdd�Z
dS)�RemoteIMAP_SSLTesti�cCsdS)Nr)rrrrr�szRemoteIMAP_SSLTest.setUpcCsdS)Nr)rrrrr�szRemoteIMAP_SSLTest.tearDowncCstjtj�}|jt�|S)N)r=r>r�r?r@)rr�rrr�create_ssl_context�s
z%RemoteIMAP_SSLTest.create_ssl_contextc
Cslz\x|jD]}|j|t�q
W|jd|j�|jd|j�|j|j|j�}|j|dd�Wd|j	�XdS)Nr
z
AUTH=PLAINrrh)
rirrrr5r�rrrr�)rrGrrrrr�check_logincapa�sz"RemoteIMAP_SSLTest.check_logincapac
Cs4t|j�� |j|j|j�}|j|�WdQRXdS)N)rr	r�r
r)r�_serverrrrr�sz!RemoteIMAP_SSLTest.test_logincapac
CsBt|j��.|j|j|j�}|j�}|j|dd�WdQRXdS)Nrr�)rr	r�r
r�r)rrrrrrr��szRemoteIMAP_SSLTest.test_logoutcCs:t|j��&|jt|j|j|jt|j�d�WdQRXdS)N)r�r�)rr	r2�
ValueErrorr�r
r@r)rrrr�#test_ssl_context_certfile_exclusive�sz6RemoteIMAP_SSLTest.test_ssl_context_certfile_exclusivecCs:t|j��&|jt|j|j|jt|j�d�WdQRXdS)N)Zkeyfiler�)rr	r2rr�r
r@r)rrrr�"test_ssl_context_keyfile_exclusive�sz5RemoteIMAP_SSLTest.test_ssl_context_keyfile_exclusiveN)r8r9r:r
r�r�rrrrrr�rrrrrrr�sr�__main__)6r�r�
import_moduler�
contextlibrr/rZos.path�osr�rr�inspectZtest.supportrrrrr	r
Zunittestrrr
rr=�ImportError�pathrU�dirname�__file__�curdirr@r�ZTestCaserr�r;r�r�rCrnr�Z
skipUnlessr�r�rZis_resource_enabledrrrr8�mainrrrr�<module>s`
 
=	R(%c
 

2


Youez - 2016 - github.com/yon3zu
LinuXploit