Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_poplib.cpython-310.opt-2.pyc

o

0�i$F�@s�	ddlZddlZddlZddlZddlZddlZddlmZmZddlm	Z
ddlmZddlm
Z
ddlmZddlZe���e�de�ddlZddlZWd�n1sZwYe
jZdZdZeed	�r�ddlZd
Zej�ej�e�p|ejd�Zej�ej�e�p�ejd�Z eed
�Z!dZ"dZ#Gdd�dej$�Z%Gdd�dej&ej'�Z(Gdd�de�Z)er�ddl*m+Z+Gdd�de+e%�Z,e!Gdd�de)��Z-e!Gdd�de)��Z.Gdd�de�Z/dd �Z0e1d!kr�e�2�dSdS)"�N)�TestCase�
skipUnless)�support)�hashlib_helper)�
socket_helper)�threading_helper�ignoreF�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)�Zerld*d+�Zd,d-�Zd.d/�Zd0Sd0S)1�DummyPOP3Handlerzpython-testlib-pop-server)ZUIDL�IMPLEMENTATIONFcCs8tj�||�|�d�g|_|�d�d|_d|_dS)N�
�(+OK dummy pop3 server ready. <timestamp>F)�asynchat�
async_chat�__init__�set_terminator�	in_buffer�push�
tls_active�tls_starting��self�conn�r�7/opt/alt/python310/lib64/python3.10/test/test_poplib.pyr8s


zDummyPOP3Handler.__init__cCs|j�|�dS�N)r�append�r�datarrr�collect_incoming_data@�z&DummyPOP3Handler.collect_incoming_datacCs�d�|j�}t|d�}g|_|�d�d��}|�d�}|dkr)||dd�}nd}t|d|�r?t|d|�}||�dS|�d	|�dS)
N��
ISO-8859-1� r�����Zcmd_z$-ERR unrecognized POP3 command "%s".)	�joinr�str�split�lower�find�hasattr�getattrr)r�line�cmdZspace�arg�methodrrr�found_terminatorCs

z!DummyPOP3Handler.found_terminatorcC��rr�rrrr�handle_errorS�zDummyPOP3Handler.handle_errorcCstj�||�d�d�dS)Nr"r)rrr�encoderrrrrVszDummyPOP3Handler.pushcCs|�|�dSr�r�rr0rrr�cmd_echoYszDummyPOP3Handler.cmd_echocC� |dkr	|�d�|�d�dS)N�guidoz-ERR no such userz+OK password requiredr8r9rrr�cmd_user]�
zDummyPOP3Handler.cmd_usercCr;)N�pythonz-ERR wrong passwordz+OK 10 messagesr8r9rrr�cmd_passbr>zDummyPOP3Handler.cmd_passcC�|�d�dS)Nz
+OK 10 100r8r9rrr�cmd_statg�zDummyPOP3Handler.cmd_statcCs6|r
|�d||f�dS|�d�tj�|t�dS)Nz	+OK %s %sz+OK)rrr�	LIST_RESPr9rrr�cmd_listjs
zDummyPOP3Handler.cmd_listcCs$|�dtt��tj�|t�dS)Nz+OK %s bytes)r�len�	RETR_RESPrrr9rrr�cmd_retrsszDummyPOP3Handler.cmd_retrcCrA)Nz +OK message marked for deletion.r8r9rrr�cmd_deleyrCzDummyPOP3Handler.cmd_delecCrA�Nz+OK done nothing.r8r9rrr�cmd_noop|rCzDummyPOP3Handler.cmd_noopcCrArJr8r9rrr�cmd_rpoprCzDummyPOP3Handler.cmd_rpopcCrArJr8r9rrr�cmd_apop�rCzDummyPOP3Handler.cmd_apopcCs|�d�|��dS)Nz+OK closing.)rZclose_when_doner9rrr�cmd_quit�s
zDummyPOP3Handler.cmd_quitcCs t|j�}|jstrg|d<|S�NZSTLS)�dict�CAPASr�SUPPORTS_SSL)rZ_capasrrr�
_get_capas�s

zDummyPOP3Handler._get_capascCsZ|�d�|��r&|����D]\}}|g}|r|�|�|�d�|��q|�d�dS)Nz+OK Capability list followsr#�.)rrS�items�extendr')rr0Zcap�paramsZ_lnrrr�cmd_capa�s

