Your IP : 216.73.217.129


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_poplib.cpython-35.pyc



��Yf�@�@s"dZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZ
e
jd�Ze
jZdZdZeed�rddlZdZejjejje�p�ejd	�Zejjejje�pejd
�Ze
ed�ZdZd
ZGdd�dej�Z Gdd�dej!ej"�Z#Gdd�de	�Z$er�ddl%m&Z&Gdd�de&e �Z'eGdd�de$��Z(eGdd�de$��Z)Gdd�de	�Z*dd�Z+e,dkre+�dS) zTest script for poplib module.�N)�TestCase�
skipUnless)�support�	threadingF�POP3_SSLTzkeycert3.pemzpycacert.pemzSSL not supporteds1 1
2 2
3 3
4 4
5 5
.
stFrom: postmaster@python.org
Content-Type: text/plain
MIME-Version: 1.0
Subject: Dummy

line1
line2
line3
.
c@sEeZdZdgddgiZdZdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZeZdd�ZeZdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�ZerAd+d,�Zd-d.�Zd/d0�Zd1S)2�DummyPOP3HandlerZUIDL�IMPLEMENTATIONzpython-testlib-pop-serverFcCsLtjj||�|jd�g|_|jd�d|_d|_dS)Ns
z(+OK dummy pop3 server ready. <timestamp>F)�asynchat�
async_chat�__init__�set_terminator�	in_buffer�push�
tls_active�tls_starting)�self�conn�r�5/opt/alt/python35/lib64/python3.5/test/test_poplib.pyr1s
	
	zDummyPOP3Handler.__init__cCs|jj|�dS)N)r
