HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_poplib.cpython-37.opt-1.pyc
B

��g�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�,/usr/local/lib/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%Zcap�paramsZ_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)rIZdo_handshakerFZSSLError�argsZSSL_ERROR_WANT_READZSSL_ERROR_WANT_WRITEZ
SSL_ERROR_EOF�handle_close�OSError�errnoZECONNABORTEDrr)r�errrrrrJ�s"
z"DummyPOP3Handler._do_tls_handshakecCsD|jr|��n0ytj�|�Wntjk
r>|��YnXdS)N)rrJrr	�handle_readrFZSSLEOFErrorrN)rrrrrR�s
zDummyPOP3Handler.handle_readN)�__name__�
__module__�__qualname__r<rDr
rr'r(r
r*r,r.r/r1Zcmd_uidlr4Zcmd_topr5r6r7r8r9r>rCrEr=rLrJrRrrrrr+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_socketrI�SOCK_STREAMZbind�listen�activeZLock�active_lockZgetsockname�host�port�handler_instance)rZaddress�afrrrr
�s


zDummyPOP3Server.__init__cCs$t��|_tj�|�|j��dS)N)rY�Event�_DummyPOP3Server__flagrZ�start�wait)rrrrrh�s
zDummyPOP3Server.startc	CsZd|_|j��z6x0|jrBtjrB|j�tjddd�WdQRXqWWdtjdd�XdS)NTg�������?r)�timeout�count)Z
ignore_all)r`rg�setr[Z
socket_mapraZloopZ	close_all)rrrr�run�s
 zDummyPOP3Server.runcCsd|_|��dS)NF)r`r)rrrr�stop�szDummyPOP3Server.stopcCs|�|�|_dS)N)�handlerrd)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)rSrTrUrrorI�AF_INETr
rhrmrnrqrsrRrtr(rrrrrV�s
rVc@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�)rj)
rV�HOST�PORT�serverrh�poplib�POP3rbrc�client)rrrr�setUp�s
zTestPOP3Class.setUpcCs|j��|j��d|_dS)N)r�rrr~rn)rrrr�tearDowns

zTestPOP3Class.tearDowncCs|�|j��d�dS)Ns(+OK dummy pop3 server ready. <timestamp>)�assertEqualr�Z
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)rzr��userr�rr�)rrrr�	test_userszTestPOP3Class.test_usercCs*|�|j�d��|�tj|jjd�dS)Nr-r�)rzr�Zpass_r�rr�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��listrw�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)r�Zretrr�)r�expectedr�rrr�	test_retr"s
zTestPOP3Class.test_retrcCs&|�tj|jjdtjdd�dS)Nzecho +%sr��a)r�rr�r�r�Z_MAXLINE)rrrr�test_too_long_lines+sz!TestPOP3Class.test_too_long_linescCs|�|j�d��dS)Nr�)rzr�Zdele)rrrr�	test_dele/szTestPOP3Class.test_delecCs|�|j���dS)N)rzr��noop)rrrr�	test_noop2szTestPOP3Class.test_noopcCs|�|j�d��dS)Nr�)rzr�Zrpop)rrrr�	test_rpop5szTestPOP3Class.test_rpopcCs|�|j�dd��dS)Nr�Z
dummypassword)rzr��apop)rrrr�test_apop_normal8szTestPOP3Class.test_apop_normalc	CsBddd}t�|jd|��|�tj|jjdd�WdQRXdS)Ns+OK�<i@BZwelcomer�Zkb)�test_supportZ	swap_attrr�r�rr�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�)r�Zuidl)rrrr�	test_uidlMs
zTestPOP3Class.test_uidlcCs d|jj_|�tj|jj�dS)NF)r~rorDr�rr�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~rorDr�r�r�)rr��resultrrr�	test_utf8Us

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

