403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_smtpd.cpython-36.opt-1.pyc
3

�w2_���@slddlZddlZddlmZmZddlZddlZddlZddlZGdd�dej	�Z
Gdd�de�ZGdd�de
�Z
Gd	d
�d
ej�ZGdd�dej�ZGd
d�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�Zejejd�Gdd�de��ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGdd�dej�ZGd d!�d!ej�Zed"k�rhej�dS)#�N)�support�mock_socketc@seZdZdd�Zdd�ZdS)�DummyServercOs2tjj|f|�|�g|_|jr(d|_nd|_dS)Nz
return statuss
return status)�smtpd�
SMTPServer�__init__�messagesZ_decode_data�
return_status)�self�args�kwargs�r
�4/opt/alt/python36/lib64/python3.6/test/test_smtpd.pyrs
zDummyServer.__init__cKs>|jj||||f�||jkr"dSd|kr:d|dkr:dSdS)Nz	250 OkishZmail_optionsZSMTPUTF8z250 SMTPUTF8 message okish)r�appendr	)r
Zpeer�mailfromZrcpttos�data�kwr
r
r�process_messages

zDummyServer.process_messageN)�__name__�
__module__�__qualname__rrr
r
r
rr
src@seZdZdS)�DummyDispatcherBrokenN)rrrr
r
r
rrsrc@seZdZdd�ZdS)�BrokenDummyServercCs
t��dS)N)r)r
Znumr
r
r�listen szBrokenDummyServer.listenN)rrrrr
r
r
rrsrc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�SMTPDServerTestcCstt_t_dS)N)rr�socket�asyncore)r
r
r
r�setUp%szSMTPDServerTest.setUpcsrtjtjdfddd�}|j�\}}tj|||dd���fdd�}|d�|d�|d	�|d
�|jt|d�dS)
Nr�bT)�decode_datacs�jj|��j�dS)N)r�
queue_recv�handle_read)�line)�channelr
r�
write_line.szFSMTPDServerTest.test_process_message_unimplemented.<locals>.write_linesHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAs	spam
.
)rr)rrr�HOST�accept�SMTPChannel�assertRaises�NotImplementedError)r
�server�conn�addrr$r
)r#r�"test_process_message_unimplemented(sz2SMTPDServerTest.test_process_message_unimplementedcCs"|jttjtjdfdddd�dS)NrrT)�enable_SMTPUTF8r)rr)r(�
ValueErrorrrrr%)r
r
r
r�+test_decode_data_and_enable_SMTPUTF8_raises8sz;SMTPDServerTest.test_decode_data_and_enable_SMTPUTF8_raisescCstj�tt_t_dS)N)r�	close_allrr)r
r
r
r�tearDownAszSMTPDServerTest.tearDownN)rrrrr-r0r2r
r
r
rr$s	rc@sFeZdZdd�Zddd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�DebuggingServerTestcCstt_t_dS)N)rrrr)r
r
r
rrHszDebuggingServerTest.setUpFcsN�fdd�}|d�|r"|d�n|d�|d�|d�||�|d�dS)	Ncs�jj|��j�dS)N)rr r!)r")r#r
rr$Lsz1DebuggingServerTest.send_data.<locals>.write_linesEHLO examples-MAIL From:eggs@example BODY=8BITMIME SMTPUTF8sMAIL From:eggs@examplesRCPT To:spam@examplesDATA�.r
)r
r#rr.r$r
)r#r�	send_dataKs
zDebuggingServerTest.send_datacCsrtjtjdfddd�}|j�\}}tj|||dd�}tj��}|j|d�WdQRX|j�}|j	|t
jd��dS)NrrT)rsFrom: test

hello
z�             ---------- MESSAGE FOLLOWS ----------
             From: test
             X-Peer: peer-address

             hello
             ------------ END MESSAGE ------------
             )rr)r�DebuggingServerrr%r&r'�captured_stdoutr5�getvalue�assertEqual�textwrap�dedent)r
r*r+r,r#�s�stdoutr
r
r�*test_process_message_with_decode_data_trueYs

z>DebuggingServerTest.test_process_message_with_decode_data_truecCsjtjtjdfd�}|j�\}}tj|||�}tj��}|j|d�WdQRX|j�}|j	|t
jd��dS)NrrsFrom: test

héllo�
z�             ---------- MESSAGE FOLLOWS ----------
             b'From: test'
             b'X-Peer: peer-address'
             b''
             b'h\xc3\xa9llo\xff'
             ------------ END MESSAGE ------------
             )rr)rr6rr%r&r'r7r5r8r9r:r;)r
r*r+r,r#r<r=r
r
r�+test_process_message_with_decode_data_falsejs

z?DebuggingServerTest.test_process_message_with_decode_data_falsecCsrtjtjdfddd�}|j�\}}tj|||dd�}tj��}|j|d�WdQRX|j�}|j	|t
jd��dS)NrrT)r.sFrom: test

héllo�
z�             ---------- MESSAGE FOLLOWS ----------
             b'From: test'
             b'X-Peer: peer-address'
             b''
             b'h\xc3\xa9llo\xff'
             ------------ END MESSAGE ------------
             )rr)rr6rr%r&r'r7r5r8r9r:r;)r
