Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/__pycache__/test_imaplib.cpython-34.pyc

�
g f�E�
@sQddlmZejd�ZddlmZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
mZmZmZmZddlZddlmZmZmZyddlZWnek
r�dZYnXdadaGdd�dej�Zer6Gd	d
�d
e	j�ZejZnGdd
�d
�ZdZGdd
�d
e	j�Z Gdd�dej�Z!Gdd�de!�Z"ej#ed�Gdd�de!��Z$Gdd�dej�Z%ej#ed�Gdd�de%��Z&ej#ed�Gdd�de%��Z'dd�Z(e)dkrMej*�ndS)�)�support�	threading)�contextmanagerN)�reap_threads�verbose�transient_internet�run_with_tz�run_with_locale)�datetime�timezone�	timedeltac@sveZdZdd�Zed�dd��Zdd�Zedd	d
�ed�dd
���Zdd�Z	dS)�TestImaplibc
Cs�tjd
�}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)�selfZt0Ztt�r�6/opt/alt/python34/lib64/python3.4/test/test_imaplib.py�test_Internaldate2tuples			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(sz.TestImaplib.test_Internaldate2tuple_issue10941c
Cs=ddtjd�ddtjdttd	d���dgS)Ni�5wge��A�����!�rr��<z"18-May-2033 05:33:20 +0200"rrr)	rrrrrrrrrrr)	rrrrrrrrr�xi )rZ	localtimer
Z
fromtimestamprr)rrrr�
timevalues1s	zTestImaplib.timevalues�LC_ALLZde_DEZfr_FRzSTD-1DST,M3.2.0,M11.1.0cCs@d}x3|j�D]%}tj|�}|j||�qWdS)Nz"18-May-2033 05:33:20 +0200")r#r�Time2Internaldater)rZexpected�tZinternalrrr�test_Time2Internaldate9sz"TestImaplib.test_Time2InternaldatecCs(x!|j�D]}tj|�q
WdS)N)r#rr%)rr&rrr�,test_that_Time2Internaldate_returns_a_resultDsz8TestImaplib.test_that_Time2Internaldate_returns_a_resultN)
�__name__�
__module__�__qualname__rrrr#r	r'r(rrrrr
s	r
c@seZdZdd�ZdS)�SecureTCPServercCs:|jj�\}}tj|dddt�}||fS)NZserver_sideT�certfile)�socketZaccept�sslZwrap_socket�CERTFILE)rZ	newsocketZfromaddrZ
connstreamrrr�get_requestPs
	zSecureTCPServer.get_requestN)r)r*r+r1rrrrr,Nsr,c@seZdZdS)r,N)r)r*r+rrrrr,[sc@sveZdZdZdZdZdd�Zdd�Zdd	�Zd
d�Z	dd
�Z
dd�Zdd�ZdS)�SimpleIMAPHandlerrN�cCs1trtd|j��n|jj|�dS)NzSENT: %r)r�print�strip�wfile�write)r�messagerrr�_sendgszSimpleIMAPHandler._sendcCs|j|d�dS)Ns
)r9)rr8rrr�
_send_linekszSimpleIMAPHandler._send_linecCs|j|jd��dS)N�ASCII)r:�encode)rr8rrr�_send_textlinensz SimpleIMAPHandler._send_textlinecCs#|jdj|||f��dS)N� )r=�join)r�tag�coder8rrr�_send_taggedqszSimpleIMAPHandler._send_taggedcCs}|jd�xid}x`y0|jjd�}|dkr>dS||7}Wntk
radSYnX|jd�rPqqWtr�td|j��n|jr�y|jj	|�Wqt
k
r�d|_YqXqn|jd�j�}|d}|d}|dd�}t
|d	|�r^t|d	|�||�}|ru||_t|�quq|j|d
|d�qWdS)Nz* OK IMAP4rev1�rs
zGOT: %rr;rr Zcmd_ZBADz unknown)r=Zrfile�read�OSError�endswithrr4r5�continuation�send�
StopIteration�decode�split�hasattr�getattr�nextrB)r�line�partZ	splitliner@�cmd�argsrGrrr�handlets>

		


	zSimpleIMAPHandler.handlecCsD|jrd|jnd}|jd|�|j|dd�dS)Nz
