python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_smtplib.cpython-311.opt-2.pyc

ejdddlZddlZddlmZddlmZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlmZmZddlmZddlmZddlmZddlmZdd	lmZej d
Z!ej dZ"ej#d
ej$Z$ej%dkrdZ&e&e"j'_&dZ(GddZ)Gdde)ej*Z+Gdde)ej*Z,dZ-dZ.dZ/Gddej*Z0Gddej*Z1Gddej*Z2Gd d!ej*Z3Gd"d#ej*Z4d$d%d&d'Z5d(Z6d)Z7d*d+gd,gd-Z8Gd.d/e9Z:Gd0d1e"j'Z;Gd2d3e"j<Z=Gd4d5ej*Z>Gd6d7e=Z?Gd8d9ej*Z@ed:d;<ZAGd=d>e;ZBGd?d@e=ZCGdAdBej*ZDeEdCkrejFdSdS)DN)EmailMessage)body_encode)supportmock_socket)hashlib_helper)
socket_helper)threading_helper)warnings_helper)MockasyncoresmtpdT)moduledarwincdSNselfs E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_smtplib.pyhandle_exptr'sc ||	|\}}d}|rO|dkrItjg|gg\}}}|r||}	||	d}|dz}|r|dkI|n#t$rYnwxYw||dS#||wxYw)Nir)listensetacceptselectsendcloseTimeoutError)
evtbufservconnaddrnrwesents
          rserverr+,sKKMMMGGIII[[]]
d
	a!eemB33GAq!
!yy~~$%%j
FA
	a!ee	





	

						

				s*B)A(C#)
B63C#5B66C##*D
c\eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)GeneralTestsc6tt_d|_dS)N)rsmtplibsocketportrs rsetUpzGeneralTests.setUpDs$			rc(tt_dSr)r1r0rs rtearDownzGeneralTests.tearDownHs
rc^d}d}||tj|dS)Nzabc
.jkl
foo
..bluezabc
..jkl
foo
...blue)assertEqualr0	quotedata)rteststrexpecteds   r
testQuoteDatazGeneralTests.testQuoteDataMs3-37#4W#=#=>>>>>rctjd|t|j}|dS)N220 Hola mundor
reply_withclientHOSTr2rrr@s  r
testBasic1zGeneralTests.testBasic1Rs:0111T49--rctjd|t|jd}||jd|dS)Nr=)z	127.0.0.1iM)source_address)rr?r@rAr2r7rErrBs  rtestSourceAddresszGeneralTests.testSourceAddressXsb0111T49,?AA.0DEEErctjd|td|j}|dS)Nr=:r>rBs  r
testBasic2zGeneralTests.testBasic2`sC0111dii899rctjd|t|jd}||jd|dS)Nr=testhost)local_hostname)rr?r@rAr2r7rLrrBs  rtestLocalHostNamezGeneralTests.testLocalHostNamefsW0111T49ZHH.
;;;rctjd|tjtjd|tjd	|t|j}tjdn#tjdwxYw||j	
d|dS)Nr=)rr?assertIsNonegetdefaulttimeoutsetdefaulttimeoutr7r@rAr2sock
gettimeoutrrBs  rtestTimeoutDefaultzGeneralTests.testTimeoutDefaultms0111+799:::%b)))688"===	0[[ty11F)$////K)$//////112666s7 B,,Cctjd|tjtjd	|t|jd}tjdn#tjdwxYw||j	
|dSNr=rOtimeout)rr?rPr1rQrRr@rAr2rSrTrrBs  rtestTimeoutNonezGeneralTests.testTimeoutNoneys0111&244555 $$$	+[[ty$[??F$T****F$T****&+0022333s"BBctjd|t5|t
|jdddddS#1swxYwYdS)Nr=rrX)rr?assertRaises
ValueErrorr@rAr2rs rtestTimeoutZerozGeneralTests.testTimeoutZeros0111


z
*
*	4	4KKdiK333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4s#AA#&A#ctjd|t|jd}||jd|dSrW)	rr?r@rAr2r7rSrTrrBs  rtestTimeoutValuezGeneralTests.testTimeoutValuesb0111T49b99//112666rctjd|}|dt	j5}|t|jdddn#1swxYwY|	tjdtj}|
||dS)N220 Hello worldrz	^connect:rr?r@set_debuglevelrcaptured_stderrconnectrAr2rrecompile	MULTILINEassertRegexgetvaluerr@stderrr:s    rtest_debuglevelzGeneralTests.test_debuglevels1222a   

$
&
&	,&NN4+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,:lBL99**H55555!A>>BBctjd|}|dt	j5}|t|jdddn#1swxYwY|	tjdtj}|
||dS)Nrbz#^\d{2}:\d{2}:\d{2}\.\d{6} connect: rcrls    rtest_debuglevel_2zGeneralTests.test_debuglevel_2s1222a   

$
&
&	,&NN4+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,:D l,,**H55555roN)__name__
__module____qualname__r3r5r;rCrFrIrMrUrZr^r`rnrrrrrr-r-Bs   
???



			444
666	6	6	6	6	6rr-ceZdZejZdS)SMTPGeneralTestsN)rsrtrur0SMTPr@rrrrwrws
\FFFrrwcteZdZejZejee	dddZ
fdZxZS)LMTPGeneralTestsAF_UNIXz test requires Unix domain socketcFd}tjd	|||j}tjdn#tjdwxYw||j|dS)N!/some/local/lmtp/delivery/programrb)	rr?r@r2rRrPrSrTr)r
local_hostr@s   r"testUnixDomainSocketTimeoutDefaultz3LMTPGeneralTests.testUnixDomainSocketTimeoutDefaults8
1222	0[[TY77F)$////K)$////&+0022333sAActd}|t5||dddddS#1swxYwYdS)Nr}rrX)superr^r\r]r@)rr~	__class__s  rr^z LMTPGeneralTests.testTimeoutZeros
!!!8



z
*
*	/	/KK
AK...	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/	/sA##A'*A')
rsrtrur0LMTPr@unittest
skipUnlesshasattrr1rr^
__classcell__rs@rrzrzsv
\FX335WXXYX/////////rrzc0|	ttdr
tj}ntj}d}tjr\|dkrV|dtj|r|n|dz}tjr|dkVn#t$rYnwxYw|s(tjd|t|dS#|s(tjd|t|wxYw)Npollir{Gz?rg?)
rrrrpoll2r
socket_mapis_setrr timesleep	close_all)r#serv_evt
client_evtpoll_funr&s     rdebugging_serverrsrLLNNN66""	%~HH}H!		a!eeHT8.///  ""