r*r+r,r#r<r=r
r
r�.test_process_message_with_enable_SMTPUTF8_truezs

zBDebuggingServerTest.test_process_message_with_enable_SMTPUTF8_truecCsvtjtjdfddd�}|j�\}}tj|||dd�}tj��}|j|ddd�WdQRX|j�}|j	|t
jd��dS)NrrT)r.sFrom: test

héllo�
a             ---------- MESSAGE FOLLOWS ----------
             mail options: ['BODY=8BITMIME', 'SMTPUTF8']
             b'From: test'
             b'X-Peer: peer-address'
             b''
             b'h\xc3\xa9llo\xff'
             ------------ END MESSAGE ------------
             )rr)rr6rr%r&r'r7r5r8r9r:r;)r
r*r+r,r#r<r=r
r
r�7test_process_SMTPUTF8_message_with_enable_SMTPUTF8_true�s

zKDebuggingServerTest.test_process_SMTPUTF8_message_with_enable_SMTPUTF8_truecCstj�tt_t_dS)N)rr1rr)r
r
r
rr2�szDebuggingServerTest.tearDownN)F)
rrrrr5r>r?r@rAr2r
r
r
rr3Fs
r3c@s:eZdZdd�Zdd�Zejejd�dd��Z	dd	�Z
d
S)�TestFamilyDetectioncCstt_t_dS)N)rrrr)r
r
r
rr�szTestFamilyDetection.setUpcCstj�tt_t_dS)N)rr1rr)r
r
r
rr2�szTestFamilyDetection.tearDownzIPv6 not enabledcCs.tjtjdftjdf�}|j|jjtj�dS)Nr)	rrr�HOSTv6r%r9r�familyZAF_INET6)r
r*r
r
r�test_socket_uses_IPv6�sz)TestFamilyDetection.test_socket_uses_IPv6cCs.tjtjdftjdf�}|j|jjtj�dS)Nr)	rrrr%rCr9rrDZAF_INET)r
r*r
r
r�test_socket_uses_IPv4�sz)TestFamilyDetection.test_socket_uses_IPv4N)rrrrr2�unittest�
skipUnlessr�IPV6_ENABLEDrErFr
r
r
rrB�srBc@s8eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�ZdS)
�TestRcptOptionParsings:555 RCPT TO parameters not recognized or not implemented
cCs(tt_t_tj|_tj�|_t_dS)N)	rrrr�DEBUGSTREAM�old_debugstream�io�StringIO�debug)r
r
r
rr�szTestRcptOptionParsing.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2�szTestRcptOptionParsing.tearDowncCs|jj|�|j�dS)N)rr r!)r
r#r"r
r
rr$�sz TestRcptOptionParsing.write_linecCsdttjdfd�}|j�\}}tj|||�}|j|d�|j|d�|j|d�|j|jj	|j
�dS)NrrsEHLO examples$MAIL from: <foo@example.com> size=20s"RCPT to: <foo@example.com> foo=bar)rr)rrr%r&rr'r$r9r�last�error_response)r
r*r+r,r#r
r
r�test_params_rejected�sz*TestRcptOptionParsing.test_params_rejectedcCsbttjdfd�}|j�\}}tj|||�}|j|d�|j|d�|j|d�|j|jj	d�dS)NrrsEHLO examples$MAIL from: <foo@example.com> size=20sRCPT to: <foo@example.com>s250 OK
)rr)
rrr%r&rr'r$r9rrP)r
r*r+r,r#r
r
r�test_nothing_accepted�sz+TestRcptOptionParsing.test_nothing_acceptedN)	rrrrQrr2r$rRrSr
r
r
rrJ�s	rJc@s@eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dS)�TestMailOptionParsings<555 MAIL FROM parameters not recognized or not implemented
cCs(tt_t_tj|_tj�|_t_dS)N)	rrrrrKrLrMrNrO)r
r
r
rr�szTestMailOptionParsing.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2�szTestMailOptionParsing.tearDowncCs|jj|�|j�dS)N)rr r!)r
r#r"r
r
rr$�sz TestMailOptionParsing.write_linecCs�ttjdfddd�}|j�\}}tj|||dd�}|j|d�x*d
D]"}|j||�|j|jj	|j
�qDW|j|d
�|j|jj	d�dS)NrrT)rsEHLO example�-MAIL from: <foo@example.com> size=20 SMTPUTF8�;MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=8BITMIME�1MAIL from: <foo@example.com> size=20 BODY=UNKNOWN�2MAIL from: <foo@example.com> size=20 body=8bitmimes$MAIL from: <foo@example.com> size=20s250 OK
)rr)rUrVrWrX)rrr%r&rr'r$r9rrPrQ)r
r*r+r,r#r"r
r
r�test_with_decode_data_true�sz0TestMailOptionParsing.test_with_decode_data_truecCs�ttjdfd
�}|j�\}}tj|||�}|j|d�x*dD]"}|j||�|j|jj	|j
�q<W|j|d�|j|jj	d�|j|d�|j|jj	d	�dS)NrrsEHLO example�-MAIL from: <foo@example.com> size=20 SMTPUTF8�;MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=8BITMIMEs:MAIL from: <foo@example.com> size=20 SMTPUTF8 BODY=UNKNOWNs3501 Error: BODY can only be one of 7BIT, 8BITMIME
s2MAIL from: <foo@example.com> size=20 body=8bitmimes250 OK
)rr)rZr[)rrr%r&rr'r$r9rrPrQ)r
r*r+r,r#r"r
r
r�test_with_decode_data_false�s$z1TestMailOptionParsing.test_with_decode_data_falsecCs^ttjdfddd�}|j�\}}tj|||dd�}|j|d�|j|d�|j|jj	d�dS)	NrrT)r.sEHLO examples;MAIL from: <foo@example.com> size=20 body=8bitmime smtputf8s250 OK
)rr)
rrr%r&rr'r$r9rrP)r
r*r+r,r#r
r
r�test_with_enable_smtputf8_truesz4TestMailOptionParsing.test_with_enable_smtputf8_trueN)
rrrrQrr2r$rYr\r]r
r
r
rrT�srTc@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,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dSdT�Z,dUdV�Z-dWdX�Z.dYdZ�Z/d[d\�Z0d]d^�Z1d_d`�Z2dadb�Z3dcdd�Z4dedf�Z5dgdh�Z6didj�Z7dkdl�Z8dmdn�Z9dodp�Z:dqdr�Z;dsdt�Z<dudv�Z=dwdx�Z>dydz�Z?d{d|�Z@d}d~�ZAdd��ZBd�d��ZCd�d��ZDd�d��ZEd�S)��SMTPDChannelTestcCsbtt_t_tj|_tj�|_t_t	t
jdfddd�|_|jj
�\}}tj|j||dd�|_dS)NrrT)r)rr)rrrrrKrLrMrNrOrrr%r*r&r'r#)r
r+r,r
r
rrs
zSMTPDChannelTest.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2'szSMTPDChannelTest.tearDowncCs|jjj|�|jj�dS)N)r#rr r!)r
r"r
r
rr$,szSMTPDChannelTest.write_linecCs|jtttjdfddd�dS)NrrT)r)rr)r(rrrr%)r
r
r
r�test_broken_connect0sz$SMTPDChannelTest.test_broken_connectc	Cs(|jttj|j|jj|jjddd�dS)NT)r.r)r(r/rr'r*r#r+r,)r
r
r
rr05sz<SMTPDChannelTest.test_decode_data_and_enable_SMTPUTF8_raisescCs|jj�dS)N)r*Z
handle_accept)r
r
r
r�test_server_accept;sz#SMTPDChannelTest.test_server_acceptcCs |jd�|j|jjjd�dS)N�s500 Error: bad syntax
)r$r9r#rrP)r
r
r
r�test_missing_data>s
z"SMTPDChannelTest.test_missing_datacCs |jd�|j|jjjd�dS)NsEHLO examples
250 HELP
)r$r9r#rrP)r
r
r
r�	test_EHLOCs
zSMTPDChannelTest.test_EHLOcCs |jd�|j|jjjd�dS)NsEHLOs501 Syntax: EHLO hostname
)r$r9r#rrP)r
r
r
r�test_EHLO_bad_syntaxGs
z%SMTPDChannelTest.test_EHLO_bad_syntaxcCs*|jd�|jd�|j|jjjd�dS)NsEHLO examples503 Duplicate HELO/EHLO
)r$r9r#rrP)r
r
r
r�test_EHLO_duplicateLs

z$SMTPDChannelTest.test_EHLO_duplicatecCs*|jd�|jd�|j|jjjd�dS)NsEHLO examplesHELO examples503 Duplicate HELO/EHLO
)r$r9r#rrP)r
r
r
r�test_EHLO_HELO_duplicateRs

z)SMTPDChannelTest.test_EHLO_HELO_duplicatecCs6tjj�}|jd�|j|jjjdj|�jd��dS)NsHELO examplez250 {}
�ascii)	rrZgetfqdnr$r9r#rP�format�encode)r
�namer
r
r�	test_HELOXs

zSMTPDChannelTest.test_HELOcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesEHLO examples503 Duplicate HELO/EHLO
)r$r9r#rrP)r
r
r
r�test_HELO_EHLO_duplicate^s

z)SMTPDChannelTest.test_HELO_EHLO_duplicatecCs |jd�|j|jjjd�dS)NsHELPs,250 Supported commands: EHLO HELO MAIL RCPT sDATA RSET NOOP QUIT VRFY
sF250 Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY
)r$r9r#rrP)r
r
r
r�	test_HELPds
zSMTPDChannelTest.test_HELPcCs |jd�|j|jjjd�dS)Ns	HELP MAILs"250 Syntax: MAIL FROM: <address>
)r$r9r#rrP)r
r
r
r�test_HELP_commandjs
z"SMTPDChannelTest.test_HELP_commandcCs |jd�|j|jjjd�dS)Ns	HELP SPAMs,501 Supported commands: EHLO HELO MAIL RCPT sDATA RSET NOOP QUIT VRFY
sF501 Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY
)r$r9r#rrP)r
r
r
r�test_HELP_command_unknownos
z*SMTPDChannelTest.test_HELP_command_unknowncCs |jd�|j|jjjd�dS)NsHELOs501 Syntax: HELO hostname
)r$r9r#rrP)r
r
r
r�test_HELO_bad_syntaxus
z%SMTPDChannelTest.test_HELO_bad_syntaxcCs*|jd�|jd�|j|jjjd�dS)NsHELO examples503 Duplicate HELO/EHLO
)r$r9r#rrP)r
r
r
r�test_HELO_duplicatezs

z$SMTPDChannelTest.test_HELO_duplicatecCs0d|_|jd�|jd�|j|jjjd�dS)NFsHELO examples%MAIL from:<foo@example.com> SIZE=1234s"501 Syntax: MAIL FROM: <address>
)Z
extended_smtpr$r9r#rrP)r
r
r
r�8test_HELO_parameter_rejected_when_extensions_not_enabled�s


zISMTPDChannelTest.test_HELO_parameter_rejected_when_extensions_not_enabledcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL from:   <foo@example.com>s250 OK
)r$r9r#rrP)r
r
r
r�"test_MAIL_allows_space_after_colon�s

z3SMTPDChannelTest.test_MAIL_allows_space_after_coloncCs*|jd�|jd�|j|jjjd�dS)NsEHLO examples&MAIL from:   <foo@example.com> size=20s250 OK
)r$r9r#rrP)r
r
r
r�+test_extended_MAIL_allows_space_after_colon�s

z<SMTPDChannelTest.test_extended_MAIL_allows_space_after_coloncCs |jd�|j|jjjd�dS)NsNOOPs250 OK
)r$r9r#rrP)r
r
r
r�	test_NOOP�s
zSMTPDChannelTest.test_NOOPcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesNOOPs250 OK
)r$r9r#rrP)r
r
r
r�test_HELO_NOOP�s

zSMTPDChannelTest.test_HELO_NOOPcCs |jd�|j|jjjd�dS)NsNOOP his501 Syntax: NOOP
)r$r9r#rrP)r
r
r
r�test_NOOP_bad_syntax�s
z%SMTPDChannelTest.test_NOOP_bad_syntaxcCs |jd�|j|jjjd�dS)NsQUITs	221 Bye
)r$r9r#rrP)r
r
r
r�	test_QUIT�s
zSMTPDChannelTest.test_QUITcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesQUITs	221 Bye
)r$r9r#rrP)r
r
r
r�test_HELO_QUIT�s

zSMTPDChannelTest.test_HELO_QUITcCs |jd�|j|jjjd�dS)NsQUIT bye byes	221 Bye
)r$r9r#rrP)r
r
r
r�test_QUIT_arg_ignored�s
z&SMTPDChannelTest.test_QUIT_arg_ignoredcCs(d|j_|jd�|j|jjjd�dS)Nz	BAD STATEsHELO examples451 Internal confusion
)r#Z
smtp_stater$r9rrP)r
r
r
r�test_bad_state�s
zSMTPDChannelTest.test_bad_statecCs:|jd�|jdd|jjd�|j|jjjd�dS)NsHELO examplesMAIL from: �as@examples500 Error: line too long
)r$r#�command_size_limitr9rrP)r
r
r
r�test_command_too_long�s
z&SMTPDChannelTest.test_command_too_longcCsr|jd�|jjtd�}|jdd|d�|j|jjjd�|jdd|dd�|j|jjjd�dS)	NsEHLO examplezMAIL from:<@example>sMAIL from:<r|s@example> SIZE=1234s250 OK
�s500 Error: line too long
)r$r#r}�lenr9rrP)r
�fill_lenr
r
r�*test_MAIL_command_limit_extended_with_SIZE�s

z;SMTPDChannelTest.test_MAIL_command_limit_extended_with_SIZEcCs2|jd�|jd�|j|jjjdd�d�dS)NsEHLO examples5MAIL from: <naive@example.com> BODY=8BITMIME SMTPUTF8r��5)r$r9r#rrP)r
r
r
r�-test_MAIL_command_rejects_SMTPUTF8_by_default�s
z>SMTPDChannelTest.test_MAIL_command_rejects_SMTPUTF8_by_defaultcCs\d|j_|jd�|jd�|jd�|jd�|jd|jjd�|j|jjjd�dS)	NisHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATA�AsA
.s552 Error: Too much mail data
)r#�data_size_limitr$r9rrP)r
r
r
r�-test_data_longer_than_default_data_size_limit�s



z>SMTPDChannelTest.test_data_longer_than_default_data_size_limitcCs*|jd�|jd�|j|jjjd�dS)NsEHLO examples!MAIL FROM:<eggs@example> SIZE=512s250 OK
)r$r9r#rrP)r
r
r
r�test_MAIL_size_parameter�s

z)SMTPDChannelTest.test_MAIL_size_parametercCs*|jd�|jd�|j|jjjd�dS)NsEHLO examples%MAIL FROM:<eggs@example> SIZE=invalids9501 Syntax: MAIL FROM: <address> [SP <mail-parameters>]
)r$r9r#rrP)r
r
r
r� test_MAIL_invalid_size_parameter�s

z1SMTPDChannelTest.test_MAIL_invalid_size_parametercCsP|jd�|jd�|j|jjjd�|jd�|jd�|j|jjjd�dS)NsEHLO examples"MAIL FROM:<eggs@example> ham=greens<555 MAIL FROM parameters not recognized or not implemented
sMAIL FROM:<eggs@example>s RCPT TO:<eggs@example> ham=greens:555 RCPT TO parameters not recognized or not implemented
)r$r9r#rrP)r
r
r
r�!test_MAIL_RCPT_unknown_parameters�s



z2SMTPDChannelTest.test_MAIL_RCPT_unknown_parameterscCs2d|j_|jd�|jd�|j|jjjd�dS)NisEHLO examples"MAIL FROM:<eggs@example> SIZE=2096s<552 Error: message size exceeds fixed maximum message size
)r#r�r$r9rrP)r
r
r
r�<test_MAIL_size_parameter_larger_than_default_data_size_limit�s


zMSMTPDChannelTest.test_MAIL_size_parameter_larger_than_default_data_size_limitcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesRCPT to:spam@examples503 Error: need MAIL command
)r$r9r#rrP)r
r
r
r�test_need_MAIL�s

zSMTPDChannelTest.test_need_MAILcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL from eggs@examples"501 Syntax: MAIL FROM: <address>
)r$r9r#rrP)r
r
r
r�test_MAIL_syntax_HELOs

z&SMTPDChannelTest.test_MAIL_syntax_HELOcCs*|jd�|jd�|j|jjjd�dS)NsEHLO examplesMAIL from eggs@examples9501 Syntax: MAIL FROM: <address> [SP <mail-parameters>]
)r$r9r#rrP)r
r
r
r�test_MAIL_syntax_EHLOs

z&SMTPDChannelTest.test_MAIL_syntax_EHLOcCs*|jd�|jd�|j|jjjd�dS)NsHELO examples
MAIL from:s"501 Syntax: MAIL FROM: <address>
)r$r9r#rrP)r
r
r
r�test_MAIL_missing_addresss

z*SMTPDChannelTest.test_MAIL_missing_addresscCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL from:<eggs@example>s250 OK
)r$r9r#rrP)r
r
r
r�test_MAIL_chevronss

z#SMTPDChannelTest.test_MAIL_chevronscCs*|jd�|jd�|j|jjjd�dS)NsEHLO examplesMAIL from:<>s250 OK
)r$r9r#rrP)r
r
r
r�test_MAIL_empty_chevronss

z)SMTPDChannelTest.test_MAIL_empty_chevronscCs:|jd�|jd�|j|jjjd�|j|jjd�dS)NsEHLO examples%MAIL from: <"Fred Blogs"@example.com>s250 OK
z"Fred Blogs"@example.com)r$r9r#rrPr)r
r
r
r�test_MAIL_quoted_localparts

z+SMTPDChannelTest.test_MAIL_quoted_localpartcCs:|jd�|jd�|j|jjjd�|j|jjd�dS)NsEHLO examples#MAIL from: "Fred Blogs"@example.coms250 OK
z"Fred Blogs"@example.com)r$r9r#rrPr)r
r
r
r�$test_MAIL_quoted_localpart_no_angles"s

z5SMTPDChannelTest.test_MAIL_quoted_localpart_no_anglescCs:|jd�|jd�|j|jjjd�|j|jjd�dS)NsEHLO examples/MAIL from: <"Fred Blogs"@example.com> SIZE=1000s250 OK
z"Fred Blogs"@example.com)r$r9r#rrPr)r
r
r
r�$test_MAIL_quoted_localpart_with_size(s

z5SMTPDChannelTest.test_MAIL_quoted_localpart_with_sizecCs:|jd�|jd�|j|jjjd�|j|jjd�dS)NsEHLO examples-MAIL from: "Fred Blogs"@example.com SIZE=1000s250 OK
z"Fred Blogs"@example.com)r$r9r#rrPr)r
r
r
r�.test_MAIL_quoted_localpart_with_size_no_angles.s

z?SMTPDChannelTest.test_MAIL_quoted_localpart_with_size_no_anglescCs4|jd�|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL from:eggs@examplesMAIL from:spam@examples 503 Error: nested MAIL command
)r$r9r#rrP)r
r
r
r�test_nested_MAIL4s



z!SMTPDChannelTest.test_nested_MAILcCs |jd�|j|jjjd�dS)NsVRFY eggs@examples:252 Cannot VRFY user, but will accept message and attempt s
delivery
sD252 Cannot VRFY user, but will accept message and attempt delivery
)r$r9r#rrP)r
r
r
r�	test_VRFY;s
zSMTPDChannelTest.test_VRFYcCs |jd�|j|jjjd�dS)NsVRFYs501 Syntax: VRFY <address>
)r$r9r#rrP)r
r
r
r�test_VRFY_syntaxAs
z!SMTPDChannelTest.test_VRFY_syntaxcCs |jd�|j|jjjd�dS)NsEXPNs502 EXPN not implemented
)r$r9r#rrP)r
r
r
r�test_EXPN_not_implementedFs
z*SMTPDChannelTest.test_EXPN_not_implementedcCs |jd�|j|jjjd�dS)NsMAIL from:<foo@example.com>s503 Error: send HELO first
)r$r9r#rrP)r
r
r
r�test_no_HELO_MAILKs
z"SMTPDChannelTest.test_no_HELO_MAILcCs4|jd�|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL From:eggs@examplesDATAs503 Error: need RCPT command
)r$r9r#rrP)r
r
r
r�test_need_RCPTPs



zSMTPDChannelTest.test_need_RCPTcCs4|jd�|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL From: eggs@examplesRCPT to eggs@examples 501 Syntax: RCPT TO: <address>
)r$r9r#rrP)r
r
r
r�test_RCPT_syntax_HELOWs



z&SMTPDChannelTest.test_RCPT_syntax_HELOcCs4|jd�|jd�|jd�|j|jjjd�dS)NsEHLO examplesMAIL From: eggs@examplesRCPT to eggs@examples7501 Syntax: RCPT TO: <address> [SP <mail-parameters>]
)r$r9r#rrP)r
r
r
r�test_RCPT_syntax_EHLO^s



z&SMTPDChannelTest.test_RCPT_syntax_EHLOcCs4|jd�|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL From: eggs@examplesRCPT to: <eggs@example>s250 OK
)r$r9r#rrP)r
r
r
r�test_RCPT_lowercase_to_OKes


z*SMTPDChannelTest.test_RCPT_lowercase_to_OKcCs |jd�|j|jjjd�dS)NsRCPT to eggs@examples503 Error: send HELO first
)r$r9r#rrP)r
r
r
r�test_no_HELO_RCPTks
z"SMTPDChannelTest.test_no_HELO_RCPTcCs�|jd�|jd�|j|jjjd�|jd�|j|jjjd�|jd�|j|jjjd�|jd�|j|jjjd�|j|jjd
d
dgdfg�dS)NsHELO examplesMAIL From:eggs@examples250 OK
sRCPT To:spam@examplesDATAs%354 End data with <CR><LF>.<CR><LF>
s
data
more
.�peer-address�	peer-portzeggs@examplezspam@examplez	data
more)r�r�)r$r9r#rrPr*r)r
r
r
r�test_data_dialogps





z!SMTPDChannelTest.test_data_dialogcCs>|jd�|jd�|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examples	DATA spams501 Syntax: DATA
)r$r9r#rrP)r
r
r
r�test_DATA_syntax�s




z!SMTPDChannelTest.test_DATA_syntaxcCs |jd�|j|jjjd�dS)Ns	DATA spams503 Error: send HELO first
)r$r9r#rrP)r
r
r
r�test_no_HELO_DATA�s
z"SMTPDChannelTest.test_no_HELO_DATAcCsF|jd�|jd�|jd�|jd�|jd�|j|jjd�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAs..
.
�.)r$r9r#�
received_data)r
r
r
r�$test_data_transparency_section_4_5_2�s




z5SMTPDChannelTest.test_data_transparency_section_4_5_2cCs^|jd�|jd�|jd�|jd�|jd�|jd�|j|jjd
d	d
dgdfg�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesRCPT To:ham@examplesDATAsdata
.�peer-address�	peer-portzeggs@examplezspam@examplezham@exampler)r�r�)r$r9r*r)r
r
r
r�test_multiple_RCPT�s






z#SMTPDChannelTest.test_multiple_RCPTcCsH|jd�|jd�|jd�|jd�|jd�|j|jjjd�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAsreturn status
.s250 Okish
)r$r9r#rrP)r
r
r
r�test_manual_status�s




z#SMTPDChannelTest.test_manual_statuscCs�|jd�|jd�|jd�|jd�|j|jjjd�|jd�|jd�|jd�|jd	�|j|jjddd
gdfg�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesRSETs250 OK
sMAIL From:foo@examplesRCPT To:eggs@examplesDATAsdata
.�peer-address�	peer-portzfoo@examplezeggs@exampler)r�r�)r$r9r#rrPr*r)r
r
r
r�	test_RSET�s








zSMTPDChannelTest.test_RSETcCs*|jd�|jd�|j|jjjd�dS)NsHELO examplesRSETs250 OK
)r$r9r#rrP)r
r
r
r�test_HELO_RSET�s

zSMTPDChannelTest.test_HELO_RSETcCs |jd�|j|jjjd�dS)NsRSET his501 Syntax: RSET
)r$r9r#rrP)r
r
r
r�test_RSET_syntax�s
z!SMTPDChannelTest.test_RSET_syntaxcCs |jd�|j|jjjd�dS)NsUNKNOWN_CMDs%500 Error: command "UNKNOWN_CMD" not srecognized
s1500 Error: command "UNKNOWN_CMD" not recognized
)r$r9r#rrP)r
r
r
r�test_unknown_command�s
z%SMTPDChannelTest.test_unknown_commandc�Cs�tjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj	}WdQRXtjdtf��d|j_	WdQRXtjdtf��|jj
}WdQRXtjdtf��d|j_
WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXtjdtf��|jj
}WdQRXtjdtf��d|j_
WdQRXtjdtf��|jj}WdQRXtjdtf��d|j_WdQRXdS)N��spam)rZcheck_warnings�DeprecationWarningr#Z_SMTPChannel__serverZ_SMTPChannel__lineZ_SMTPChannel__stateZ_SMTPChannel__greetingZ_SMTPChannel__mailfromZ_SMTPChannel__rcpttosZ_SMTPChannel__dataZ_SMTPChannel__fqdnZ_SMTPChannel__peerZ_SMTPChannel__connZ_SMTPChannel__addr)r
r�r
r
r�test_attribute_deprecations�sXz,SMTPDChannelTest.test_attribute_deprecationsN)Frrrrr2r$r_r0r`rbrcrdrerfrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
rr^s�

	r^zIPv6 not enabledc@seZdZdd�ZdS)�SMTPDChannelIPv6TestcCsbtt_t_tj|_tj�|_t_t	t
