Your IP : 216.73.216.196


Current Path : /opt/alt/python37/lib64/python3.7/test/__pycache__/
Upload File :
Current File : //opt/alt/python37/lib64/python3.7/test/__pycache__/test_poplib.cpython-37.opt-1.pyc

B

� f�C�@svdZddlZddlZddlZddlZddlZddlZddlZddlm	Z	m
Z
ddlmZ
e
jZdZdZeed�r�ddlZdZej�ej�e�p�ejd�Zej�ej�e�p�ejd	�Ze
ed
�ZdZdZGd
d�dej�ZGdd�dejej �Z!Gdd�de	�Z"e�r"ddl#m$Z$Gdd�de$e�Z%eGdd�de"��Z&eGdd�de"��Z'Gdd�de	�Z(dd�Z)e*dk�rre)�dS)zTest script for poplib module.�N)�TestCase�
skipUnless)�supportF�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@s�eZdZgdgd�ZdZdd�Zdd�Zdd	�Zd
d�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)�Zer�d*d+�Zd,d-�Zd.d/�Zd0S)1�DummyPOP3Handlerzpython-testlib-pop-server)ZUIDL�IMPLEMENTATIONFcCs8tj�||�|�d�g|_|�d�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/python37/lib64/python3.7/test/test_poplib.pyr
0s

zDummyPOP3Handler.__init__cCs|j�|�dS)N)r�append)r�datarrr�collect_incoming_data8sz&DummyPOP3Handler.collect_incoming_datacCs�d�|j�}t|d�}g|_|�d�d��}|�d�}|dkrR||dd�}nd}t|d|�r|t|d|�}||�n|�d	|�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_errorcCstj�||�d�d�dS)Nz
ISO-8859-1s
)rr	r
�encode)rrrrrr
NszDummyPOP3Handler.pushcCs|�|�dS)N)r
)rr%rrr�cmd_echoQszDummyPOP3Handler.cmd_echocCs |dkr|�d�|�d�dS)N�guidoz-ERR no such userz+OK password required)r
)rr%rrr�cmd_userUs
zDummyPOP3Handler.cmd_usercCs |dkr|�d�|�d�dS)N�pythonz-ERR wrong passwordz+OK 10 messages)r
)rr%rrr�cmd_passZs
zDummyPOP3Handler.cmd_passcCs|�d�dS)Nz
+OK 10 100)r
)rr%rrr�cmd_stat_szDummyPOP3Handler.cmd_statcCs4|r|�d||f�n|�d�tj�|t�dS)Nz	+OK %s %sz+OK)r
rr	�	LIST_RESP)rr%rrr�cmd_listbs
zDummyPOP3Handler.cmd_listcCs$|�dtt��tj�|t�dS)Nz+OK %s bytes)r
�len�	RETR_RESPrr	)rr%rrr�cmd_retrkszDummyPOP3Handler.cmd_retrcCs|�d�dS)Nz +OK message marked for deletion.)r
)rr%rrr�cmd_deleqszDummyPOP3Handler.cmd_delecCs|�d�dS)Nz+OK done nothing.)r
)rr%rrr�cmd_nooptszDummyPOP3Handler.cmd_noopcCs|�d�dS)Nz+OK done nothing.)r
)rr%rrr�cmd_rpopwszDummyPOP3Handler.cmd_rpopcCs|�d�dS)Nz+OK done nothing.)r
)rr%rrr�cmd_apopzszDummyPOP3Handler.cmd_apopcCs|�d�|��dS)Nz+OK closing.)r
Zclose_when_done)rr%rrr�cmd_quit}s
zDummyPOP3Handler.cmd_quitcCs t|j�}|jstrg|d<|S)N�STLS)�dict�CAPASr�SUPPORTS_SSL)rZ_capasrrr�
_get_capas�s

zDummyPOP3Handler._get_capascCs^|�d�|��rPx<|����D],\}}|g}|r<|�|�|�d�|��q W|�d�dS)Nz+OK Capability list followsr�.)r
r>�items�extendr)rr%ZcapZparamsZ_lnrrr�cmd_capa�s

zDummyPOP3Handler.cmd_capacCs|�|jrdnd�dS)Nz+OK I know RFC6856z-ERR What is UTF8?!)r
�enable_UTF8)rr%rrr�cmd_utf8�s
zDummyPOP3Handler.cmd_utf8cCsv|jdkrh|�d�t��}|�t�|j|jdddd�}|��|�	|�d|_d|_
g|_|��n
|�d�dS)NFz+OK Begin TLS negotiationT)Zserver_sideZdo_handshake_on_connectZsuppress_ragged_eofsz*-ERR Command not permitted when TLS active)
rr
�ssl�
SSLContextZload_cert_chain�CERTFILEZwrap_socket�socketZdel_channelZ
set_socketrr�_do_tls_handshake)rr%�contextZtls_sockrrr�cmd_stls�s