FA!		a!ee



  ""	JsOOOJJLLL  ""	JsOOOJJLLLs+BB/.D*/
B<9D*;B<<D**A+Fz&---------- MESSAGE FOLLOWS ----------
z&------------ END MESSAGE ------------
ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)DebuggingServerTestsNcjtj|_tj|_tjt_tj|_	tj|_|jt_tj|_tj|_t"j|_tjt"_t"t*dfdd|_|jjdd\|_|_|j|j|jf}tjt6||_|j|j|jdS)NrnowhereTdecode_datarqtargetargs) r	threading_setup
thread_keyr1getfqdnreal_getfqdnrsysstdout
old_stdoutioStringIOoutput	threadingEventrrr
DEBUGSTREAMold_DEBUGSTREAMDebuggingServerrAr#getsocknamehostr2Threadrthreadstartwaitclearr	serv_argss  rr3zDebuggingServerTests.setUps;*:<<"N$,*kmm[
!))
#/++$0KMM))4)_6:*<<	 $y/;;==bqbA	49Y
t?	&.>YOOO	


rc|jt_|j|jtj|j	|j
t_tj|jt_|`	|tj|jdSr)rr1rrrrrr	join_threadrrrrr
rrr
doCleanupsthreading_cleanuprrs rr5zDebuggingServerTests.tearDowns*
$T[111_

!!! 0K*DO<<<<rc|j}tjdd|tjtjzS)Nz(.*?)^X-Peer:\s*\S+\n(.*)z\1\2)flags)rrkrgsubriDOTALL)rtest_outputs  rget_output_without_xpeerz-DebuggingServerTests.get_output_without_xpeersEk**,,v2G!bi)?AAA	Arctjt|jdtj}|dSN	localhostrLrYr0rxrAr2rLOOPBACK_TIMEOUTquitrsmtps  r	testBasiczDebuggingServerTests.testBasic7|D$)K$+$<>>>		rctj}	tj|j|jdtj|j|f}||j	|
|j|j|f|
|jd|
dS#t$r3}|jtjkr|d|zd}~wwxYw)Nr)rLrYrEzcouldn't bind to source port %d)rfind_unused_portr0rxrr2rr
addCleanuprr7rErLrOSErrorerrno
EADDRINUSEskipTest)rsrc_portrr)s    rrFz&DebuggingServerTests.testSourceAddress"s 133	<	49[(/(@04	8/DFFFD
OODJ'''T049h2GHHHT0+>>>IIKKKKK			w%***

?(JKKK	sBB66
C3.C..C3ctjt|jdtj}||jd}||	||
dSNrrsOK)r0rxrAr2rrrrr7nooprrrr:s   rtestNOOPzDebuggingServerTests.testNOOP2n|D$)K$+$<>>>
###h///		rctjt|jdtj}||jd}||	||
dSr)r0rxrAr2rrrrr7rsetrrs   rtestRSETzDebuggingServerTests.testRSET:rrctjt|jdtj}||jd}||	||
dS)Nrr)rs
SIZE 33554432
HELP)r0rxrAr2rrrrr7ehlorrs   rtestELHOzDebuggingServerTests.testELHOBsn|D$)K$+$<>>>
###2h///		rc8tjt|jdtj}||jd}|d|	|
||dS)Nrr)isEXPN not implementedEXPN)r0rxrAr2rrrrputcmdr7getreplyrrs   rtestEXPNNotImplementedz+DebuggingServerTests.testEXPNNotImplementedKs|D$)K$+$<>>>
###1F(333		rctjt|jdtj}||j|t5}|
ddddn#1swxYwY|dt|j
|dS)Nrrzhelo
X-INJECTEDprohibited newline characters)r0rxrAr2rrrrr\r]rassertInstr	exceptionr)rrexcs   r&test_issue43124_putcmd_escapes_newlinez;DebuggingServerTests.test_issue43124_putcmd_escapes_newlineUs|D$)K$+$<>>>
###


z
*
*	,cKK*+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,

5s3=7I7IJJJ		s!BB
Bcbtjt|jdtj}||jd}||	d|||
d||dS)Nrr)s>Cannot VRFY user, but will accept message and attempt deliverynobody@nowhere.com)r0rxrAr2rrrrr7vrfyverifyrrs   rtestVRFYzDebuggingServerTests.testVRFY_s|D$)K$+$<>>>
###2#788(CCC%9::HEEE		rc6tjt|jdtj}||j|d}|	|||
dS)Nrr)isDuplicate HELO/EHLO)r0rxrAr2rrrrhelor7rrs   rtestSecondHELOz#DebuggingServerTests.testSecondHELOis}|D$)K$+$<>>>
###		0h///		rc
tjt|jdtj}||j||	d|
dS)Nrrs@Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY)r0rxrAr2rrrrr7helprrs  rtestHELPzDebuggingServerTests.testHELPtsv|D$)K$+$<>>>
###'G	H	H	H		rc*d}tjt|jdtj}||j|dd|tj
d||j
|j|jt$|dt&}||j|dS)NA test messagerrJohnSallyr
r0rxrAr2rrrrsendmailrrrrrrrrflush	MSG_BEGINMSG_ENDr7rkrmrmexpects    rtestSendzDebuggingServerTests.testSend|s|D$)K$+$<>>>
###

fgq)))	
4		
 )	111gg6--//99999rcPd}tjt|jdtj}||j|dd|tj
d||j
|j|jt$|ddt(}||j|dS)	NsA test messagerrrrrasciir)r0rxrAr2rrrrrrrrrrrrrrrdecoderr7rkrs    rtestSendBinaryz#DebuggingServerTests.testSendBinarys|D$)K$+$<>>>
###

fgq)))
4		
 )	188G+<+<+<+<ggF--//99999rc*d}tjt|jdtj}||j|dd|tj
d||j
|j|jt$|dt&}||j|dS)Nz.A test
.mes.sage.rrrrrrrrs    rtestSendNeedingDotQuotez,DebuggingServerTests.testSendNeedingDotQuotes!|D$)K$+$<>>>
###

fgq)))
4		
 )	111gg6--//99999rc0d}tjt|jdtj}||j|t5}|
dd|dddn#1swxYwY|dt|j
tjd|t"j}|d|dS)	Nwazzuuup
linetwoz
hi
X-INJECTEDr	hi@me.com
you@me.comz2prohibited newline characters: ehlo hi\nX-INJECTEDrz
X-INJECTED)r0rxrAr2rrrrr\r]rrrrrrrr
rrkassertNotIn)rrrrdebugouts     r$test_issue43124_escape_localhostnamez9DebuggingServerTests.test_issue43124_escape_localhostnames3
 |D$)<L$+$<>>>
###


z
*
*	8cMM+|Q777	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8

A
	
	
	

	
4		$--//x00000s#BBBcd}tjt|jdtj}||j|dd||	t5}|dddgdddn#1swxYwYt|j
}|d||d	|tjd
|t$j}|d||d||d
||d|dS)NrrrrrzX-OPTION
X-INJECTED-1zX-OPTION2
X-INJECTED-2rz.X-OPTION\nX-INJECTED-1 X-OPTION2\nX-INJECTED-2rzX-OPTIONz	X-OPTION2zX-INJECTED-1zX-INJECTED-2)r0rxrAr2rrrrrr\r]mailrrrrrrr
rrkr)rrrrmsgrs      rtest_issue43124_escape_optionsz3DebuggingServerTests.test_issue43124_escape_optionss
 |$)K,...	

###

k<333


z
*
*	ZcIIk$<>W#XYYY	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z	Z#-  

5s;;;

H#NNN
4		$--//X...h///22222222s:BB#&B#cd}tjt|jdtj}||j|dd|tj
d||j
|j|jt$|dt&}||j|t,j}t1jdt0j}|||dS)	Nrrrz<>rrrz^sender: <>$)r0rxrAr2rrrrrrrrrrrrrrrrr7rkr
rrgrhrirj)rrrrrsenders      rtestSendNullSenderz'DebuggingServerTests.testSendNullSenders)|D$)K$+$<>>>
###

dGQ'''
4		
 )	111gg6--//999$--//NBL996*****rctjjd}t	jt|jdtj	}|
|j||ddtjd||j|j|j|}|d=t.|d	t2}|||dS)
Nrrrrr	from_addrto_addrsrX-Peerr)emailmimetextMIMETextr0rxrAr2rrrrsend_messagerrrrrrrrrrr	as_stringrr7)rrrrrs     rtestSendMessagez$DebuggingServerTests.testSendMessagesJO$$%566|D$)K$+$<>>>
###!v@@@
4		

3355
hK )	1;;====''Bg.....rc4tjjd}d|d<d|d<d|d<d|d	<t	jt|jd
tj	}|
|j||tjd|||d	d|j|j|j|}|d
=|d	=t0|dt4}|||t6j}t=jdt<j }|!||dD]J}t=jd"|t<j }|!||KdS)Nrfoo@bar.comFromrToSally, FredCC?John Root <root@localhost>, "Dinsdale" <warped@silly.walks.com>Bccrrrr"r^sender: foo@bar.com$)rrFredzroot@localhostzwarped@silly.walks.com^recips: .*'{}'.*$)#r#r$r%r&r0rxrAr2rrrrr'rrrr7rrrrrrrrr(rr
rrkrgrhrirjformat	rrrrrrrr%to_addrs	         rtestSendMessageWithAddressesz1DebuggingServerTests.testSendMessageWithAddressessJO$$%566!&	$$T%|D$)K$+$<>>>
###!
4		5$?	@	@	@	

3355
hK
eH )	1;;====''Bg...$--//3R\BB6***/	0	0Dj!6!=!=d!C!C!#//GXw////		0	0rctjjd}d|d<d|d<t	jt|jdtj	}|
|j||tjd||j|j|j|}|d	=t.|d
t2}|||t6j}t=jdt<j }|!||dD]J}t=jd
"|t<j }|!||KdS)Nrr+r,John, Dinsdaler-rrrr"rr2rDinsdaler4#r#r$r%r&r0rxrAr2rrrrr'rrrrrrrrrrrr(rr7r
rrkrgrhrirjr5r6s	         r testSendMessageWithSomeAddressesz5DebuggingServerTests.testSendMessageWithSomeAddresses*sJO$$%566!&	"$|D$)K$+$<>>>
###!
4		
3355
hK )	1;;====''Bg...$--//3R\BB6***(	0	0Dj!6!=!=d!C!C!#//GXw////	0	0rcRtjjd}d|d<d|d<t	jt|jdtj	}|
|j||dd	
tjd||j|j|j|}|d=t.|d
t2}|||t6j}t=jdt<j }|!||dD]J}t=jd"|t<j }|#||Kt=jdt<j }	|!||	dS)Nrr+r,r:r-rrzjoe@example.comzfoo@example.netrrr"rz^sender: joe@example.com$r;r4z^recips: .*'foo@example.net'.*$)$r#r$r%r&r0rxrAr2rrrrr'rrrrrrrrrrrr(rr7r
rrkrgrhrirjr5assertNotRegex)
rrrrrrrr%r7recips
          r%testSendMessageWithSpecifiedAddressesz:DebuggingServerTests.testSendMessageWithSpecifiedAddressesGsJO$$%566!&	"$|D$)K$+$<>>>
###!'8CTUUU
4		
3355
hK )	1;;====''Bg...$--//7FF6***(	3	3Dj!6!=!=d!C!C!#//G'2222
=r|LL5)))))rctjjd}d|d<d|d<d|d<t	jt|jdtj		}|
|j||tjd
||j|j|j|}|d=t.|dt2}|||t6j}t=jd
t<j }|!||dD]J}t=jd"|t<j }|!||KdS)NrzBernard, Biancar,z#the_rescuers@Rescue-Aid-Society.comSenderr:r-rrrr"rz-^sender: the_rescuers@Rescue-Aid-Society.com$r;r4r=r6s	         rtestSendMessageWithMultipleFromz4DebuggingServerTests.testSendMessageWithMultipleFromfsJO$$%566%&	;("$|D$)K$+$<>>>
###!
4		
3355
hK )	1;;====''Bg...$--//KR\ZZ6***(	0	0Dj!6!=!=d!C!C!#//GXw////	0	0rc*tjjd}d|d<d|d<d|d<d|d	<d
|d<d|d
<d|d<d|d<t	jt|jdtj	}|
|j||tjd||j|j|j|d	=|d=|}|d=t.|dt2}|||t6j}t=jdt<j }|!||dD]J}t=jd"|t<j }|!||KdS)Nrr+r,rr-r.r/r0r1Thu, 1 Jan 1970 17:42:00 +0000Resent-Dateholy@grail.netResent-From&Martha <my_mom@great.cooker.com>, Jeff	Resent-Todoe@losthope.net
Resent-Bccrrrr"rz^sender: holy@grail.net$)zmy_mom@great.cooker.comJeffrMr4r=r6s	         rtestSendMessageResentz*DebuggingServerTests.testSendMessageResentsJO$$%566!&	$$T%;-+-A+,,|D$)K$+$<>>>
###!
4		

eH
lO3355
hK )	1;;====''Bg...$--//6EE6***K	0	0Dj!6!=!=d!C!C!#//GXw////	0	0rctjjd}d|d<d|d<d|d<d|d	<d
|d<d|d
<d|d<d|d<d|d<d|d<d|d
<t	jt|jdtj	}|
|j|t5||dddn#1swxYwY|dS)Nrr+r,rr-r.r/r0r1rGrHrIrJrKrLrMrNzThu, 2 Jan 1970 17:42:00 +0000rr)r#r$r%r&r0rxrAr2rrrrr\r]r'rrrs   r#testSendMessageMultipleResentRaisesz8DebuggingServerTests.testSendMessageMultipleResentRaisessGJO$$%566!&	$$T%;-+-A+,,;-)+C-|D$)K$+$<>>>
###


z
*
*	!	!a   	!	!	!	!	!	!	!	!	!	!	!	!	!	!	!

s<CC"%C")rsrtrumaxDiffr3r5rrrFrrrrrrrrr	r
rrrrr)r8r>rBrErPrSrrrrrsG6=== AAA
 			:::&::: :::"111(3332+++&///,"0"0"0H000:***>000<#0#0#0Jrrc eZdZdZdZdZdS)NonConnectingTestsctj}|tj|j|tj|jddS)Nztest msg)r0rxr\SMTPServerDisconnectedrrrs  rtestNotConnectedz#NonConnectingTests.testNotConnectedsX
|~~'8$)DDD'8)Z	1	1	1	1	1rc|ttjdd|ttjddS)Nrboguszlocalhost:bogus)r\rr0rxrs rtestNonnumericPortz%NonConnectingTests.testNonnumericPortsP'7<%w	0	0	0'7<+	-	-	-	-	-rctj5}||jddddS#1swxYwYdSr)r0rxrPrSrs  rtestSockAttributeExistsz*NonConnectingTests.testSockAttributeExistss\^^	)tdi(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)s<AAN)rsrtrurYr\r^rrrrVrVsA111---)))))rrVc eZdZdZdZdZdS)DefaultArgumentsTestsct|_d|jd<tj|_td|j_ttc|j_|j_dS)NPáolo <főo@bar.com>r,)OK)return_value)	rrr0rxrrrhas_extnrrs rr3zDefaultArgumentsTests.setUps^>>2LNN	;777	15.	DI...rcbd}|j|j|j|j||jjjddd|||jjjddd|dS)N)SMTPUTF8
BODY=8BITMIMErrrr'rr7rcall_args_list)rexpected_mail_optionss  rr)z%DefaultArgumentsTests.testSendMessages =	tx(((	tx(((+:1=a@C.	0	0	0+:1=a@C.	0	0	0	0	0rcdg}d}|j|jdd|||dg||jjjddd|dS)NSTARTTLS)rorhrirrjrk)rmail_optionsrms   rtestSendMessageWithMailOptionsz4DefaultArgumentsTests.testSendMessageWithMailOptionss"| I	txt\BBB
|444+:1=a@C.	0	0	0	0	0rN)rsrtrur3r)rqrrrr`r`sD@@@00000000rr`c eZdZdZdZdZdS)BadHELOServerTestsctt_tjdtj|_tj|_	|j	t_d|_
dS)Ns199 no hello for you!r/)rr0r1r?rrrrrrr2rs rr3zBadHELOServerTests.setUpsE$7888*kmm[
			rcJtt_|jt_dSr)r1r0rrrrs rr5zBadHELOServerTests.tearDowns_