jdfddd�|_|jj
�\}}tj|j||dd�|_dS)NrrT)r)rr)rrrrrKrLrMrNrOrrrCr*r&r'r#)r
r+r,r
r
rr�s
zSMTPDChannelIPv6Test.setUpN)rrrrr
r
r
rr��sr�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�!SMTPDChannelWithDataSizeLimitTestcCsdtt_t_tj|_tj�|_t_t	t
jdfddd�|_|jj
�\}}tj|j||ddd�|_dS)NrrT)r� )rr)rrrrrKrLrMrNrOrrr%r*r&r'r#)r
r+r,r
r
rrs
z'SMTPDChannelWithDataSizeLimitTest.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2sz*SMTPDChannelWithDataSizeLimitTest.tearDowncCs|jjj|�|jj�dS)N)r#rr r!)r
r"r
r
rr$sz,SMTPDChannelWithDataSizeLimitTest.write_linecCs�|jd�|jd�|j|jjjd�|jd�|j|jjjd�|jd�|j|jjjd�|jd�|j|jjjd�|j|jjd
d
dgdfg�dS)NsHELO examplesMAIL From:eggs@examples250 OK
sRCPT To:spam@examplesDATAs%354 End data with <CR><LF>.<CR><LF>
s
data
more
.�peer-address�	peer-portzeggs@examplezspam@examplez	data
more)r�r�)r$r9r#rrPr*r)r
r
r
r�test_data_limit_dialogs





