Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_poplib.cpython-34.pyo

�
g f�?�@sdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZ
e
jd�Ze
jZdZdZeed�rddlZdZejjejje�p�ejd	�Zejjejje�pejd
�Zne
ed�ZdZd
ZGdd�dej�Z Gdd�dej!ej"�Z#Gdd�de	�Z$er�Gdd�de �Z%neGdd�de$��Z&eGdd�de$��Z'Gdd�de	�Z(dd�Z)e*dkre)�ndS)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@s8eZdZigd6dgd6Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�Zdd�Z
e
Zdd�ZeZdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zd&d'�Zer4d(d)�Zd*d+�Zd,d-�Znd.S)/�DummyPOP3HandlerZUIDLzpython-testlib-pop-server�IMPLEMENTATIONcCsLtjj||�|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/python34/lib64/python3.4/test/test_poplib.pyr0s
	
	zDummyPOP3Handler.__init__cCs|jj|�dS)N)r
�append)r�datarrr�collect_incoming_data8sz&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_errorKszDummyPOP3Handler.handle_errorcCs$tjj||jd�d�dS)Nz
ISO-8859-1s
)r	r
r�encode)rrrrrrNszDummyPOP3Handler.pushcCs|j|�dS)N)r)rr&rrr�cmd_echoQszDummyPOP3Handler.cmd_echocCs-|dkr|jd�n|jd�dS)N�guidoz-ERR no such userz+OK password required)r)rr&rrr�cmd_userUszDummyPOP3Handler.cmd_usercCs-|dkr|jd�n|jd�dS)N�pythonz-ERR wrong passwordz+OK 10 messages)r)rr&rrr�cmd_passZs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_listbs
zDummyPOP3Handler.cmd_listcCs.|jdtt��tjj|t�dS)Nz+OK %s bytes)r�len�	RETR_RESPr	r
)rr&rrr�cmd_retrkszDummyPOP3Handler.cmd_retrcCs|jd�dS)Nz +OK message marked for deletion.)r)rr&rrr�cmd_deleqszDummyPOP3Handler.cmd_delecCs|jd�dS)Nz+OK done nothing.)r)rr&rrr�cmd_nooptszDummyPOP3Handler.cmd_noopcCs|jd�dS)Nz+OK done nothing.)r)rr&rrr�cmd_rpopwszDummyPOP3Handler.cmd_rpopcCs|jd�dS)Nz+OK done nothing.)r)rr&rrr�cmd_apopzszDummyPOP3Handler.cmd_apopcCs|jd�|j�dS)Nz+OK closing.)rZclose_when_done)rr&rrr�cmd_quit}s
zDummyPOP3Handler.cmd_quitcCs0t|j�}|jr,tr,g|d<n|S)N�STLS)�dict�CAPASr�SUPPORTS_SSL)rZ_capasrrr�
_get_capas�s
zDummyPOP3Handler._get_capascCs�|jd�|j�rtxX|j�j�D]A\}}|g}|rW|j|�n|jdj|��q,Wn|jd�dS)Nz+OK Capability list followsr�.)rr?�items�extendr)rr&ZcapZparamsZ_lnrrr�cmd_capa�s
	zDummyPOP3Handler.cmd_capac
Cs�|jdkr�|jd�tj|jdtdddddd�}|j�|j|�d|_d|_g|_	|j
�n
|jd�dS)	NFz+OK Begin TLS negotiation�certfile�server_sideT�do_handshake_on_connectZsuppress_ragged_eofsz*-ERR Command not permitted when TLS active)rr�ssl�wrap_socket�socket�CERTFILE�del_channel�
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)rIZdo_handshakerGZSSLError�argsZSSL_ERROR_WANT_READZSSL_ERROR_WANT_WRITEZ
SSL_ERROR_EOF�handle_close�OSError�errnoZECONNABORTEDrr)r�errrrrrM�s
	z"DummyPOP3Handler._do_tls_handshakecCsP|jr|j�n6ytjj|�Wntjk