IMAP4rev1 Z	IMAP4rev1z
* CAPABILITY �OKzCAPABILITY completed)�capabilitiesr=rB)rr@rRZcapsrrr�cmd_CAPABILITY�sz SimpleIMAPHandler.cmd_CAPABILITYcCs$|jd�|j|dd�dS)Nz"* BYE IMAP4ref1 Server logging outrTzLOGOUT completed)r=rB)rr@rRrrr�
cmd_LOGOUT�s
zSimpleIMAPHandler.cmd_LOGOUT)
r)r*r+ZtimeoutrGrUr9r:r=rBrSrVrWrrrrr2as)r2c@s�eZdZdd�Zdd�Zedd��Zedd��Zed	d
��Z	edd��Z
ed
d��Zedd��Zedd��Z
edd��Zedd��Zedd��Zdd�ZdS)�BaseThreadedNetworkedTestsc	Cs�Gdd�d|j�}tr,td�n|||�}|j|j|jj��tr�td�td|�td|j�td|j�ntj	dd	|jd
|j
didd
6�}d|_|j�tr�td�n||fS)Nc@seZdZdd�ZdS)z8BaseThreadedNetworkedTests.make_server.<locals>.MyServercSs|j|�|j��dS)N)Z
close_request�server_close)rZrequestZclient_addressrrr�handle_error�s

zEBaseThreadedNetworkedTests.make_server.<locals>.MyServer.handle_errorN)r)r*r+rZrrrr�MyServer�sr[zcreating serverzserver createdzADDR =zCLASS =zHDLR =�namez
%s serving�target�kwargsg{�G�z�?Z
poll_intervalTzserver running)
�server_classrr4r�server_addressr.ZgetsocknameZRequestHandlerClassrZThreadZ
serve_foreverZdaemon�start)rZaddr�hdlrr[�serverr&rrr�make_server�s&


	
		

z&BaseThreadedNetworkedTests.make_servercCsHtrtd�n|j�|j�|j�trDtd�ndS)Nzwaiting for server�done)rr4�shutdownrYr?)rrc�threadrrr�reap_server�s