z8SMTPDChannelWithDataSizeLimitTest.test_data_limit_dialogcCs~|jd�|jd�|j|jjjd�|jd�|j|jjjd�|jd�|j|jjjd�|jd�|j|jjjd�dS)	NsHELO examplesMAIL From:eggs@examples250 OK
sRCPT To:spam@examplesDATAs%354 End data with <CR><LF>.<CR><LF>
s'This message is longer than 32 bytes
.s552 Error: Too much mail data
)r$r9r#rrP)r
r
r
r�$test_data_limit_dialog_too_much_data-s




zFSMTPDChannelWithDataSizeLimitTest.test_data_limit_dialog_too_much_dataN)rrrrr2r$r�r�r
r
r
rr�s
r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�SMTPDChannelWithDecodeDataFalsecCsZtt_t_tj|_tj�|_t_t	t
jdfd�|_|jj
�\}}tj|j||�|_dS)Nrr)rr)rrrrrKrLrMrNrOrrr%r*r&r'r#)r
r+r,r
r
rr>sz%SMTPDChannelWithDecodeDataFalse.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2Fsz(SMTPDChannelWithDecodeDataFalse.tearDowncCs|jjj|�|jj�dS)N)r#rr r!)r
r"r
r
rr$Ksz*SMTPDChannelWithDecodeDataFalse.write_linecCsP|jd�|jd�|jd�|jd�|jd�|jd�|j|jjd�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAsplain ascii textr4)r$r9r#r�)r
r
r
r�test_ascii_dataOs