�append)r�datarrr�collect_incoming_data9sz&DummyPOP3Handler.collect_incoming_datacCs�dj|j�}t|d�}g|_|jd�dj�}|jd�}|d	kru||dd�}nd}t|d|�r�t|d|�}||�n|jd|�dS)
N�z
ISO-8859-1� r��Zcmd_z$-ERR unrecognized POP3 command "%s".���)	�joinr
�str�split�lower�find�hasattr�getattrr)r�line�cmdZspace�arg�methodrrr�found_terminator<s	
z!DummyPOP3Handler.found_terminatorcCs�dS)Nr)rrrr�handle_errorLszDummyPOP3Handler.handle_errorcCs$tjj||jd�d�dS)Nz
ISO-8859-1s
)r	r
r�encode)rrrrrrOszDummyPOP3Handler.pushcCs|j|�dS)N)r)rr&rrr�cmd_echoRszDummyPOP3Handler.cmd_echocCs*|dkr|jd�|jd�dS)N�guidoz-ERR no such userz+OK password required)r)rr&rrr�cmd_userVs
zDummyPOP3Handler.cmd_usercCs*|dkr|jd�|jd�dS)N�pythonz-ERR wrong passwordz+OK 10 messages)r)rr&rrr�cmd_pass[s
zDummyPOP3Handler.cmd_passcCs|jd�dS)Nz
+OK 10 100)r)rr&rrr�cmd_stat`szDummyPOP3Handler.cmd_statcCsD|r |jd||f�n |jd�tjj|t�dS)Nz	+OK %s %sz+OK)rr	r
�	LIST_RESP)rr&rrr�cmd_listcs
zDummyPOP3Handler.cmd_listcCs.|jdtt��tjj|t�dS)Nz+OK %s bytes)r�len�	RETR_RESPr	r
)rr&rrr�cmd_retrlszDummyPOP3Handler.cmd_retrcCs|jd�dS)Nz +OK message marked for deletion.)r)rr&rrr�cmd_delerszDummyPOP3Handler.cmd_delecCs|jd�dS)Nz+OK done nothing.)r)rr&rrr�cmd_noopuszDummyPOP3Handler.cmd_noopcCs|jd�dS)Nz+OK done nothing.)r)rr&rrr�cmd_rpopxszDummyPOP3Handler.cmd_rpopcCs|jd�dS)Nz+OK done nothing.)r)rr&rrr�cmd_apop{szDummyPOP3Handler.cmd_apopcCs|jd�|j�dS)Nz+OK closing.)rZclose_when_done)rr&rrr�cmd_quit~s
zDummyPOP3Handler.cmd_quitcCs-t|j�}|jr)tr)g|d<|S)N�STLS)�dict�CAPASr�SUPPORTS_SSL)rZ_capasrrr�
_get_capas�s
zDummyPOP3Handler._get_capascCs|jd�|j�rnxR|j�j�D]>\}}|g}|rT|j|�|jdj|��q,W|jd�dS)Nz+OK Capability list followsr�.)rr?�items�extendr)rr&ZcapZparamsZ_lnrrr�cmd_capa�s
	
zDummyPOP3Handler.cmd_capacCs |j|jrdnd�dS)Nz+OK I know RFC6856z-ERR What is UTF8?!)r�enable_UTF8)rr&rrr�cmd_utf8�szDummyPOP3Handler.cmd_utf8c
Cs�|jdkr�|jd�tj|jdtdddddd�}|j�|j|�d|_d|_g|_	|j
�n
|jd�dS)	NFz+OK Begin TLS negotiation�certfileZserver_sideTZdo_handshake_on_connectZsuppress_ragged_eofsz*-ERR Command not permitted when TLS active)rr�sslZwrap_socket�socket�CERTFILEZdel_channelZ
set_socketrr
�_do_tls_handshake)rr&Ztls_sockrrr�cmd_stls�s
	

			
zDummyPOP3Handler.cmd_stlscCs�y|jj�Wn�tjk
r�}zK|jdtjtjfkrLdS|jdtjkrl|j�S�WYdd}~XnWt	k
r�}z%|jdt
jkr�|j�SWYdd}~XnXd|_d|_
dS)NrTF)rHZdo_handshakerGZSSLError�argsZSSL_ERROR_WANT_READZSSL_ERROR_WANT_WRITEZ
SSL_ERROR_EOF�handle_close�OSError�errnoZECONNABORTEDrr)r�errrrrrJ�s
	z"DummyPOP3Handler._do_tls_handshakecCsP|jr|j�n6ytjj|�Wntjk
rK|j�YnXdS)N)rrJr	r
�handle_readrGZSSLEOFErrorrM)rrrrrQ�s	
zDummyPOP3Handler.handle_readN)�__name__�
__module__�__qualname__r=rDrrr(r)rr+r-r/r0r2Zcmd_uidlr5Zcmd_topr6r7r8r9r:r?rCrEr>rKrJrQrrrrr,s6
rc@s�eZdZeZejdd�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�ZeZ
d
d�Zdd�ZdS)�DummyPOP3ServercCs�tjj|�tjj|�|j|tj�|j|�|j	d�d|_
tj�|_|jj
�dd�\|_|_d|_dS)N�F�)r�Threadr�asyncore�
dispatcherZ
create_socketrH�SOCK_STREAMZbind�listen�activeZLock�active_lockZgetsockname�host�port�handler_instance)rZaddressZafrrrr�s

	%zDummyPOP3Server.__init__cCs@|jst�tj�|_tjj|�|jj�dS)N)r]�AssertionErrorr�Event�_DummyPOP3Server__flagrX�start�wait)rrrrre�szDummyPOP3Server.startcCssd|_|jj�xF|jr^tjr^|jj�tjdddd�|jj�qWtj	dd�dS)NT�timeoutg�������?�countrZ
ignore_all)
r]rd�setrYZ
socket_mapr^�acquireZloop�releaseZ	close_all)rrrr�run�s	

zDummyPOP3Server.runcCs&|jst�d|_|j�dS)NF)r]rbr)rrrr�stop�s	zDummyPOP3Server.stopcCs|j|�|_dS)N)�handlerra)rr�addrrrr�handle_accepted�szDummyPOP3Server.handle_acceptedcCs|j�dS)N)�close)rrrr�handle_connect�szDummyPOP3Server.handle_connectcCsdS)Nrr)rrrr�writable�szDummyPOP3Server.writablecCs�dS)Nr)rrrrr)�szDummyPOP3Server.handle_errorN)rRrSrTrrnrH�AF_INETrrerlrmrprrrQrsr)rrrrrU�s	rUc@sNeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zed-d.��Zed/d0��Zed1d2��Zd3S)4�
TestPOP3ClasscCs|j|jd��dS)Ns+OK)�
assertTrue�
startswith)r�resprrr�assertOK�szTestPOP3Class.assertOKcCsMtttf�|_|jj�tj|jj|jjdd�|_	dS)Nrg�)
rU�HOST�PORT�serverre�poplib�POP3r_r`�client)rrrr�setUp�s
zTestPOP3Class.setUpcCs|jj�|jj�dS)N)r�rqr}rm)rrrr�tearDown�s
zTestPOP3Class.tearDowncCs|j|jj�d�dS)Ns(+OK dummy pop3 server ready. <timestamp>)�assertEqualr�Z
getwelcome)rrrr�test_getwelcomeszTestPOP3Class.test_getwelcomecCs |jtj|jjd�dS)Nz	echo -err)�assertRaisesr~�error_protor��	_shortcmd)rrrr�test_exceptionsszTestPOP3Class.test_exceptionscCs9|j|jjd��|jtj|jjd�dS)Nr,�invalid)ryr��userr�r~r�)rrrr�	test_userszTestPOP3Class.test_usercCs9|j|jjd��|jtj|jjd�dS)Nr.r�)ryr�Zpass_r�r~r�r�)rrrr�
test_pass_szTestPOP3Class.test_pass_cCs|j|jj�d�dS)N�
�d)r�r�)r�r��stat)rrrr�	test_statszTestPOP3Class.test_statcCs^|j|jj�dd�dddddgdf�|j|jjd�jd	��dS)
Nrs1 1s2 2s3 3s4 4s5 5��1sOK 1 1)r�r��listrv�endswith)rrrr�	test_lists
zTestPOP3Class.test_listc	CsMddddddddd	gd
f}|jjd�}|j||�dS)Ns
+OK 116 bytessFrom: postmaster@python.orgsContent-Type: text/plainsMIME-Version: 1.0sSubject: Dummyrsline1sline2sline3�q�foo)r�Zretrr�)r�expectedr�rrr�	test_retrs	zTestPOP3Class.test_retrcCs/|jtj|jjdtjdd�dS)Nzecho +%sr��a)r�r~r�r�r�Z_MAXLINE)rrrr�test_too_long_lines"sz!TestPOP3Class.test_too_long_linescCs|j|jjd��dS)Nr�)ryr�Zdele)rrrr�	test_dele&szTestPOP3Class.test_delecCs|j|jj��dS)N)ryr��noop)rrrr�	test_noop)szTestPOP3Class.test_noopcCs|j|jjd��dS)Nr�)ryr�Zrpop)rrrr�	test_rpop,szTestPOP3Class.test_rpopcCs |j|jjdd��dS)Nr�Z
dummypassword)ryr��apop)rrrr�test_apop_normal/szTestPOP3Class.test_apop_normalcCsQddd}tj|jd|��$|jtj|jjdd�WdQRXdS)Ns+OK�<i@BZwelcomer�Zkb)�test_supportZ	swap_attrr�r�r~r�r�)rZevil_welcomerrr�test_apop_REDOS2szTestPOP3Class.test_apop_REDOSc	CsJddddddddd	gd
f}|j|jjdd�|�dS)Ns
+OK 116 bytessFrom: postmaster@python.orgsContent-Type: text/plainsMIME-Version: 1.0sSubject: Dummyrsline1sline2sline3r�r)r�r��top)rr�rrr�test_top<s		zTestPOP3Class.test_topcCs!|jj�|jjd�dS)Nr�)r�Zuidl)rrrr�	test_uidlDs
zTestPOP3Class.test_uidlcCs,d|jj_|jtj|jj�dS)NF)r}rnrDr�r~r�r��utf8)rrrr�test_utf8_raises_if_unsupportedHsz-TestPOP3Class.test_utf8_raises_if_unsupportedcCs8d|jj_d}|jj�}|j||�dS)NTs+OK I know RFC6856)r}rnrDr�r�r�)rr��resultrrr�	test_utf8LszTestPOP3Class.test_utf8cCs,|jj�}|jd|j�k�dS)Nr)r��caparv�keys)rr�rrr�	test_capaRszTestPOP3Class.test_capacCsF|jj�}|j|�|j|jj�|j|jj�dS)N)r��quitrv�assertIsNone�sock�file)rrxrrr�	test_quitVs
zTestPOP3Class.test_quitcCs,|jj�}|jd|j�k�dS)Nr;)r�r�rvr�)rr�rrr�test_stls_capa\szTestPOP3Class.test_stls_capacCs)d}|jj�}|j||�dS)Ns+OK Begin TLS negotiation)r��stlsr�)rr�rxrrr�	test_stlsaszTestPOP3Class.test_stlscCs�d}tjtj�}|jt�tj|_d|_|jtj	��|j
jd|�}WdQRXtj
d|jjdd�|_
|j
jd|�}|j||�dS)Ns+OK Begin TLS negotiationT�contextZ	localhostrgrz)rG�
SSLContext�PROTOCOL_TLSv1Zload_verify_locations�CAFILEZ
CERT_REQUIREDZverify_modeZcheck_hostnamer�ZCertificateErrorr�r�r~rr}r`r�)rr��ctxrxrrr�test_stls_contextgs
	!zTestPOP3Class.test_stls_contextN)rRrSrTryr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��requires_sslr�r�r�rrrrru�s2	
ru)�
SSLConnectionc@seZdZdd�ZdS)�DummyPOP3_SSLHandlercCsVtjj||�|j�|jd�g|_|jd�d|_d|_dS)Ns
z(+OK dummy pop3 server ready. <timestamp>TF)	r	r
rZsecure_connectionrr
rrr)rrrrrrzs

	
	zDummyPOP3_SSLHandler.__init__N)rRrSrTrrrrrr�xsr�c@sReZdZdd�Zdd�Zdd�Zdd�ZeZd	d
�ZdS)�TestPOP3_SSLClasscCsStttf�|_t|j_|jj�tj|jj	|jj
�|_dS)N)rUr{r|r}r�rnrer~rr_r`r�)rrrrr��s
zTestPOP3_SSLClass.setUpcCs|jdtj�dS)Nr)ZassertInr~�__all__)rrrr�test__all__�szTestPOP3_SSLClass.test__all__cCs4tjtj�}|jttj|jj|jj	dt
d|�|jttj|jj|jj	dt
d|�|jttj|jj|jj	dt
dt
d|�|jj�tj|jj|jj	d|�|_|j
|jjtj�|j|jjj|�|j|jj�jd��dS)NZkeyfiler�rFs+OK)rGr�r�r��
ValueErrorr~rr}r_r`rIr�r�ZassertIsInstancer�Z	SSLSocketZassertIsr�rvr�rw)rr�rrr�test_context�s

zTestPOP3_SSLClass.test_contextcCs|jtj|jj�dS)N)r�r~r�r�r�)rrrrr��szTestPOP3_SSLClass.test_stlscCs,|jj�}|jd|j�k�dS)Nr;)r�r��assertFalser�)rr�rrrr��sz TestPOP3_SSLClass.test_stls_capaN)	rRrSrTr�r�r�r�r�r�rrrrr��sr�c@sFeZdZdd�Zdd�Zdd�ZeZdd�Zd	S)
�TestPOP3_TLSClasscCsZtttf�|_|jj�tj|jj|jjdd�|_	|j	j
�dS)Nrgrz)rUr{r|r}rer~rr_r`r�r�)rrrrr��s
'zTestPOP3_TLSClass.setUpcCsk|jjdk	rZ|jjdk	rZy|jj�Wn"tjk
rY|jj�YnX|jj�dS)N)	r�r�r�r�r~r�rqr}rm)rrrrr��s$zTestPOP3_TLSClass.tearDowncCs|jtj|jj�dS)N)r�r~r�r�r�)rrrrr��szTestPOP3_TLSClass.test_stlscCs,|jj�}|jd|j�k�dS)NsSTLS)r�r�r�r�)rr�rrrr��sz TestPOP3_TLSClass.test_stls_capaN)rRrSrTr�r�r�r�r�rrrrr��s
r�c@sXeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestTimeoutscCs�tj�|_tjtjtj�|_|jjd�tj	|j�|_
tjd|jd|j|jf�|_
|j
jd�|j
j�|jj�dS)N�<�targetrLT)rrc�evtrHrtr[r�Z
settimeoutr�Z	bind_portr`rXr}�threadZ	setDaemonrerf)rrrrr��s*
zTestTimeouts.setUpcCs|jj�|`dS)N)r�r)rrrrr��s
zTestTimeouts.tearDowncCso|j�|j�zIy-|j�\}}|jd�|j�Wntjk
r[YnXWd|j�XdS)Ns
+ Hola mundo
)r\riZaccept�sendrqrHrg)rr�Zservrrorrrr}�s


	zTestTimeouts.servercCst|jtj��tjd�ztjt|j�}Wdtjd�X|j|j	j