rcv|tjtjt|jdddSNrrj)r\r0SMTPConnectErrorrxrAr2rs rtestFailingHELOz"BadHELOServerTests.testFailingHELOs8'2GL $)[!	=	=	=	=	=rN)rsrtrur3r5ryrrrrsrssA%%%=====rrscFeZdZddejzdzzdzZdZdZdZdS)	TooLongLineTestss250 OK.rq
ctj|_tj|_t
j|_|jt_tj
|_tjtj
tj|_|jdt#j|j|_|j|j|jf}tjt,||_|j|j|jdS)Nr)r	rrrrrrrrrrr!r1AF_INETSOCK_STREAMrS
settimeoutr	bind_portr2respdatarr+rrrr)rservargss  rr3zTooLongLineTests.setUp
s*:<<*kmm[
?$$M&.&2DEE		R   !+DI66	HdmTY7&f8DDD

rc|j|jt_tj|j|`|tj	|j
dSr)r!rrrrr	rrrrrrs rr5zTooLongLineTests.tearDownsX

_
$T[111K*DO<<<<rcv|tjtjt|jdddSrw)r\r0SMTPResponseExceptionrxrAr2rs rtestLineTooLongz TooLongLineTests.testLineTooLong"s8'7	;	;	;	;	;	;rN)	rsrtrur0_MAXLINErr3r5rrrrr{r{s]D7#33a785@H ===;;;;;rr{zJohn AzSally BzRuth C)Mr.A@somewhere.comMs.B@xn--fo-fka.comMrs.C@somewhereesle.com)rsomepasswordz<PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=rrr)zlist-1zlist-2ceZdZdS)ResponseExceptionN)rsrtrurrrrr4srrceZdZdZdZdZdZdZdZdZ	dZ
dZfdZfdZ
dZdZdZdd	Zdd
ZddZddZd
ZdZdZfdZfdZfdZfdZfdZdZxZS)SimSMTPChannelNrccdd|D|_tt|j|i|dS)Nc8g|]}d|S)z	250-{0}
)r5).0xs  r
<listcomp>z+SimSMTPChannel.__init__.<locals>.<listcomp>Cs&???!m""1%%???r)join_extrafeaturesrr__init__)rextra_featuresrkwrs    rrzSimSMTPChannel.__init__AsT gg??~???AA,nd##,d9b99999rc|j|jkr|j|j}tdt
|tjg|_	|	|nG#t$r:}|j|_||j
d|jYd}~nd}~wwxYwdStdS)NzData:)file )
smtp_stateAUTH_emptystringrreceived_linesprintreprr
rauth_objectrCOMMANDpush	smtp_code
smtp_errorrfound_terminator)rliner)rs   rrzSimSMTPChannel.found_terminatorGs?di''$))$*=>>D'4::E,=>>>>"$D
A  &&&&$
A
A
A"&,		Q[[[!,,?@@@@@@@@
A
F
  """""s"A88
B<0B77B<c|js|ddS|jr	d|jvr|ddS|j|ddS|}t
|dvr|ddSd|dd	d
z}	t|||_
n9#t$r,|d|YdSwxYw|j
|_|
t
|dkr|d
nddS)Nz503 Error: send EHLO firstrz(500 Error: command "AUTH" not recognizedz3503 Bad sequence of commands: already authenticated)rrqz/501 Syntax: AUTH <mechanism> [initial-response]z_auth_%sr-_zQ504 Command parameter not implemented: unsupported  authentication mechanism {!r}rqr)
seen_greetingr
extended_smtprauthenticated_usersplitlenlowerreplacegetattrrAttributeErrorr5rr)rargrauth_object_names    r	smtp_AUTHzSimSMTPChannel.smtp_AUTHUs!	II2333F!	V43F%F%FII@AAAF".IIE
G
G
GFyy{{t99F""IIGHHHF%Q

(?(?S(I(II	&t-=>>D			II77=v>N7O7O
Q
Q
QFF	)CIINNa=====sC((2DDc|r||_|dn|d|j|_dS)Nz235 Authentication Succeededz&535 Authentication credentials invalid)rrrr)ruservalids   r_authenticatedzSimSMTPChannel._authenticatednsI	@&*D#II45555II>???,rcvtj|ddS)Nrutf-8)base64decodebytesencoder)rstrings  r_decode_base64zSimSMTPChannel._decode_base64vs-!&--"8"899@@IIIrcd||ddS||}	|d^}}}nA#t$r4}|d||Yd}~dSd}~wwxYw|||tdkdS)Nz334 =535 Splitting response {!r} into user and password failed: {}r)rrrr]r5rsim_auth)rrlogpassrrpasswordr)s       r_auth_plainzSimSMTPChannel._auth_plainys;IIf))#..G
%,]]4%8%8"D((


		((.w(:(:<<<

h(1+&=>>>>>sA


B)BBc<||ddSt|ds1|||_|ddS||}||j|t
dk|`dS)Nz334 VXNlcm5hbWU6_auth_login_userz334 UGFzc3dvcmQ6r)rrrrrr)rrrs   r_auth_loginzSimSMTPChannel._auth_logins;II()))))122	&$($7$7$<$<D!II()))))**3//H 5x8A;7NOOO%%%rc0|ddS)Nz334 QnVHZ1liVWdHeQ==)rrrs  r_auth_buggyzSimSMTPChannel._auth_buggys	
		()))))rc\|/|dtdS||}	|\}}nA#t