zDummyPOP3Handler.cmd_capacCs|�|jr
d�dSd�dS)Nz+OK I know RFC6856z-ERR What is UTF8?!)r�enable_UTF8r9rrr�cmd_utf8�s
��zDummyPOP3Handler.cmd_utf8cCs||jdur7|�d�t�tj�}|�t�|j|jdddd�}|�	�|�
|�d|_d|_g|_|�
�dS|�d�dS)NFz+OK Begin TLS negotiationT)Zserver_sideZdo_handshake_on_connectZsuppress_ragged_eofsz*-ERR Command not permitted when TLS active)rr�ssl�
SSLContextZPROTOCOL_TLS_SERVERZload_cert_chain�CERTFILEZwrap_socket�socketZdel_channelZ
set_socketrr�_do_tls_handshake)rr0�contextZtls_sockrrr�cmd_stls�s 


�
zDummyPOP3Handler.cmd_stlsc
Cs�z|j��WnntjyQ}z=|jdtjtjfvr"WYd}~dS|jdtjkr4|��WYd}~Sd|jdvsBd|jdvrL|��WYd}~S�d}~wt	yu}z|jdt
jkrj|��WYd}~SWYd}~dSd}~wwd|_d|_
dS)NrZSSLV3_ALERT_BAD_CERTIFICATEr%ZSSLV3_ALERT_CERTIFICATE_UNKNOWNTF)r^Zdo_handshaker[ZSSLError�argsZSSL_ERROR_WANT_READZSSL_ERROR_WANT_WRITEZ
SSL_ERROR_EOF�handle_close�OSError�errnoZECONNABORTEDrr)r�errrrrr_�s,�����
z"DummyPOP3Handler._do_tls_handshakecCsD|jr	|��dSz	tj�|�WdStjy!|��YdSwr)rr_rr�handle_readr[ZSSLEOFErrorrcr4rrrrg�s�zDummyPOP3Handler.handle_readN)�__name__�
__module__�__qualname__rQrYrrr2r5rr:r=r@rBrEZcmd_uidlrHZcmd_toprIrKrLrMrNrSrXrZrRrar_rgrrrrr
3s:
�r
c@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_socketr^�SOCK_STREAMZbind�listen�activeZLock�active_lockZgetsockname�host�port�handler_instance)rZaddressZafrrrr�s



zDummyPOP3Server.__init__cCs$t��|_tj�|�|j��dSr)rn�Event�_DummyPOP3Server__flagro�start�waitr4rrrr|�s
zDummyPOP3Server.startc	Cs�d|_|j��zJ|jr8tjrA|j�tjddd�Wd�n1s$wY|jrJtjsWtjdd�dSWtjdd�dSWtjdd�dSWtjdd�dStjdd�w)NTg�������?r%)�timeout�count)Z
ignore_all)rur{�setrpZ
socket_maprvZloopZ	close_allr4rrr�run�s
�����zDummyPOP3Server.runcCsd|_|��dS�NF)rur'r4rrr�stop�szDummyPOP3Server.stopcCs|�|�|_dSr)�handlerry)rr�addrrrr�handle_accepted�r zDummyPOP3Server.handle_acceptedcCs|��dSr)�closer4rrr�handle_connect�szDummyPOP3Server.handle_connectcCsdS)Nrrr4rrr�writable�szDummyPOP3Server.writablecCr3rrr4rrrr5�r6zDummyPOP3Server.handle_errorN)rhrirjr
r�r^�AF_INETrr|r�r�r�r�rgr�r5rrrrrk�s
rkc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zejddd�d d!��Zejddd�d"d#��Zd$d%�Zd&d'�Zd(d)�Zd*d+�Zd,d-�Zd.d/�Zed0d1��Zed2d3��Zed4d5��Zd6S)7�
TestPOP3ClasscCs|�|�d��dS)N�+OK)�
assertTrue�
startswith�r�resprrr�assertOK�zTestPOP3Class.assertOKcCs8tttf�|_|j��tj|jj|jjt	j
d�|_dS�N�r~)rk�HOST�PORT�serverr|�poplib�POP3rwrx�test_support�LOOPBACK_TIMEOUT�clientr4rrr�setUps

�zTestPOP3Class.setUpcCs|j��|j��d|_dSr)r�r�r�r�r4rrr�tearDown
s