zDummyPOP3Handler.cmd_stlsc
Cs�y|j��Wn�tjk
r�}z\|jdtjtjfkr<dS|jdtjkrT|��Sd|jdkspd|jdkrx|��S�Wdd}~XYnFt	k
r�}z|jdt
jkr�|��SWdd}~XYnXd|_d|_
dS)NrZSSLV3_ALERT_BAD_CERTIFICATErZSSLV3_ALERT_CERTIFICATE_UNKNOWNTF)rHZdo_handshakerEZSSLError�argsZSSL_ERROR_WANT_READZSSL_ERROR_WANT_WRITEZ
SSL_ERROR_EOF�handle_close�OSError�errnoZECONNABORTEDrr)r�errrrrrI�s"
z"DummyPOP3Handler._do_tls_handshakecCsD|jr|��n0ytj�|�Wntjk
r>|��YnXdS)N)rrIrr	�handle_readrEZSSLEOFErrorrM)rrrrrQ�s
zDummyPOP3Handler.handle_readN)�__name__�
__module__�__qualname__r<rCr
rr'r(r
r*r,r.r/r1Zcmd_uidlr4Zcmd_topr5r6r7r8r9r>rBrDr=rKrIrQrrrrr+s6
rc@sZeZdZeZejfdd�Zdd�Zdd�Z	dd�Z
d	d
�Zdd�ZeZ
d
d�Zdd�ZdS)�DummyPOP3ServercCsttj�|�tj�|�d|_|�|tj�|�	|�|�
d�d|_t��|_
|j��dd�\|_|_d|_dS)NT�F�)�	threading�Threadr
�asyncore�
dispatcher�daemonZ
create_socketrH�SOCK_STREAMZbind�listen�activeZLock�active_lockZgetsockname�host�port�handler_instance)rZaddressZafrrrr
�s