$r4}|d||Yd}~dSd}~wwxYwt
jtd	d|t	dd
}||||kdS)Nz334 {}rFrrmd5)rr5sim_cram_md5_challengerrr]hmacHMACrr	hexdigestr)rrrrhashed_passr)valid_hashed_passs       r_auth_cram_md5zSimSMTPChannel._auth_cram_md5s+;IIhoo&<==>>>>>))#..G
$+MMOO!kk


		''-vgq'9'9;;;uuuuu
!%	""7++##$:;;BB7KK!!!y{{

k5F&FGGGGGsA  
B*)BBcjd}||jzdz}||||_d|_dS)NzH250-testhost
250-EXPN
250-SIZE 20000000
250-STARTTLS
250-DELIVERBY
z250 HELPT)rrrr)rrresps   r	smtp_EHLOzSimSMTPChannel.smtp_EHLOsB$
d))J6		$ !rc|tvr:|dt|dtj|dS|d|zdS)N250 rz550 No such user: %s)	sim_usersrr0	quoteaddrrs  r	smtp_VRFYzSimSMTPChannel.smtp_VRFYs`)IIIYs^^^W5Fs5K5K5KLMMMMMII,s233333rc|}|tvrt|}t|D]|\}}tj|}|t|dz
kr'|dt|d|V|dt|d|}dS|ddS)Nrz250-rrz550 No access for you!)r	sim_lists	enumerater0rrrr)rr	list_name	user_listr&
user_emailquoted_addrs       r	smtp_EXPNzSimSMTPChannel.smtp_EXPNsIIKK		!!!),I!*9!5!5
R
R
:%/
;;s9~~)))IIIYz-B-B-BKKPQQQQIIIYz-B-B-BKKPQQQQ
R
R
II./////rc|j*tt||dS||j|dSr)
quit_responserr	smtp_QUITrclose_when_donerrrs  rrzSimSMTPChannel.smtp_QUITs]%.$''11#66666IId()))  """""rc|j#t|dS||j|jr|dSdSr)
mail_responser	smtp_MAILr
disconnectrrs  rrzSimSMTPChannel.smtp_MAILsk%GGc"""""IId()))
'$$&&&&&
'
'rc|j#t|dS|xjdz
c_||j|jdz
dSNr)
rcpt_responser	smtp_RCPT
rcpt_countrrs  rrzSimSMTPChannel.smtp_RCPTs`%GGc"""F1		$$T_Q%6788888rcj|xjdz
c_t|dSr)
rset_countr	smtp_RSETrs  rrzSimSMTPChannel.smtp_RSETs11
#rc|j#t|dS||jdSr)
data_responser	smtp_DATArrs  rrzSimSMTPChannel.smtp_DATAsE%GGc"""""IId()))))rcrrrs rhandle_errorzSimSMTPChannel.handle_error
rr)rsrtrurrrrrrrrrrrrrrrrrrrrrrrrrrrrrs@rrr5sMMMMJJJ
D:::::#####>>>2'''JJJ????&&&&****
HHHH$	"	"	"444000#####'''''99999*****rrc0eZdZeZdZdZdZdZdZ	dS)
SimSMTPServercVg|_i|_tjj|g|Ri|dSr)_extra_features
_addressesr