zTestPOP3Class.tearDowncC�|�|j��d�dS)Ns(+OK dummy pop3 server ready. <timestamp>)�assertEqualr�Z
getwelcomer4rrr�test_getwelcomes�zTestPOP3Class.test_getwelcomecCs|�tj|jjd�dS)Nz	echo -err)�assertRaisesr��error_protor��	_shortcmdr4rrr�test_exceptionsszTestPOP3Class.test_exceptionscCs*|�|j�d��|�tj|jjd�dS)Nr<�invalid)r�r��userr�r�r�r4rrr�	test_user�zTestPOP3Class.test_usercCs*|�|j�d��|�tj|jjd�dS)Nr?r�)r�r�Zpass_r�r�r�r�r4rrr�
test_pass_r�zTestPOP3Class.test_pass_cCr�)N)�
�d)r�r��statr4rrr�	test_stat"�zTestPOP3Class.test_statcCs>|�|j��dd�gd�df�|�|j�d��d��dS)Nr%)s1 1s2 2s3 3s4 4s5 5��1sOK 1 1)r�r��listr��endswithr4rrr�	test_list%s��zTestPOP3Class.test_listcCs*dgd�df}|j�d�}|�||�dS)N�
+OK 116 bytes�sFrom: postmaster@python.orgsContent-Type: text/plainsMIME-Version: 1.0sSubject: Dummyr!sline1sline2sline3�q�foo)r�Zretrr�)r�expectedr�rrr�	test_retr+s�zTestPOP3Class.test_retrcCs&|�tj|jjdtjdd�dS)Nzecho +%sr��a)r�r�r�r�r�Z_MAXLINEr4rrr�test_too_long_lines4s�z!TestPOP3Class.test_too_long_linescC�|�|j�d��dS�Nr�)r�r�Zdeler4rrr�	test_dele8r�zTestPOP3Class.test_delecCs|�|j���dSr)r�r��noopr4rrr�	test_noop;r�zTestPOP3Class.test_noopcCr�r�)r�r�Zrpopr4rrr�	test_rpop>r�zTestPOP3Class.test_rpopZmd5T)ZopensslcCs|�|j�dd��dS)Nr�Z
dummypassword)r�r��apopr4rrr�test_apop_normalAszTestPOP3Class.test_apop_normalcCsXddd}t�|jd|��|�tj|jjdd�Wd�dS1s%wYdS)Nr��<i@BZwelcomer�Zkb)r�Z	swap_attrr�r�r�r�r�)rZevil_welcomerrr�test_apop_REDOSEs"�zTestPOP3Class.test_apop_REDOScCs(dgd�df}|�|j�dd�|�dS)Nr�r�r�r%)r�r��top)rr�rrr�test_topPs
�zTestPOP3Class.test_topcCs|j��|j�d�dSr�)r�Zuidlr4rrr�	test_uidlXs
zTestPOP3Class.test_uidlcCs d|jj_|�tj|jj�dSr�)r�r�rYr�r�r�r��utf8r4rrr�test_utf8_raises_if_unsupported\�
z-TestPOP3Class.test_utf8_raises_if_unsupportedcCs(d|jj_d}|j��}|�||�dS)NTs+OK I know RFC6856)r�r�rYr�r�r�)rr��resultrrr�	test_utf8`s

zTestPOP3Class.test_utf8cC� |j��}|�d|��v�dS)Nr�r��capar��keys�rr�rrr�	test_capafr�zTestPOP3Class.test_capacCs4|j��}|�|�|�|jj�|�|jj�dSr)r��quitr��assertIsNone�sock�filer�rrr�	test_quitjs

zTestPOP3Class.test_quitcCr�rOr�r�rrr�test_stls_capaps
zTestPOP3Class.test_stls_capacCsd}|j��}|�||�dS)N�+OK Begin TLS negotiation)r��stlsr�)rr�r�rrr�	test_stlsus
zTestPOP3Class.test_stlscCs�d}t�tj�}|�t�|�|jtj�|�|jd�|�	tj
��|jj|d�}Wd�n1s4wYt
jd|jjtjd�|_|jj|d�}|�||�dS)Nr�T�r`Z	localhostr�)r[r\�PROTOCOL_TLS_CLIENTZload_verify_locations�CAFILEr��verify_modeZ
CERT_REQUIRED�check_hostnamer�ZCertificateErrorr�r�r�r�r�rxr�r�)rr��ctxr�rrr�test_stls_context{s
��zTestPOP3Class.test_stls_contextN)rhrirjr�r�r�r�r�r�r�r�r�r�r�r�r�r�rZrequires_hashdigestr�r�r�r�r�r�r�r��requires_sslr�r�r�rrrrr�s>	