zDummyPOP3Server.__init__cCs$t��|_tj�|�|j��dS)N)rX�Event�_DummyPOP3Server__flagrY�start�wait)rrrrrf�s
zDummyPOP3Server.startc	CsZd|_|j��z6x0|jrBtjrB|j�tjddd�WdQRXqWWdtjdd�XdS)NTg�������?r)�timeout�count)Z
ignore_all)r_re�setrZZ
socket_mapr`ZloopZ	close_all)rrrr�run�s
 zDummyPOP3Server.runcCsd|_|��dS)NF)r_r)rrrr�stop�szDummyPOP3Server.stopcCs|�|�|_dS)N)�handlerrc)rr�addrrrr�handle_accepted�szDummyPOP3Server.handle_acceptedcCs|��dS)N)�close)rrrr�handle_connect�szDummyPOP3Server.handle_connectcCsdS)Nrr)rrrr�writable�szDummyPOP3Server.writablecCs�dS)Nr)rrrrr(�szDummyPOP3Server.handle_errorN)rRrSrTrrmrH�AF_INETr
rfrkrlrorqrQrrr(rrrrrU�s
rUc@s�eZdZdd�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|�|�d��dS)Ns+OK)�
assertTrue�
startswith)r�resprrr�assertOK�szTestPOP3Class.assertOKcCs6tttf�|_|j��tj|jj|jjdd�|_	dS)N�)rh)
rU�HOST�PORT�serverrf�poplib�POP3rarb�client)rrrr�setUp�s
zTestPOP3Class.setUpcCs|j��|j��d|_dS)N)rrpr|rl)rrrr�tearDowns

zTestPOP3Class.tearDowncCs|�|j��d�dS)Ns(+OK dummy pop3 server ready. <timestamp>)�assertEqualrZ
getwelcome)rrrr�test_getwelcome
szTestPOP3Class.test_getwelcomecCs|�tj|jjd�dS)Nz	echo -err)�assertRaisesr}�error_protor�	_shortcmd)rrrr�test_exceptionsszTestPOP3Class.test_exceptionscCs*|�|j�d��|�tj|jjd�dS)Nr+�invalid)rxr�userr�r}r�)rrrr�	test_userszTestPOP3Class.test_usercCs*|�|j�d��|�tj|jjd�dS)Nr-r�)rxrZpass_r�r}r�r�)rrrr�
test_pass_szTestPOP3Class.test_pass_cCs|�|j��d�dS)N)�
�d)r�r�stat)rrrr�	test_statszTestPOP3Class.test_statcCsD|�|j��dd�dddddgdf�|�|j�d��d	��dS)
Nrs1 1s2 2s3 3s4 4s5 5��1sOK 1 1)r�r�listru�endswith)rrrr�	test_listszTestPOP3Class.test_listc	Cs6ddddddddd	gd
f}|j�d�}|�||�dS)Ns
+OK 116 bytessFrom: postmaster@python.orgsContent-Type: text/plainsMIME-Version: 1.0sSubject: Dummyrsline1sline2sline3�q�foo)rZretrr�)r�expectedr�rrr�	test_retr"s
zTestPOP3Class.test_retrcCs&|�tj|jjdtjdd�dS)Nzecho +%sr��a)r�r}r�rr�Z_MAXLINE)rrrr�test_too_long_lines+sz!TestPOP3Class.test_too_long_linescCs|�|j�d��dS)Nr�)rxrZdele)rrrr�	test_dele/szTestPOP3Class.test_delecCs|�|j���dS)N)rxr�noop)rrrr�	test_noop2szTestPOP3Class.test_noopcCs|�|j�d��dS)Nr�)rxrZrpop)rrrr�	test_rpop5szTestPOP3Class.test_rpopcCs|�|j�dd��dS)Nr�Z
dummypassword)rxr�apop)rrrr�test_apop_normal8szTestPOP3Class.test_apop_normalc	CsBddd}t�|jd|��|�tj|jjdd�WdQRXdS)Ns+OK�<i@BZwelcomer�Zkb)�test_supportZ	swap_attrrr�r}r�r�)rZevil_welcomerrr�test_apop_REDOS;szTestPOP3Class.test_apop_REDOSc	Cs4ddddddddd	gd
f}|�|j�dd�|�dS)Ns
+OK 116 bytessFrom: postmaster@python.orgsContent-Type: text/plainsMIME-Version: 1.0sSubject: Dummyrsline1sline2sline3r�r)r�r�top)rr�rrr�test_topEszTestPOP3Class.test_topcCs|j��|j�d�dS)Nr�)rZuidl)rrrr�	test_uidlMs
zTestPOP3Class.test_uidlcCs d|jj_|�tj|jj�dS)NF)r|rmrCr�r}r�r�utf8)rrrr�test_utf8_raises_if_unsupportedQs
z-TestPOP3Class.test_utf8_raises_if_unsupportedcCs(d|jj_d}|j��}|�||�dS)NTs+OK I know RFC6856)r|rmrCrr�r�)rr��resultrrr�	test_utf8Us

zTestPOP3Class.test_utf8cCs |j��}|�d|��k�dS)Nr)r�caparu�keys)rr�rrr�	test_capa[s
zTestPOP3Class.test_capacCs4|j��}|�|�|�|jj�|�|jj�dS)N)r�quitru�assertIsNone�sock�file)rrwrrr�	test_quit_s

zTestPOP3Class.test_quitcCs |j��}|�d|��k�dS)Nr:)rr�rur�)rr�rrr�test_stls_capaes
zTestPOP3Class.test_stls_capacCsd}|j��}|�||�dS)Ns+OK Begin TLS negotiation)r�stlsr�)rr�rwrrr�	test_stlsjs
zTestPOP3Class.test_stlsc	Cs�d}t�tj�}|�t�|�|jtj�|�|jd�|�	tj
��|jj|d�}WdQRXt
jd|jjdd�|_|jj|d�}|�||�dS)Ns+OK Begin TLS negotiationT)rJZ	localhostry)rh)rErF�PROTOCOL_TLS_CLIENTZload_verify_locations�CAFILEr��verify_modeZ
CERT_REQUIRED�check_hostnamer�ZCertificateErrorrr�r}r~r|rb)rr��ctxrwrrr�test_stls_contextps
zTestPOP3Class.test_stls_contextN)rRrSrTrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��requires_sslr�r�r�rrrrrt�s2	
rt)�
SSLConnectionc@seZdZdd�ZdS)�DummyPOP3_SSLHandlercCs@tj�||�|��|�d�g|_|�d�d|_d|_dS)Ns
z(+OK dummy pop3 server ready. <timestamp>TF)	rr	r
Zsecure_connectionrrr
rr)rrrrrr
�s

zDummyPOP3_SSLHandler.__init__N)rRrSrTr
rrrrr��sr�c@s8eZdZdd�Zdd�Zdd�Zdd�ZeZd	d
�ZdS)�TestPOP3_SSLClasscCs:tttf�|_t|j_|j��t�|jj	|jj
�|_dS)N)rUrzr{r|r�rmrfr}rrarbr)rrrrr��s
zTestPOP3_SSLClass.setUpcCs|�dtj�dS)Nr)ZassertInr}�__all__)rrrr�test__all__�szTestPOP3_SSLClass.test__all__c	Cs�t�tj�}d|_tj|_|jttj	|j
j|j
jt
|d�|jttj	|j
j|j
jt
|d�|jttj	|j
j|j
jt
t
|d�|j��tj	|j
j|j
j|d�|_|�|jjtj�|�|jjj|�|�|j���d��dS)NF)�keyfilerJ)�certfilerJ)r�r�rJ)rJs+OK)rErFr�r�Z	CERT_NONEr�r��
ValueErrorr}rr|rarbrGrr�ZassertIsInstancer�Z	SSLSocketZassertIsrJrur�rv)rr�rrr�test_context�s 


zTestPOP3_SSLClass.test_contextcCs|�tj|jj�dS)N)r�r}r�rr�)rrrrr��szTestPOP3_SSLClass.test_stlscCs |j��}|�d|��k�dS)Nr:)rr��assertFalser�)rr�rrrr��s
z TestPOP3_SSLClass.test_stls_capaN)	rRrSrTr�r�r�r�r�r�rrrrr��sr�c@s0eZdZdd�Zdd�Zdd�ZeZdd�Zd	S)
�TestPOP3_TLSClasscCs@tttf�|_|j��tj|jj|jjdd�|_	|j	�
�dS)Nry)rh)rUrzr{r|rfr}r~rarbrr�)rrrrr��s
zTestPOP3_TLSClass.setUpcCs\|jjdk	rH|jjdk	rHy|j��Wn tjk
rF|j��YnX|j��d|_dS)N)	rr�r�r�r}r�rpr|rl)rrrrr��s
zTestPOP3_TLSClass.tearDowncCs|�tj|jj�dS)N)r�r}r�rr�)rrrrr��szTestPOP3_TLSClass.test_stlscCs |j��}|�d|��k�dS)NsSTLS)rr�r�r�)rr�rrrr��s
z TestPOP3_TLSClass.test_stls_capaN)rRrSrTr�r�r�r�r�rrrrr��s

r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestTimeoutscCspt��|_t�tjtj�|_|j�d�t�	|j�|_
tj|j|j|jfd�|_
d|j
_|j
��|j��dS)N�<)�targetrLT)rXrd�evtrHrsr]r�Z
settimeoutr�Z	bind_portrbrYr|�threadr\rfrg)rrrrr��s

zTestTimeouts.setUpcCs|j��d|_dS)N)r�r)rrrrr��s
zTestTimeouts.tearDowncCs^|��|��z>y"|��\}}|�d�|��Wntjk
rJYnXWd|��XdS)Ns
+ Hola mundo
)r^rjZaccept�sendrprHrh)rr�Zservrrnrrrr|�s

zTestTimeouts.serverc	CsV|�t���t�d�zt�t|j�}Wdt�d�X|�|j	�
�d�|��dS)N�)r�rH�getdefaulttimeout�setdefaulttimeoutr}r~rzrbr�r��
gettimeoutrp)r�poprrr�testTimeoutDefault�s
zTestTimeouts.testTimeoutDefaultc	CsX|�t���t�d�ztjt|jdd�}Wdt�d�X|�|j�	��|�
�dS)Nr�)rh)r�rHr�r�r}r~rzrbr�r�rp)rr�rrr�testTimeoutNone�s
zTestTimeouts.testTimeoutNonecCs0tjt|jdd�}|�|j��d�|��dS)Nr�)rh)r}r~rzrbr�r�r�rp)rr�rrr�testTimeoutValue	szTestTimeouts.testTimeoutValueN)	rRrSrTr�r�r|r�r�r�rrrrr��s


r�cCs4ttttg}t��}ztj|�Wdtj|�XdS)N)rtr�r�r�r�Zthreading_setupZrun_unittestZthreading_cleanup)Ztests�thread_inforrr�	test_mainsr��__main__)+�__doc__r}rZrrH�osrOrXZunittestrrZtestrr�rzr{r=r!rE�pathr�dirname�__file__�curdirrGr�r�r0r3r	rr[rYrUrtZtest.test_ftplibr�r�r�r�r�r�rRrrrr�<module>sH

	3) 7