SMTPServerrrrrs   rrzSimSMTPServer.__init__s;!
!$444444444rcX||j||||j|_dS)Nr)
channel_classr	_decode_data_SMTPchannelrr$r%s   rhandle_acceptedzSimSMTPServer.handle_accepteds7 .. $d)/++rc.||jd<||jd<dS)Nfromtos)r
)rpeermailfromrcpttosdatas     rprocess_messagezSimSMTPServer.process_messages "*!(rc:|j|dSr)r	append)rfeatures  radd_featurezSimSMTPServer.add_features##G,,,,,rcrrrs rrzSimSMTPServer.handle_errorrrN)
rsrtrurrrrrrrrrrrrsd"M555
+++
)))---rrceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
ejdd
dZejdd
dZdZdZdZdZdZdZdZdZdZdZdZdZdS)SMTPSimTestscptj|_tj|_tjt_tj|_	tj|_
ttdfdd|_
|j
jd|_|j
|j	|j
f}tjt"||_|j|j	|j	dSNrrTrrr)r	rrr1rrrrrrrrrAr#rr2rrrrrrrs  rr3zSMTPSimTests.setUp
s*:<<"N$,!))
#/++!4)_$OOO	I$002215	Y
t?	&.>YOOO	


rc|jt_|j|jtj|j	|`	|
tj|jdSr
rr1rrrrrr	rrrrrrs rr5zSMTPSimTests.tearDownr*
$T[111K*DO<<<<rctjt|jdtj}|dSrrrs  rrzSMTPSimTests.testBasic'rrctjt|jdtj}||jidddddd}|||j||D]*}|	|
|+||
d|dS)Nrrr20000000)expnsizestarttls	deliverbyrzunsupported-feature)
r0rxrAr2rrr7esmtp_featuresr
assertTruerfassertFalser)rrexpected_featuresks    rtestEHLOzSMTPSimTests.testEHLO-s|D$)K$+$<>>>	
,b111%'%/)+*,%'		
		,.?@@@"	.	.AOODMM!,,----'<==>>>		rc	tjt|jdtj}tD]W\}}dt|dtj	|df}|
|||Xd}dd|zdf}|
||||
dS)	Nrrrrrr&zNo such user: %s)r0rxrAr2rrritemsbytesrr7rrr)rr	addr_specnameexpected_knownuexpected_unknowns       rrzSMTPSimTests.testVRFYCs|D$)K$+$<>>> )00	C	COIt!5*.$$0A)0L0L0L*N)0$2$23N
TYYy11>BBBB "4q"8!@!@!I!IJ1'7888		rc	6tjt|jdtj}tD]\}}g}|D]9}|t|dtj
|:dtd|df}|
|||d}d}|
||||dS)	NrrrrrrzPSU-Members-List)r5sNo access for you!)r0rxrAr2rrrr6rrrr7rr7r*r)	rrlistnamemembersusersrr:r;r<s	         rtestEXPNzSMTPSimTests.testEXPNRs|D$)K$+$<>>>"+!2!2	B	BHgE
M
M	!g6G6J6J6JKLLLL!55)9)97#C#CDNTYYx00.AAAA71'7888		rc>|jdtjt|jdtj}|tdtd}|
|d|dS)N
AUTH PLAINrrrrsAuthentication Succeededr#rr0rxrAr2rrloginrr7rrrrs   rtestAUTH_PLAINzSMTPSimTests.testAUTH_PLAINb	l+++|D$)K$+$<>>>zz(1+x{33ABBB

rc>|jdtjt|jdtj}|tdtd}|
|d|dS)N
AUTH LOGINrrrrrDrFrHs   rtestAUTH_LOGINzSMTPSimTests.testAUTH_LOGINjrJrc||jdtjt|jdtj5}t\|_	|_
|d|d|j
d}||dddddS#1swxYwYdS)	NrLrrtest_auth_loginLOGINTinitial_response_okrDr#rr0rxrAr2rrrrrrauth
auth_loginr7rHs   r"testAUTH_LOGIN_initial_response_okz/SMTPSimTests.testAUTH_LOGIN_initial_response_okrs	l+++
\$	+")":<<<	G?C'/$DIt}II'(((99Wdo49PPDT#EFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GAB11B58B5c||jdtjt|jdtj5}t\|_	|_
|d|d|j
d}||dddddS#1swxYwYdS)	NrLrrrOrPFrQrDrSrHs   r%testAUTH_LOGIN_initial_response_notokz2SMTPSimTests.testAUTH_LOGIN_initial_response_notok{s	l+++
\$	+")":<<<	G?C'/$DIt}II'(((99Wdo59QQDT#EFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GrWcjdd
fd	}tjtjdtj}	t\|_	|_
|dd}tj
|5}|d|d	dddn#1swxYwY|dS#|wxYw)Nz
AUTH BUGGYc4d|dS)Ns
BuGgYbUgGyr)r7)	challengers r
auth_buggyz/SMTPSimTests.testAUTH_BUGGY.<locals>.auth_buggys]I6664rrrtest_auth_buggyz&^Server AUTH mechanism infinite loop.*BUGGYFrQr)r#rr0rxrAr2rrrrrrassertRaisesRegex
SMTPExceptionrTr)rr]rexpectcms`    rtestAUTH_BUGGYzSMTPSimTests.testAUTH_BUGGYsA	l+++						|$)K,


	'/$DIt}II'(((>F''(=vFF
J"		':5	III
J
J
J
J
J
J
J
J
J
J
J
J
J
J
J
JJLLLLLDJJLLLLs1AC B?3C ?CC CC  C6rT)opensslc>|jdtjt|jdtj}|tdtd}|
|d|dS)Nz
AUTH CRAM-MD5rrrrrDrFrHs   rtestAUTH_CRAM_MD5zSMTPSimTests.testAUTH_CRAM_MD5s	o...|D$)K$+$<>>>zz(1+x{33ABBB

rc>|jdtjt|jdtj}|tdtd}|
|d|dS)NzAUTH BOGUS PLAIN LOGIN CRAM-MD5rrrrrDrFrHs   rtestAUTH_multiplezSMTPSimTests.testAUTH_multiples	
	?@@@|D$)K$+$<>>>zz(1+x{33ABBB

rc	ddh}	tj|dn#t$rYnwxYw|D]/}|jd|0|D]}||5tj	t|jdtj
}|dtd	td
c|_|_d|dd
z}||t+||}||d|dddn#1swxYwYdS)NPLAINrPzCRAM-MD5zAUTH {})	mechanismrrfoorrauth_rrrD)hashlibraddr]r#rr5subTestr0rxrAr2rrrrrrrrrTrr7r)r	supportedrlrmethodrs      rtest_auth_functionzSMTPSimTests.test_auth_functionsg&		&KMMM
MM*%%%%			D	#	?	?II!!)"2"29"="=>>>>"
	
	I	22	
	