z/SMTPDChannelWithDecodeDataFalse.test_ascii_datacCsZ|jd�|jd�|jd�|jd�|jd�|jd�|jd�|j|jjd�dS)	NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAsutf8 enriched text: żźćsand some plain asciir4s/utf8 enriched text: żźć
and some plain ascii)r$r9r#r�)r
r
r
r�test_utf8_dataXs






z.SMTPDChannelWithDecodeDataFalse.test_utf8_dataN)rrrrr2r$r�r�r
r
r
rr�<s
	r�c@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�SMTPDChannelWithDecodeDataTruecCsbtt_t_tj|_tj�|_t_t	t
jdfddd�|_|jj
�\}}tj|j||dd�|_dS)NrrT)r)rr)rrrrrKrLrMrNrOrrr%r*r&r'r#)r
r+r,r
r
rrhs
z$SMTPDChannelWithDecodeDataTrue.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2ssz'SMTPDChannelWithDecodeDataTrue.tearDowncCs|jjj|�|jj�dS)N)r#rr r!)r
r"r
r
rr$xsz)SMTPDChannelWithDecodeDataTrue.write_linecCsP|jd�|jd�|jd�|jd�|jd�|jd�|j|jjd�dS)NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAsplain ascii textr4zplain ascii text)r$r9r#r�)r
r
r
rr�|s