rK|j�YnXdS)N)rrMr	r
�handle_readrGZSSLEOFErrorrP)rrrrrT�s	
zDummyPOP3Handler.handle_readN)�__name__�
__module__�__qualname__r=rrr(r)rr+r-r/r0r2Zcmd_uidlr5Zcmd_topr6r7r8r9r:r?rCr>rNrMrTrrrrr,s2
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_socketrI�SOCK_STREAMZbind�listen�activeZLock�active_lockZgetsockname�host�port�handler_instance)rZaddressZafrrrr�s

	%zDummyPOP3Server.__init__cCs0tj�|_tjj|�|jj�dS)N)r�Event�_DummyPOP3Server__flagr[�start�wait)rrrrrg�szDummyPOP3Server.startcCssd|_|jj�xF|jr^tjr^|jj�tjdddd�|jj�qWtj	dd�dS)NT�timeoutg�������?�countrZ
ignore_all)
r`rf�setr\Z
socket_mapra�acquireZloop�releaseZ	close_all)rrrr�run�s	

zDummyPOP3Server.runcCsd|_|j�dS)NF)r`r)rrrr�stop�s	zDummyPOP3Server.stopcCs|j|�|_dS)N)�handlerrd)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)rUrVrWrrprI�AF_INETrrgrnrorrrtrTrur)rrrrrX�s	rXc@s6eZdZdd�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(�Zed)d*��Zed+d,��Zed-d.��Zd/S)0�
TestPOP3ClasscCs|j|jd��dS)Ns+OK)�
assertTrue�
startswith)r�resprrr�assertOK�szTestPOP3Class.assertOKcCsMtttf�|_|jj�tj|jj|jjdd�|_	dS)Nri�)
rX�HOST�PORT�serverrg�poplib�POP3rbrc�client)rrrr�setUp�s
zTestPOP3Class.setUpcCs|jj�|jj�dS)N)r�rsrro)rrrr�tearDown�s
zTestPOP3Class.tearDowncCs|j|jj�d�dS)Ns(+OK dummy pop3 server ready. <timestamp>)�assertEqualr�Z
getwelcome)rrrr�test_getwelcome�szTestPOP3Class.test_getwelcomecCs |jtj|jjd�dS)Nz	echo -err)�assertRaisesr��error_protor��	_shortcmd)rrrr�test_exceptions�szTestPOP3Class.test_exceptionscCs9|j|jjd��|jtj|jjd�dS)Nr,�invalid)r{r��userr�r�r�)rrrr�	test_userszTestPOP3Class.test_usercCs9|j|jjd��|jtj|jjd�dS)Nr.r�)r{r�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_stat
szTestPOP3Class.test_statcCs^|j|jj�dd�dddddgdf�|j|jjd�jd	��dS)
Nrs1 1s2 2s3 3s4 4s5 5��1sOK 1 1)r�r��listrx�endswith)rrrr�	test_list
s
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_linessz!TestPOP3Class.test_too_long_linescCs|j|jjd��dS)Nr�)r{r�Zdele)rrrr�	test_dele szTestPOP3Class.test_delecCs|j|jj��dS)N)r{r��noop)rrrr�	test_noop#szTestPOP3Class.test_noopcCs|j|jjd��dS)Nr�)r{r�Zrpop)rrrr�	test_rpop&szTestPOP3Class.test_rpopcCs |j|jjdd��dS)Nr�Z
dummypassword)r{r��apop)rrrr�test_apop_normal)szTestPOP3Class.test_apop_normalcCsPddd}tj|jd|��$|jtj|jjdd�WdQXdS)Ns+OK�<i@BZwelcomer�Zkb)�test_supportZ	swap_attrr�r�r�r�r�)rZevil_welcomerrr�test_apop_REDOS,szTestPOP3Class.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_top6s		zTestPOP3Class.test_topcCs!|jj�|jjd�dS)Nr�)r�Zuidl)rrrr�	test_uidl>s
zTestPOP3Class.test_uidlcCs,|jj�}|jd|j�k�dS)Nr)r��caparx�keys)rr�rrr�	test_capaBszTestPOP3Class.test_capacCsF|jj�}|j|�|j|jj�|j|jj�dS)N)r��quitrx�assertIsNone�sock�file)rrzrrr�	test_quitFs
zTestPOP3Class.test_quitcCs,|jj�}|jd|j�k�dS)Nr;)r�r�rxr�)rr�rrr�test_stls_capaLszTestPOP3Class.test_stls_capacCs)d}|jj�}|j||�dS)Ns+OK Begin TLS negotiation)r��stlsr�)rr�rzrrr�	test_stlsQszTestPOP3Class.test_stlscCs�d}tjtj�}|jt�tj|_d|_|jtj	��|j
jd|�}WdQXtj
d|jjdd�|_
|j
jd|�}|j||�dS)Ns+OK Begin TLS negotiationT�contextZ	localhostrir|)rG�
SSLContext�PROTOCOL_TLSv1Zload_verify_locations�CAFILEZ
CERT_REQUIREDZverify_modeZcheck_hostnamer�ZCertificateErrorr�r�r�r�rrcr�)rr��ctxrzrrr�test_stls_contextWs
	!zTestPOP3Class.test_stls_contextN)rUrVrWr{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��requires_sslr�r�r�rrrrrw�s.	
rwc@seZdZdd�ZdS)�DummyPOP3_SSLHandlercCs�tjj||�tj|jdtdddd�}|j�|j|�d|_	d|_
|j�|jd�g|_
|jd�dS)NrDrETrFFs
z(+OK dummy pop3 server ready. <timestamp>)r	r
rrGrHrIrJrKrLrrrMrr
r)rrZ
ssl_socketrrrris	

		

	zDummyPOP3_SSLHandler.__init__N)rUrVrWrrrrrr�gsr�c@sReZdZdd�Zdd�Zdd�Zdd�ZeZd	d