|D$)3>,3,DFFF		%   +3A;(	4= 9??#4#4#<#<S##F#FFyyGD&,A,ABB  'IJJJ

	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

	
	s/
<<C E88E<	?E<	cHtjt|jdtj}|\}}||d|d|j	|
|d|j	|t|j|d|j	|
|d|j	|
dS)Nrrrr+)r0rxrAr2rrrr7rr.rrrfehlo_or_helo_if_neededrrcodemessages    rtest_quit_resets_greetingz&SMTPSimTests.test_quit_resets_greetings|D$)+6$+$<>>>		
gs###

fd1222		!4555T49%%%!4555##%%%

fd1222		rctjt|j5}|\}}||ddddn#1swxYwY|tj|jdtjt|j5}|	dddn#1swxYwY|tj|jddS)Nrsfoo)
r0rxrAr2rr7r\rXrrrws    rtest_with_statementz SMTPSimTests.test_with_statementsD
\$	
*
*	(d IIKKMD'T3'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(	
'8$)VLLL
\$	
*
*	dJJLLL															'8$)VLLLLLs#.AA!A*CCCc|tj5}tjt|j5}|d|jj_	dddn#1swxYwYdddn#1swxYwY|
|jjd|
|jj
ddS)Nz421 QUIT FAILEDsQUIT FAILED)r\r0rrxrAr2rr#rrr7rrr)rerrorrs   r test_with_statement_QUIT_failurez-SMTPSimTests.test_with_statement_QUIT_failuresI