z.SMTPDChannelWithDecodeDataTrue.test_ascii_datacCsZ|jd�|jd�|jd�|jd�|jd�|jd�|jd�|j|jjd�dS)	NsHELO examplesMAIL From:eggs@examplesRCPT To:spam@examplesDATAsutf8 enriched text: żźćsand some plain asciir4u/utf8 enriched text: żźć
and some plain ascii)r$r9r#r�)r
r
r
rr��s






z-SMTPDChannelWithDecodeDataTrue.test_utf8_dataN)rrrrr2r$r�r�r
r
r
rr�fs
	r�c@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�&SMTPDChannelTestWithEnableSMTPUTF8TruecCsbtt_t_tj|_tj�|_t_t	t
jdfddd�|_|jj
�\}}tj|j||dd�|_dS)NrrT)r.)rr)rrrrrKrLrMrNrOrrr%r*r&r'r#)r
r+r,r
r
rr�s
z,SMTPDChannelTestWithEnableSMTPUTF8True.setUpcCs tj�tt_t_|jt_dS)N)rr1rrrLrK)r
r
r
rr2�sz/SMTPDChannelTestWithEnableSMTPUTF8True.tearDowncCs|jjj|�|jj�dS)N)r#rr r!)r
r"r
r
rr$�sz1SMTPDChannelTestWithEnableSMTPUTF8True.write_linecCs0|jd�|jdjd��|j|jjjd�dS)NsEHLO exampleu7MAIL from: <naïve@example.com> BODY=8BITMIME SMTPUTF8zutf-8s250 OK
)r$rir9r#rrP)r
r
r
r�1test_MAIL_command_accepts_SMTPUTF8_when_announced�s