z&BaseThreadedNetworkedTests.reap_serverccsB|jtjdf|�\}}z	|VWd|j||�XdS)Nr)rdrZHOSTrh)rrbrcrgrrr�
reaped_server�s!	z(BaseThreadedNetworkedTests.reaped_serverccsK|j|��6}|j|j�}z||fVWd|j�XWdQXdS)N)ri�
imap_classr`�logout)rrbrc�clientrrr�reaped_pair�s
z&BaseThreadedNetworkedTests.reaped_pairc	Cs8|jt��#}|j|j�}|j�WdQXdS)N)rir2rjr`rf)rrcrlrrr�test_connect�sz'BaseThreadedNetworkedTests.test_connectcCsTGdd�dtj�}|j|��&}|jtjj|j|j�WdQXdS)Nc@seZdZdd�ZdS)z=BaseThreadedNetworkedTests.test_issue5949.<locals>.EOFHandlercSs|jjd�dS)Ns* OK)r6r7)rrrrrS�szDBaseThreadedNetworkedTests.test_issue5949.<locals>.EOFHandler.handleN)r)r*r+rSrrrr�
EOFHandler�sro)	�socketserver�StreamRequestHandlerri�assertRaisesr�IMAP4�abortrjr`)rrorcrrr�test_issue5949�sz)BaseThreadedNetworkedTests.test_issue5949cCsQGdd�dt�}|j|��&}|jtjj|j|j�WdQXdS)Nc@seZdZdd�ZdS)zKBaseThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandlercSs$|jd�|j|dd�dS)Ns* CAPABILITY IMAP4rev1 AUTH
rTzCAPABILITY completed)r9rB)rr@rRrrrrV�s
zZBaseThreadedNetworkedTests.test_line_termination.<locals>.BadNewlineHandler.cmd_CAPABILITYN)r)r*r+rVrrrr�BadNewlineHandler�srv)r2rirrrrsrtrjr`)rrvrcrrr�test_line_termination�sz0BaseThreadedNetworkedTests.test_line_terminationcCsjGdd�dt�}|j|��?\}}|jtjj��|jddd��WdQXWdQXdS)Nc@seZdZdd�ZdS)z?BaseThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServercSs$|j|ddj|d��dS)N�NOz#unrecognized authentication type {}r)rB�format)rr@rRrrr�cmd_AUTHENTICATEszPBaseThreadedNetworkedTests.test_bad_auth_name.<locals>.MyServer.cmd_AUTHENTICATEN)r)r*r+rzrrrrr[sr[ZMETHODcSsdS)Nrrrrrr�<lambda>	sz?BaseThreadedNetworkedTests.test_bad_auth_name.<locals>.<lambda>)r2rmrrrrs�error�authenticate)rr[rcrlrrr�test_bad_auth_name�sz-BaseThreadedNetworkedTests.test_bad_auth_namecCsrGdd�dt�}|j|��G\}}|jtjj��#|jddd��\}}WdQXWdQXdS)Nc@seZdZdd�ZdS)zHBaseThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServercss.|jd�dV|_|j|dd�dS)N�+rxz[AUTHENTICATIONFAILED] invalid)r=�responserB)rr@rRrrrrzs

zYBaseThreadedNetworkedTests.test_invalid_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r)r*r+rzrrrrr[sr[�MYAUTHcSsdS)Nsfaker)�xrrrr{szHBaseThreadedNetworkedTests.test_invalid_authentication.<locals>.<lambda>)r2rmrrrrsr|r})rr[rcrlrA�datarrr�test_invalid_authenticationsz6BaseThreadedNetworkedTests.test_invalid_authenticationcCs�Gdd�dt�}|j|��N\}}|jddd��\}}|j|d�|j|jd�WdQX|j|��N\}}|jddd��\}}|j|d�|j|jd�WdQXdS)	Nc@seZdZdd�ZdS)zFBaseThreadedNetworkedTests.test_valid_authentication.<locals>.MyServercss1|jd�dV|j_|j|dd�dS)NrrTzFAKEAUTH successful)r=rcr�rB)rr@rRrrrrzs

zWBaseThreadedNetworkedTests.test_valid_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r)r*r+rzrrrrr[sr[r�cSsdS)Nsfaker)r�rrrr{$szFBaseThreadedNetworkedTests.test_valid_authentication.<locals>.<lambda>rTs
ZmFrZQ==
cSsdS)NZfaker)r�rrrr{*s)r2rmr}rr�)rr[rcrlrAr�rrr�test_valid_authentications
z4BaseThreadedNetworkedTests.test_valid_authenticationcCs�Gdd�dt�}|j|��K\}}|jd|jk�|jdd�\}}|j|d�WdQX|j|��K\}}|jd|jk�|jdd�\}}|j|d�WdQXdS)Nc@s"eZdZdZdd�ZdS)zCBaseThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandlerzLOGINDISABLED AUTH=CRAM-MD5cssM|jd�dV}|dkr6|j|dd�n|j|dd�dS)Nz:+ PDE4OTYuNjk3MTcwOTUyQHBvc3RvZmZpY2UucmVzdG9uLm1jaS5uZXQ=s2dGltIGYxY2E2YmU0NjRiOWVmYTFjY2E2ZmZkNmNmMmQ5ZjMy
rTzCRAM-MD5 successfulrxz	No access)r=rB)rr@rR�rrrrrz6s