w<
=
=	IdDI..
I$		7H	&4
I
I
I
I
I
I
I
I
I
I
I
I
I
I
I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	I	
2C8883^DDDDDs5 B	&A2&B	2A6	6B	9A6	:B		B
B
ctjt|jdtj}|d|jj_	d|jj_
|tj5|
ddddddn#1swxYwY||jdS)Nrrz451 Requested action abortedTrrtest message)r0rxrAr2rrrr#rrrr\SMTPSenderRefusedrrPrSrs  rtest__rest_from_mail_cmdz%SMTPSimTests.test__rest_from_mail_cmds|D$)K$+$<>>>		/M	,,0	)


w8
9
9	;	;MM&'>:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;$)$$$$$sB&&B*-B*ctjt|jdtj}|d|jj_	|
tj5|ddddddn#1swxYwY|
|j||jjjddS)Nrrz421 closing connectionrrrr)r0rxrAr2rrrr#rrr\rrrPrSr7rrs  rtest_421_from_mail_cmdz#SMTPSimTests.test_421_from_mail_cmds|D$)K$+$<>>>		/G	,


w8
9
9	;	;MM&'>:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;$)$$$/:A>>>>>s1BBBctjt|jdtj}|ddg|jj_	|
tj5}|dgdddddn#1swxYwY|
|j||jjjd||jjdd	d
idS)Nrrz250 accepted421 closingr)rFrankGeorgerrr)r~sclosing)r0rxrAr2rrrr#rrr\SMTPRecipientsRefusedrrPrSr7rassertDictEqualrr)rrr's   rtest_421_from_rcpt_cmdz#SMTPSimTests.test_421_from_rcpt_cmds;|D$)K$+$<>>>		0>
/N	,


w<
=
=	PMM&">">">OOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	P$)$$$/:A>>>Q[-a07<M2NOOOOOs3BB BcGddt}||j_tjt
|jdtj}|	|
tj5|ddgddddn#1swxYwY|
|j||jjjddS)	NceZdZfdZxZS)=SMTPSimTests.test_421_from_data_cmd.<locals>.MySimSMTPChannelc|j|jkr|ddStdS)Nr)rDATArrr)rrs rrzNSMTPSimTests.test_421_from_data_cmd.<locals>.MySimSMTPChannel.found_terminatorsF?di//IIm,,,,,GG,,.....r)rsrtrurrrs@rMySimSMTPChannelrs8
/
/
/
/
/
/
/
/
/rrrrzJohn@foo.orgz
Sally@foo.orgrr)rr#rr0rxrAr2rrrr\
SMTPDataErrorrrPrSr7rr)rrrs   rtest_421_from_data_cmdz#SMTPSimTests.test_421_from_data_cmds9	/	/	/	/	/~	/	/	/#3	|D$)K$+$<>>>		


w4
5
5	M	MMM.?*;^LLL	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M$)$$$/:A>>>>>s?B$$B(+B(c	tjt|jdtj}||j||	|j
||d|
tj|jdddddg	|
tj|jdddg
dS)Nrrsmtputf8rrrrirhrpoptions)r0rxrAr2rrrrrr/
does_esmtpr0rfr\SMTPNotSupportedErrorrrrs  r4test_smtputf8_NotSupportedError_if_no_server_supportzASMTPSimTests.test_smtputf8_NotSupportedError_if_no_server_supports|$)K,...	

###		(((z22333)MGR
.K		M	M	M	
)Iv'D		F	F	F	F	Frctjt|jdtj}||j|t|j
ddd|t|jddS)NrrAliceuBöbruÄlice)r0rxrAr2rrrrr\UnicodeEncodeErrorrrrs  r"test_send_unicode_without_SMTPUTF8z/SMTPSimTests.test_send_unicode_without_SMTPUTF8%s}|$)K,...	

###,dmWfbQQQ,diBBBBBrcft}d|d<d|d<d|d<tjt|jdt
j}||j|	tj
5||ddddS#1swxYwYdS)	Nrbr,r<r-Nudge nudge, wink, wink ὠ9Subjectrr)rr0rxrAr2rrrrr\rr')rrrs   r9test_send_message_error_on_non_ascii_addrs_if_no_smtputf8zFSMTPSimTests.test_send_message_error_on_non_ascii_addrs_if_no_smtputf8-snn-FD	:I|$)K,...	

###


w<
=
=	#	#c"""	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#sB&&B*-B*c"tjt|jdtj}||jt}tj
d|d<tj
d|d<||
|i||jjdd||jjd	d
gdS)Nrr)uMichaëlmichael@example.comr,)uRenérene@example.comr-rrrr)r0rxrAr2rrrrrr#utils
formataddrrr'r7r#r
)rrrys   r1test_name_field_not_included_in_envelop_addressesz>SMTPSimTests.test_name_field_not_included_in_envelop_addresses;s|$)K,...	

###..+001TUU../LMM
T..w77<<<-f57LMMM-e47I6JKKKKKrN)rsrtrur3r5rr3rrArIrMrVrYrdrrequires_hashdigestrgrirtrzr|rrrrrrrrrrrrr!r!s$	=	=	=,


 GGGGGG((^'t<<<=<(^'t<<<=<,


MMMEEE%%%???	P	P	P??? FFF CCC###
L
L
L
L
Lrr!c&eZdZdZdZ		ddZdS)SimSMTPUTF8ServercLddg|_tjj|g|Ri|dS)Nrh8BITMIME)r	r
rrrs   rrzSimSMTPUTF8Server.__init__Ms;!+J7
!$444444444rcd||j||||j|j|_dS)Nrenable_SMTPUTF8)rr	rrrrs   rrz!SimSMTPUTF8Server.handle_acceptedTs= .. $d) 0/