zXSMTPDChannelTestWithEnableSMTPUTF8True.test_MAIL_command_accepts_SMTPUTF8_when_announcedcCs�|jd�x�dD]�}|jd|�|j|jjjdd�d�|jd�|j|jjjdd�d�|jd	�|j|jjjdd�d
�|jd�|dkr�|j|jjjd�q|j|jjjd
�qWdS)NsEHLO examplera�BODY=8BITMIME SMTPUTF8sMAIL from: <a@example> r�s250srcpt to:<b@example.com>sdatas354sc
.s250 OK
s250 SMTPUTF8 message okish
)rar�)r$r9r#rrP)r
Zmail_parametersr
r
r�test_process_smtputf8_message�s




zDSMTPDChannelTestWithEnableSMTPUTF8True.test_process_smtputf8_messagecCs�|jd�|jdjd��|j|jjjdd�d�|jdjd��|j|jjjdd�d�|jd�|j|jjjdd�d	�|jd
�|jd�|j|jjd
�dS)NsEHLO exampleu2MAIL From: naïve@examplé BODY=8BITMIME SMTPUTF8zutf-8rr�s250uRCPT To:späm@examplésDATAs354sutf8 enriched text: żźćr4)r$rir9r#rrPr�)r
r
r
rr��s



z5SMTPDChannelTestWithEnableSMTPUTF8True.test_utf8_datacCsn|jd�d
td�}|jdd|dd	�|j|jjjd
�|jdd|d	�|j|jjjd�dS)Nsehlo exampleir�
zmail from:<@example>sMAIL from:<r|r�s	@example>s500 Error: line too long
s250 OK
ii$)r$r�r9r#rrP)r
r�r
r
r�7test_MAIL_command_limit_extended_with_SIZE_and_SMTPUTF8�s

