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.opt-2.pyc



���]�@�@sddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZej
d�ZejZdZdZeed�rddlZdZejjejje�p�ejd�Zejjejje�p
ejd	�Ze	ed
�ZdZdZGd
d�dej�ZGdd�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)�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�0/opt/alt/python35/lib64/python3.5/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&Zcap�paramsZ_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)rIZdo_handshakerHZSSLError�argsZSSL_ERROR_WANT_READZSSL_ERROR_WANT_WRITEZ
SSL_ERROR_EOF�handle_close�OSError�errnoZECONNABORTEDrr)r�errrrrrK�s
	z"DummyPOP3Handler._do_tls_handshakecCsP|jr|j�n6ytjj|�Wntjk
rK|j�YnXdS)N)rrKr	r
�handle_readrHZSSLEOFErrorrN)rrrrrR�s	
zDummyPOP3Handler.handle_readN)�__name__�
__module__�__qualname__r=rErrr(r)rr+r-r/r0r2Zcmd_uidlr5Zcmd_topr6r7r8r9r:r?rDrFr>rLrKrRrrrrr,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_socketrI�SOCK_STREAM�bind�listen�active�Lock�active_lock�getsockname�host�port�handler_instance)r�address�afrrrr�s

	%zDummyPOP3Server.__init__cCs0tj�|_tjj|�|jj�dS)N)r�Event�_DummyPOP3Server__flagrY�start�wait)rrrrrj�szDummyPOP3Server.startcCssd|_|jj�xF|jr^tjr^|jj�tjdddd�|jj�qWtj	dd�dS)NT�timeoutg�������?�countrZ
ignore_all)
r_ri�setrZZ
socket_mapra�acquireZloop�releaseZ	close_all)rrrr�run�s	

zDummyPOP3Server.runcCsd|_|j�dS)NF)r_r)rrrr�stop�s	zDummyPOP3Server.stopcCs|j|�|_dS)N)�handlerre)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)rSrTrUrrsrI�AF_INETrrjrqrrrurwrRrxr)rrrrrV�s	rVc@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)Nrl�)
rV�HOST�PORT�serverrj�poplib�POP3rcrd�client)rrrr�setUp�s
zTestPOP3Class.setUpcCs|jj�|jj�dS)N)r�rvr�rr)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)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_statszTestPOP3Class.test_statcCs^|j|jj�dd�dddddgdf�|j|jjd�jd	��dS)
Nrs1 1s2 2s3 3s4 4s5 5��1sOK 1 1)r�r��listr{�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�)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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�rsrEr�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�rsrEr�r�r�)rr��resultrrr�	test_utf8LszTestPOP3Class.test_utf8cCs,|jj�}|jd|j�k�dS)Nr)r��capar{�keys)rr�rrr�	test_capaRszTestPOP3Class.test_capacCsF|jj�}|j|�|j|jj�|j|jj�dS)N)r��quitr{�assertIsNone�sock�file)rr}rrr�	test_quitVs
zTestPOP3Class.test_quitcCs,|jj�}|jd|j�k�dS)Nr;)r�r�r{r�)rr�rrr�test_stls_capa\szTestPOP3Class.test_stls_capacCs)d}|jj�}|j||�dS)Ns+OK Begin TLS negotiation)r��stlsr�)rr�r}rrr�	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�context�	localhostrlr)rH�
SSLContext�PROTOCOL_TLSv1Zload_verify_locations�CAFILEZ
CERT_REQUIREDZverify_modeZcheck_hostnamer�ZCertificateErrorr�r�r�r�r�rdr�)rr��ctxr}rrr�test_stls_contextgs
	!zTestPOP3Class.test_stls_contextN)rSrTrUr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��requires_sslr�r�r�rrrrrz�s2	
rz)�
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)rSrTrUrrrrrr�xsr�c@sReZdZdd�Zdd�Zdd�Zdd�ZeZd	d
�ZdS)�TestPOP3_SSLClasscCsStttf�|_t|j_|jj�tj|jj	|jj
�|_dS)N)rVr�r�r�r�rsrjr�rrcrdr�)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�rGs+OK)rHr�r�r��
ValueErrorr�rr�rcrdrJr�r�ZassertIsInstancer�Z	SSLSocketZassertIsr�r{r�r|)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)	rSrTrUr�r�r�r�r�r�rrrrr��sr�c@sFeZdZdd�Zdd�Zdd�ZeZdd�Zd	S)
�TestPOP3_TLSClasscCsZtttf�|_|jj�tj|jj|jjdd�|_	|j	j
�dS)Nrlr)rVr�r�r�rjr�r�rcrdr�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�rvr�rr)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)rSrTrUr�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�<�targetrMT)rrh�evtrIryr\r��
settimeoutr�Z	bind_portrdrYr��thread�	setDaemonrjrk)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^rn�accept�sendrvrIrl)rr�Zservrrtrrrr��s


	zTestTimeouts.servercCst|jtj��tjd�ztjt|j�}Wdtjd�X|j|j	j
�d�|j	j�dS)N�)r�rI�getdefaulttimeout�setdefaulttimeoutr�r�r�rdr�r��
gettimeoutrv)r�poprrr�testTimeoutDefault�s
zTestTimeouts.testTimeoutDefaultcCsw|jtj��tjd�ztjt|jdd�}Wdtjd�X|j|jj	��|jj
�dS)Nr�rl)r�rIr�r�r�r�r�rdr�r�rv)rr�rrr�testTimeoutNone�s
zTestTimeouts.testTimeoutNonecCsEtjt|jdd�}|j|jj�d�|jj�dS)Nrlr�)r�r�r�rdr�r�r�rv)rr�rrr�testTimeoutValue�szTestTimeouts.testTimeoutValueN)	rSrTrUr�r�r�r�r�r�rrrrr��s


r�cCsDttttg}tj�}ztj|�Wdtj|�XdS)N)rzr�r�r�r�Zthreading_setupZrun_unittestZthreading_cleanup)Ztests�thread_inforrr�	test_mainsr��__main__),r�rZr	rI�os�timerPZunittestrrZtestrr��
import_modulerr�r�r>r"rH�pathr�dirname�__file__�curdirrJr�r�r1r4r
rr[rYrVrzZtest.test_ftplibr�r�r�r�r�r�rSrrrr�<module>sD	**	�1�'6