rNcZ||_||_||_||_||_||_dSr)	last_peer
last_mailfromlast_rcpttoslast_messagelast_mail_optionslast_rcpt_options)rrrrrrprcpt_optionss       rrz!SimSMTPUTF8Server.process_message[s7%# !-!-r)NN)rsrtrurrrrrrrrKsP555


KOJN......rrc6eZdZdZdZdZdZdZdZdZ	dS)SMTPUTF8SimTestsNcrtj|_tj|_tjt_tj|_	tj|_
ttdfddd|_
|j
jd|_|j
|j	|j
f}tjt"||_|j|j	|j	dS)NrrFTrrr)r	rrr1rrrrrrrrrAr#rr2rrrrrrrs  rr3zSMTPUTF8SimTests.setUpis*:<<"N$,!))
#/++%tQi276:<<<	I$002215	Y
t?	&.>YOOO	


rc|jt_|j|jtj|j	|`	|
tj|jdSrr%rs rr5zSMTPUTF8SimTests.tearDown}r&rc>tjt|jdtj}||j||	|j
|	|ddS)Nrrr)r0rxrAr2rrrrrr/rrfrs  r$test_test_server_supports_extensionsz5SMTPUTF8SimTests.test_test_server_supports_extensionss|$)K,...	

###		(((

j1122222rctdd}tjt|jdt
j}||j|	dd|ddg	|
|jjd|
|jj
dg|
|jj||d|jj|d|jj|
|jjgdS)
N$¡a test message containing unicode!rrruJőhnuSállyrirhr)rr0rxrAr2rrrrrr7r#rrrrrrrRs   r,test_send_unicode_with_SMTPUTF8_via_sendmailz=SMTPUTF8SimTests.test_send_unicode_with_SMTPUTF8_via_sendmails"299'BB|$)K,...	

###

gx$3Z#@		B	B	B0':::/(<<</333

oty'BCCC

j$)"=>>>4b99999rcddd}tjt|jdt
j}||j|	|
|dddgd	|
|d
d	|
|
|d	|
|jjd|
|jjd
g|
|jj||d|jj|d|jj|
|jjgdS)NrrrruJőrirhrruJános)rr0rxrAr2rrrrrr7rrcptrr#rrrrrrrRs   r1test_send_unicode_with_SMTPUTF8_via_low_level_APIzBSMTPUTF8SimTests.test_send_unicode_with_SMTPUTF8_via_low_level_APIsz299'BB|$)K,...	

###		IIeoz%BICC				
8,,l;;;1|4440%888/(<<</333

oty'BCCC

j$)"=>>>4b99999rct}d|d<d|d<d|d<|dtjd}t	jt|jd	tj	
}|
|j||
|i||jjd||jjdg||jj||d|jj|d
|jj||jjgdS)Nrbr,r<r-rru1oh là là, know what I mean, know what I mean?

u<            From: Páolo <főo@bar.com>
            To: Dinsdale
            Subject: Nudge nudge, wink, wink ὠ9
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit
            MIME-Version: 1.0

            oh là là, know what I mean, know what I mean?
            rrufőo@bar.comrirh)rset_contenttextwrapdedentr0rxrAr2rrrrr7r'r#rrrrrrr)rrr:rs    r2test_send_message_uses_smtputf8_if_addrs_non_asciizCSMTPUTF8SimTests.test_send_message_uses_smtputf8_if_addrs_non_asciisfnn-FD	:I	MNNN?	$		|$)K,...	

###**3//4440.AAA/*>>>/6688(CCC

oty'BCCC

j$)"=>>>4b99999r)
rsrtrurTr3r5rrrrrrrrressG(	=	=	=333
:
:
::::&:::::rrspsudoesnotexistr)eolceZdZdZdS)!SimSMTPAUTHInitialResponseChannelc
|}|ddkr;t|dkr(|dtkr|ddS|ddS)Nrplainrqrz235 Okz571 Bad authentication)rrrEXPECTED_RESPONSEr)rrrs   rrz+SimSMTPAUTHInitialResponseChannel.smtp_AUTHsyyy{{7==??g%%4yyA~~7///IIh'''F		*+++++rN)rsrtrurrrrrrs#,,,,,rrceZdZeZdS) SimSMTPAUTHInitialResponseServerN)rsrtrurrrrrrrs5MMMrrc&eZdZdZdZdZdZdS)SMTPAUTHInitialResponseSimTestscptj|_tj|_tjt_tj|_	tj|_
ttdfdd|_
|j
jd|_|j
|j	|j
f}tjt"||_|j|j	|j	dSr#)r	rrr1rrrrrrrrrAr#rr2rrrrrrrs  rr3z%SMTPAUTHInitialResponseSimTests.setUps*:<<"N$,!))
#/++4
1ID:::	I$002215	Y
t?	&.>YOOO	


rc|jt_|j|jtj|j	|`	|
tj|jdSrr%rs rr5z(SMTPAUTHInitialResponseSimTests.tearDownr&rc|jdtjt|jdtj}|dd|	dS)NrCrrpsudoesnotexist)
r#rr0rxrAr2rrrGrrs  r%testAUTH_PLAIN_initial_response_loginzESMTPAUTHInitialResponseSimTests.testAUTH_PLAIN_initial_response_loginsa	l+++|D$)K$+$<>>>

5.)))

rc>|jdtjt|jdtj}d|_d|_	|
d|j\}}||
|ddS)NrCrrrrrrE)r#rr0rxrAr2rrrrrT
auth_plainrr7)rrrxresponses    r$testAUTH_PLAIN_initial_response_authzDSMTPAUTHInitialResponseSimTests.testAUTH_PLAIN_initial_response_auths	l+++|D$)K$+$<>>>	&
7DO<<h

s#####rN)rsrtrur3r5rrrrrrrsP&	=	=	=$$$$$rr__main__)Gremail.mime.textr#
email.messageremail.base64mimer
encode_base64email.utilsrorr1r0rrgrrrrrrrtestrrtest.supportrrr	r

unittest.mockrimport_deprecatedrr
requires_working_socketrAplatformrSMTPChannelr+r-TestCaserwrzrrrrrVr`rsr{rrrr	Exceptionrrrrr!rrrrrrrsmainrrr<module>rsc



&&&&&&999999



								







%%%%%%%%''''''&&&&&&))))))((((((-?,Z88))'22 t,,,,<8


$/E!,`6`6`6`6`6`6`6`6F|X%6
/////|X%6///,>
6	
3SSSSS8,SSSj)))))*)))600000H-0008=====*===&;;;;;x(;;;@#+#,'/

	
2;+,EF,.

	
)((((	(((uuuuuU&uuupE$6@L@L@L@L@L8$@L@L@LF
.....
...4l:l:l:l:l:x(l:l:l:^"M"8bAAA
,
,
,
,
,
,
,
,66666}666.$.$.$.$.$h&7.$.$.$bzHMOOOOOr