�ZdS)�TestPOP3_SSLClasscCsStttf�|_t|j_|jj�tj|jj	|jj
�|_dS)N)rXr}r~rr�rprgr�rrbrcr�)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�rDs+OK)rGr�r�r��
ValueErrorr�rrrbrcrJr�r�ZassertIsInstancer�Z	SSLSocketZassertIsr�rxr�ry)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)	rUrVrWr�r�r�r�r�r�rrrrr�ysr�c@sFeZdZdd�Zdd�Zdd�ZeZdd�Zd	S)
�TestPOP3_TLSClasscCsZtttf�|_|jj�tj|jj|jjdd�|_	|j	j
�dS)Nrir|)rXr}r~rrgr�r�rbrcr�r�)rrrrr��s
'zTestPOP3_TLSClass.setUpcCsn|jjdk	r]|jjdk	r]y|jj�Wq]tjk
rY|jj�Yq]Xn|jj�dS)N)	r�r�r�r�r�r�rsrro)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)rUrVrWr�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�<�targetrOT)rre�evtrIrvr^r�Z
settimeoutr�Z	bind_portrcr[r�threadZ	setDaemonrgrh)rrrrr��s*
zTestTimeouts.setUpcCs|jj�|`dS)N)r�r)rrrrr��s
zTestTimeouts.tearDowncCsr|jd�|j�zIy-|j�\}}|jd�|j�Wntjk
r^YnXWd|j�XdS)NrYs
+ Hola mundo
)r_rkZaccept�sendrsrIri)rr�Zservrrqrrrr�s


	zTestTimeouts.servercCst|jtj��tjd�ztjt|j�}Wdtjd�X|j|j	j
�d�|j	j�dS)N�)r�rI�getdefaulttimeout�setdefaulttimeoutr�r�r}rcr�r��
gettimeoutrs)r�poprrr�testTimeoutDefault�s
zTestTimeouts.testTimeoutDefaultcCsw|jtj��tjd�ztjt|jdd�}Wdtjd�X|j|jj	��|jj
�dS)Nr�ri)r�rIr�r�r�r�r}rcr�r�rs)rr�rrr�testTimeoutNone�s
zTestTimeouts.testTimeoutNonecCsEtjt|jdd�}|j|jj�d�|jj�dS)Nrir�)r�r�r}rcr�r�r�rs)rr�rrr�testTimeoutValue�szTestTimeouts.testTimeoutValueN)	rUrVrWr�r�rr�r�r�rrrrr��s


r�cCsDttttg}tj�}ztj|�Wdtj|�XdS)N)rwr�r�r�r�Zthreading_setupZrun_unittestZthreading_cleanup)Ztests�thread_inforrr�	test_main�sr��__main__)+�__doc__r�r\r	rI�osZtimerRZunittestrrZtestrr��
import_modulerr}r~r>r"rG�pathr�dirname�__file__�curdirrJr�r�r1r4r
rr]r[rXrwr�r�r�r�r�rUrrrr�<module>sD	*-	�1w'6