zTBaseThreadedNetworkedTests.test_login_cram_md5.<locals>.AuthHandler.cmd_AUTHENTICATEN)r)r*r+rUrzrrrr�AuthHandler2sr�z
AUTH=CRAM-MD5ZtimZtanstaaftanstaafrTstanstaaftanstaaf)r2rmZ
assertTruerUZlogin_cram_md5r)rr�rcrlZretr�rrr�test_login_cram_md5/s
z.BaseThreadedNetworkedTests.test_login_cram_md5cCsrGdd�dt�}|j|��G\}}|jtjj��#|jddd��\}}WdQXWdQXdS)Nc@seZdZdd�ZdS)zHBaseThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServercssS|jd�dV|_|jdkr<|j|dd�n|j|dd�dS)Nrs*
rxz[AUTHENTICATIONFAILED] abortedrTzMYAUTH successful)r=r�rB)rr@rRrrrrzPs


zYBaseThreadedNetworkedTests.test_aborted_authentication.<locals>.MyServer.cmd_AUTHENTICATEN)r)r*r+rzrrrrr[Nsr[r�cSsdS)Nr)r�rrrr{[szHBaseThreadedNetworkedTests.test_aborted_authentication.<locals>.<lambda>)r2rmrrrrsr|r})rr[rcrlrAr�rrr�test_aborted_authenticationKsz6BaseThreadedNetworkedTests.test_aborted_authenticationcCsQGdd�dt�}|j|��&}|jtjj|j|j�WdQXdS)Nc@seZdZdd�ZdS)zCBaseThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandlercSs#|jjdtjdd�dS)Ns* OK �xs
)r6r7rZ_MAXLINE)rrrrrS_szJBaseThreadedNetworkedTests.test_linetoolong.<locals>.TooLongHandler.handleN)r)r*r+rSrrrr�TooLongHandler^sr�)r2rirrrrsr|rjr`)rr�rcrrr�test_linetoolong]sz+BaseThreadedNetworkedTests.test_linetoolongN)r)r*r+rdrhrrirmrrnrurwr~r�r�r�r�r�rrrrrX�s	

rXc@s"eZdZejZejZdS)�ThreadedNetworkedTestsN)	r)r*r+rp�	TCPServerr_rrsrjrrrrr�hs	r�zSSL not availablec@s.eZdZeZeZedd��ZdS)�ThreadedNetworkedTestsSSLcCs�tjtj�}tj|_d|_|jt�|jtj	d��?|j
t��)}|jd||j
�}|j�WdQXWdQX|j
t��0}|jd|j
dd|�}|j�WdQXdS)NTz.hostname '127.0.0.1' doesn't match 'localhost'�ssl_contextZ	localhostr)r/�
SSLContext�PROTOCOL_SSLv23Z
CERT_REQUIREDZverify_modeZcheck_hostnameZload_verify_locations�CAFILEZassertRaisesRegexZCertificateErrorrir2rjr`rf)rr�rcrlrrr�test_ssl_verifiedts	

		z+ThreadedNetworkedTestsSSL.test_ssl_verifiedN)	r)r*r+r,r_�	IMAP4_SSLrjrr�rrrrr�nsr�c@saeZdZdZdZdZdZejZ	dd�Z