z^SMTPDChannelTestWithEnableSMTPUTF8True.test_MAIL_command_limit_extended_with_SIZE_and_SMTPUTF8cCs�|jd�dtd�}x�dD]�}|jd	||d
�|j|jjjdd�d
�|jd	||d�|j|jjjdd�d�|jd�|j|jjjdd�d�|jd�|j|jjjdd�d�|jd�|j|jjjdd�d�qWdS)Nsehlo exampleirr�zmail from:<@example>r|�b�csMAIL from:<s
a@example>rr�s500s	@example>s250srcpt to:<hans@example.com>sdatas354stest
.ii$)r|r�r�)r$r�r9r#rrP)r
r��charr
r
r�1test_multiple_emails_with_extended_command_length�s




zXSMTPDChannelTestWithEnableSMTPUTF8True.test_multiple_emails_with_extended_command_lengthN)rrrrr2r$r�r�r�r�r�r
r
r
rr��s

r�c@seZdZdd�ZdS)�MiscTestCasec	Cs*ddddddddd	h	}tj|t|d
�dS)NZprogramZDevnullrK�NEWLINEZ
COMMASPACEZDATA_SIZE_DEFAULTZusageZOptionsZ	parseargs)�	blacklist)rZcheck__all__r)r
r�r
r
r�test__all__�s
zMiscTestCase.test__all__N)rrrr�r
r
r
rr��sr��__main__)rGr:ZtestrrrrMrrrr�	ExceptionrrZTestCaserr3rBrJrTr^rHrIr�r�r�r�r�r�r�mainr
r
r
r�<module>s6"]%B`7*,X



Youez - 2016 - github.com/yon3zu
LinuXploit