zTestPOP3Class.test_quitcCs |j��}|�d|��k�dS)Nr:)r�r�rwr�)rr�rrr�test_stls_capaes
zTestPOP3Class.test_stls_capacCsd}|j��}|�||�dS)Ns+OK Begin TLS negotiation)r��stlsr�)rr�ryrrr�	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)rKZ	localhostr{)rj)rFrG�PROTOCOL_TLS_CLIENTZload_verify_locations�CAFILEr��verify_modeZ
CERT_REQUIRED�check_hostnamer�ZCertificateErrorr�r�rr�r~rc)rr��ctxryrrr�test_stls_contextps
zTestPOP3Class.test_stls_contextN)rSrTrUrzr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r��requires_sslr�r�r�rrrrrv�s2	
rv)�
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)rSrTrUr
rrrrr��sr�c@s8eZdZdd�Zdd�Zdd�Zdd�ZeZd	d
�ZdS)�TestPOP3_SSLClasscCs:tttf�|_t|j_|j��t�|jj	|jj
�|_dS)N)rVr|r}r~r�rorhrrrbrcr�)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)�keyfilerK)�certfilerK)r�r�rK)rKs+OK)rFrGr�r�Z	CERT_NONEr�r��
ValueErrorrrr~rbrcrHr�r�ZassertIsInstancer�Z	SSLSocketZassertIsrKrwr�rx)rr�rrr�test_context�s 


zTestPOP3_SSLClass.test_contextcCs|�tj|jj�dS)N)r�rr�r�r�)rrrrr��szTestPOP3_SSLClass.test_stlscCs |j��}|�d|��k�dS)Nr:)r�r��assertFalser�)rr�rrrr��s
z TestPOP3_SSLClass.test_stls_capaN)	rSrTrUr�r�r�r�r�r�rrrrr��sr�c@s0eZdZdd�Zdd�Zdd�ZeZdd�Zd	S)
�TestPOP3_TLSClasscCs@tttf�|_|j��tj|jj|jjdd�|_	|j	�
�dS)Nr{)rj)rVr|r}r~rhrr�rbrcr�r�)rrrrr��s
zTestPOP3_TLSClass.setUpcCs\|jjdk	rH|jjdk	rHy|j��Wn tjk
rF|j��YnX|j��d|_dS)N)	r�r�r�r�rr�rrr~rn)rrrrr��s
zTestPOP3_TLSClass.tearDowncCs|�tj|jj�dS)N)r�rr�r�r�)rrrrr��szTestPOP3_TLSClass.test_stlscCs |j��}|�d|��k�dS)NsSTLS)r�r�r�r�)rr�rrrr��s
z TestPOP3_TLSClass.test_stls_capaN)rSrTrUr�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�<)�targetrMT)rYrf�evtrIrur^r�Z
settimeoutr�Z	bind_portrcrZr~�threadr]rhri)rrrrr��s

zTestTimeouts.setUpcCs|j��d|_dS)N)r�r)rrrrr��s
zTestTimeouts.tearDowncCs^|��|��z>y"|��\}}|�d�|��Wntjk
rJYnXWd|��XdS)Ns
+ Hola mundo
)r_rlZaccept�sendrrrIrj)rr�Zservrrprrrr~�s

zTestTimeouts.serverc	CsV|�t���t�d�zt�t|j�}Wdt�d�X|�|j	�
�d�|��dS)N�)r�rI�getdefaulttimeout�setdefaulttimeoutrr�r|rcr�r��
gettimeoutrr)r�poprrr�testTimeoutDefault�s
zTestTimeouts.testTimeoutDefaultc	CsX|�t���t�d�ztjt|jdd�}Wdt�d�X|�|j�	��|�
�dS)Nr�)rj)r�rIr�r�rr�r|rcr�r�rr)rr�rrr�testTimeoutNone�s
zTestTimeouts.testTimeoutNonecCs0tjt|jdd�}|�|j��d�|��dS)Nr�)rj)rr�r|rcr�r�r�rr)rr�rrr�testTimeoutValue	szTestTimeouts.testTimeoutValueN)	rSrTrUr�r�r~r�r�r�rrrrr��s


r�cCs4ttttg}t��}ztj|�Wdtj|�XdS)N)rvr�r�r�r�Zthreading_setupZrun_unittestZthreading_cleanup)Ztests�thread_inforrr�	test_mainsr��__main__)+�__doc__rr[rrI�osrPrYZunittestrrZtestrr�r|r}r=r!rF�pathr�dirname�__file__�curdirrHr�r�r0r3r	rr\rZrVrvZtest.test_ftplibr�r�r�r�r�r�rSrrrr�<module>sH

	3) 7