dd�Zd	d
�Zdd�Z
d
S)�RemoteIMAPTestzcyrus.andrew.cmu.edu�Z	anonymous�passc
Cs5t|j�� |j|j|j�|_WdQXdS)N)r�hostrj�portrc)rrrr�setUp�szRemoteIMAPTest.setUpcCs9|jdk	r5t|j��|jj�WdQXndS)N)rcrr�rk)rrrr�tearDown�szRemoteIMAPTest.tearDowncCs�t|j���x$|jjD]}|j|t�qW|jd|jj�|jd|jj�|jj|j|j	�}|j
|dd�WdQXdS)N�
LOGINDISABLEDzAUTH=ANONYMOUSrrT)rr�rcrU�assertIsInstance�str�assertIn�login�username�passwordr)r�cap�rsrrr�test_logincapa�szRemoteIMAPTest.test_logincapac
CsFt|j��1|jj�}d|_|j|dd�WdQXdS)Nr�BYE)rr�rcrkr)rr�rrr�test_logout�s	zRemoteIMAPTest.test_logoutN)r)r*r+r�r�r�r�rrsrjr�r�r�r�rrrrr��s		r�cs.eZdZ�fdd�Zdd�Z�S)�RemoteIMAP_STARTTLSTestc
sJt�j�t|j��(|jj�}|j|dd�WdQXdS)NrrT)�superr�rr�rcZstarttlsr)rr�)�	__class__rrr��s
zRemoteIMAP_STARTTLSTest.setUpcCsAx$|jjD]}|j|t�q
W|jd|jj�dS)Nr�)rcrUr�r��assertNotIn)rr�rrrr��sz&RemoteIMAP_STARTTLSTest.test_logincapa)r)r*r+r�r�rr)r�rr��sr�c@s|eZdZdZeZdd�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.tearDowncCs#tjtj�}|jt�|S)N)r/r�r�Zload_cert_chainr0)rr�rrr�create_ssl_context�s
z%RemoteIMAP_SSLTest.create_ssl_contextc
Cs�zzx!|jD]}|j|t�q
W|jd|j�|jd|j�|j|j|j�}|j|dd�Wd|j	�XdS)Nr�z
AUTH=PLAINrrT)
rUr�r�r�r�r�r�r�rrk)rrcr�r�rrr�check_logincapa�sz"RemoteIMAP_SSLTest.check_logincapac
Cs?t|j��*|j|j|j�}|j|�WdQXdS)N)rr�rjr�r�)r�_serverrrrr��sz!RemoteIMAP_SSLTest.test_logincapac
CsRt|j��=|j|j|j�}|j�}|j|dd�WdQXdS)Nrr�)rr�rjr�rkr)rr�r�rrrr��szRemoteIMAP_SSLTest.test_logoutcCsKt|j��6|jt|j|j|jdtd|j��WdQXdS)Nr-r�)rr�rr�
ValueErrorrjr�r0r�)rrrr�#test_ssl_context_certfile_exclusive�sz6RemoteIMAP_SSLTest.test_ssl_context_certfile_exclusivecCsKt|j��6|jt|j|j|jdtd|j��WdQXdS)NZkeyfiler�)rr�rrr�rjr�r0r�)rrrr�"test_ssl_context_keyfile_exclusive�sz5RemoteIMAP_SSLTest.test_ssl_context_keyfile_exclusiveN)r)r*r+r�r�rjr�r�r�r�r�r�r�r�rrrrr��sr�cGs�tg}tjd�r�tr�tjjtjjt�p?tj	d�a
tjjt
�sltjd��ntjjtjjt�p�tj	d�a
tjjt
�s�tjd��q�n|jtttttg�ntjdd�|D��S)NZnetworkzkeycert3.pemzCan't read certificate files!zpycacert.pemzCan't read CA file!cSsg|]}tj|��qSr)�unittestZ	makeSuite)�.0�testrrr�
<listcomp>�s	zload_tests.<locals>.<listcomp>)r
rZis_resource_enabledr/�os�pathr?�dirname�__file__�curdirr0�existsZ
TestFailedr��extendr�r�r�r�r�r�Z	TestSuite)rRZtestsrrr�
load_tests�s	!	!	r��__main__)+r�r�
import_moduler�
contextlibrrZos.pathr�rprrZtest.supportrrrrr	r�r
rrr/�ImportErrorr0r�ZTestCaser
r�r,r�rqr2rXr�Z
skipUnlessr�r�r�r�r�r)�mainrrrr�<module>sF(
2	F� 0