�d�|j	j�dS)N�)r�rH�getdefaulttimeout�setdefaulttimeoutr~rr{r`r�r��
gettimeoutrq)r�poprrr�testTimeoutDefault�s
zTestTimeouts.testTimeoutDefaultcCsw|jtj��tjd�ztjt|jdd�}Wdtjd�X|j|jj	��|jj
�dS)Nr�rg)r�rHr�r�r~rr{r`r�r�rq)rr�rrr�testTimeoutNone�s
zTestTimeouts.testTimeoutNonecCsEtjt|jdd�}|j|jj�d�|jj�dS)Nrgr�)r~rr{r`r�r�r�rq)rr�rrr�testTimeoutValue�szTestTimeouts.testTimeoutValueN)	rRrSrTr�r�r}r�r�r�rrrrr��s


r�cCsDttttg}tj�}ztj|�Wdtj|�XdS)N)rur�r�r�r�Zthreading_setupZrun_unittestZthreading_cleanup)Ztests�thread_inforrr�	test_mainsr��__main__)-�__doc__r~rYr	rH�osZtimerOZunittestrrZtestrr��
import_modulerr{r|r>r"rG�pathr�dirname�__file__�curdirrIr�r�r1r4r
rrZrXrUruZtest.test_ftplibr�r�r�r�r�r�rRrrrr�<module>sF	**	�1�'6