r�)�
SSLConnectionc@seZdZdd�ZdS)�DummyPOP3_SSLHandlercCs@tj�||�|��|�d�g|_|�d�d|_d|_dS)Nrr
TF)	rrrZsecure_connectionrrrrrrrrrr�s


zDummyPOP3_SSLHandler.__init__N)rhrirjrrrrrr��sr�c@s8eZdZdd�Zdd�Zdd�Zdd�ZeZd	d
�ZdS)�TestPOP3_SSLClasscCs:tttf�|_t|j_|j��t�|jj	|jj
�|_dSr)rkr�r�r�r�r�r|r�r	rwrxr�r4rrrr��s
zTestPOP3_SSLClass.setUpcCs|�dtj�dS)Nr	)ZassertInr��__all__r4rrr�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)�keyfiler`)�certfiler`)r�r�r`r�r�)r[r\r�r�Z	CERT_NONEr�r��
ValueErrorr�r	r�rwrxr]r�r�ZassertIsInstancer�Z	SSLSocketZassertIsr`r�r�r�)rr�rrr�test_context�s(
�
��
�zTestPOP3_SSLClass.test_contextcC�|�tj|jj�dSr�r�r�r�r�r�r4rrrr��r�zTestPOP3_SSLClass.test_stlscCr�rO�r�r�ZassertFalser�r�rrrr��r�z TestPOP3_SSLClass.test_stls_capaN)	rhrirjr�r�r�r�r�r�rrrrr��sr�c@s0eZdZdd�Zdd�Zdd�ZeZdd�Zd	S)
�TestPOP3_TLSClasscCsBtttf�|_|j��tj|jj|jjt	j
d�|_|j��dSr�)
rkr�r�r�r|r�r�rwrxr�r�r�r�r4rrrr��s
�zTestPOP3_TLSClass.setUpcCsZ|jjdur#|jjdur#z|j��Wntjy"|j��Ynw|j��d|_dSr)	r�r�r�r�r�r�r�r�r�r4rrrr��s�

zTestPOP3_TLSClass.tearDowncCr�rr�r4rrrr��r�zTestPOP3_TLSClass.test_stlscCr�)NsSTLSr�r�rrrr��r�z TestPOP3_TLSClass.test_stls_capaN)rhrirjr�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�<)�targetrbT)rnrz�evtr^r�rsr�Z
settimeoutrZ	bind_portrxror��threadrrr|r}r4rrrr��s

zTestTimeouts.setUpcCs|j��d|_dSr)r�r'r4rrrr��s

zTestTimeouts.tearDowncCsn|��|��z)z|��\}}|�d�|��Wn	ty#YnwW|��dSW|��dS|��w)Ns
+ Hola mundo
)rtr�Zaccept�sendr��TimeoutError)rr�Zservrr�rrrr��s
���zTestTimeouts.serverc	Csd|�t���t�tj�zt�t|j	�}Wt�d�nt�d�w|�
|j��tj�|�
�dSr)r�r^�getdefaulttimeout�setdefaulttimeoutr�r�r�r�r�rxr�r��
gettimeoutr��r�poprrr�testTimeoutDefaultszTestTimeouts.testTimeoutDefaultc	Csb|�t���t�d�ztjt|jdd�}Wt�d�nt�d�w|�|j�	��|�
�dS)N�r�)r�r^r�r�r�r�r�rxr�r�r�r�rrr�testTimeoutNones
zTestTimeouts.testTimeoutNonecCsrtjt|jtjd�}|�|j��tj�|�	�|�
t��tjt|jdd�Wd�dS1s2wYdS)Nr�r)r�r�r�rxr�r�r�r�r�r�r�r�r�rrr�testTimeoutValues"�zTestTimeouts.testTimeoutValueN)	rhrirjr�r�r�r�rrrrrrr��s


r�cCs t��}tjtjg|�R�dSr)rZthreading_setup�unittestZaddModuleCleanupZthreading_cleanup)�thread_inforrr�setUpModulesr�__main__)3r�r^�osrernrrr�testrr�Ztest.supportrrr�warnings�catch_warnings�simplefilter�DeprecationWarningrrpr�r�rRr,r[�pathr'�dirname�__file__�curdirr]r�r�rDrGrr
rqrorkr�Ztest.test_ftplibr�r�r�r�r�rrh�mainrrrr�<module>s\

�

3)!9