Plan 9 from Bell Labs’s /usr/web/sources/contrib/jas/root/sys/lib/python2.7/email/test/test_email.pyo

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


��Qc@s(ddlZddlZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
Z
ddlmZddl
mZmZmZddlmZmZddlmZmZddlmZddlmZdd	lmZdd
lmZddlm Z ddl!m"Z"dd
l#m$Z$ddl
m%Z%ddl
m&Z&ddl
m'Z'ddl
m(Z(ddl
m)Z)ddl
m*Z*ddl+m,Z,m-Z-ddl.m/Z0dZ1dZ2dZ3dd�Z4dej5fd��YZ6de6fd��YZ7dej5fd ��YZ8d!e6fd"��YZ9d#ej5fd$��YZ:d%ej5fd&��YZ;d'ej5fd(��YZ<d)ej5fd*��YZ=d+e6fd,��YZ>d-e6fd.��YZ?d/ej5fd0��YZ@d1e6fd2��YZAd3e6fd4��YZBd5e6fd6��YZCd7e6fd8��YZDd9e6fd:��YZEd;ej5fd<��YZFd=ej5fd>��YZGd?ej5fd@��YZHdAe6fdB��YZIdCe6fdD��YZJdEe6fdF��YZKdG�ZLdH�ZMdI�ZNeOdJkr$ejPdKdL�ndS(Mi�N(tStringIO(tCharset(tHeadert
decode_headertmake_header(tParsertHeaderParser(t	GeneratortDecodedGenerator(tMessage(t	MIMEAudio(tMIMEText(t	MIMEImage(tMIMEBase(tMIMEMessage(t
MIMEMultipart(tUtils(tErrors(tEncoders(t	Iterators(t
base64MIME(t
quopriMIME(tfindfiletrun_unittest(t__file__s
tt trcCs1tjjtjjt�d|�}t||�S(Ntdata(tostpathtjointdirnametlandmarktopen(tfilenametmodeR((s+/sys/lib/python2.7/email/test/test_email.pytopenfile-s$t
TestEmailBasecBseZd�Zd�ZRS(cCs}||kryt|�}t|�}tj|j�|j��}t�}|tItj|�IJ|j|j��ndS(s6Like assertEqual except use ndiff for readable output.N(	tstrtdifflibtndifft
splitlinesRtNLRtfailureExceptiontgetvalue(tselftfirsttsecondtsfirsttssecondtdifftfp((s+/sys/lib/python2.7/email/test/test_email.pytndiffAssertEqual5s	cCs7tt|��}ztj|�}Wd|j�X|S(N(R%Rtemailtmessage_from_filetclose(R.R#R4tmsg((s+/sys/lib/python2.7/email/test/test_email.pyt_msgobj?s
(t__name__t
__module__R5R:(((s+/sys/lib/python2.7/email/test/test_email.pyR&4s	
tTestMessageAPIcBseZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'd&�Z(d'�Z)d(�Z*d)�Z+d*�Z,d+�Z-d,�Z.d-�Z/d.�Z0d/�Z1d0�Z2d1�Z3d2�Z4d3�Z5d4�Z6d5�Z7d6�Z8d7�Z9d8�Z:d9�Z;RS(:cCsT|j}|jd�}||jd�dddg�||jdd�d�dS(Ns
msg_20.txttccsccc@zzz.orgsddd@zzz.orgseee@zzz.orgtxxsn/a(tassertEqualR:tget_all(R.teqR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_allKs	cCsL|j}t�}||j�d�td�}|j|�||dd�||j�d�||dd�||jd�d�||dd	�||j�jd�|jd�||j�d�||dd�t�}d
|d<d|d
<d|d<|j|�||dd
�||dd�||dd�dS(Ns
iso-8859-1smime-versions1.0s
text/plainscontent-types text/plain; charset="iso-8859-1"tcharsetscontent-transfer-encodingsquoted-printables2.0sMIME-Versionstext/x-weirdsContent-Typesquinted-puntablesContent-Transfer-Encodings"text/x-weird; charset="iso-8859-1"(	R@R	tget_charsettNoneRtset_charsettget_content_typet	get_paramt
input_charset(R.RBR9RD((s+/sys/lib/python2.7/email/test/test_email.pyttest_getset_charsetQs,		

	



cCsJ|j}t�}|jd�||j�jd�||dd�dS(Nsus-asciiscontent-typestext/plain; charset="us-ascii"(R@R	RGRERJ(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_charset_from_stringks
		
cCsBt�}td�}|jd|�|j|j�jd�dS(Ns
iso-8859-1sThis is a string payload(R	Rtset_payloadR@RERJ(R.R9RD((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_payload_with_charsetrs	c
Cs�|j}|jd�}|j�}||dddddg�|jd�}|jd�}||dddddg�|jd�}|j�}||dddddd	ddg�dS(
Ns
msg_08.txtsus-asciis
iso-8859-1s
iso-8859-2skoi8-rs
msg_09.txttdingbats
msg_12.txts
iso-8859-3(R@R:tget_charsetsRF(R.RBR9tcharsets((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_charsetsxs	
cCs�|j}|jd�}g|j�D]}|j�^q%}||ddg�|jd�}|jd�}||j�d�dS(Ns
msg_04.txtsmsg.txts
msg_07.txtisdingusfish.gif(R@R:tget_payloadtget_filename(R.RBR9tpt	filenamestsubpart((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_filename�s	%cCsT|j}|jd�}g|j�D]}|j�^q%}||ddg�dS(Ns
msg_44.txtsmsg.txt(R@R:RSRT(R.RBR9RURV((s+/sys/lib/python2.7/email/test/test_email.pyt%test_get_filename_with_name_parameter�s	%cCs/|j}|jd�}||j�d�dS(Ns
msg_07.txttBOUNDARY(R@R:tget_boundary(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_boundary�s	cCs�|j}|jd�}|jd�|j�d\}}||j�d�||d�|jd�}|jd�|j�d\}}||j�d�||d�|jd�}|jtj|jd�dS(	Ns
msg_01.txtRZiscontent-types3text/plain; charset="us-ascii"; boundary="BOUNDARY"s
msg_04.txts$multipart/mixed; boundary="BOUNDARY"s
msg_03.txt(R@R:tset_boundarytitemstlowertassertRaisesRtHeaderParseError(R.RBR9theadertvalue((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_boundary�s	



cCsZtd�}|j|j�ddd�|j�|j|j�ddd d�dS(Ns	form-dataiismultipart/form-datai!s!multipart/form-data; boundary="==(RR@R^t	as_string(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_make_boundary�s

cCs�ttd��}|j�}tjj�}|j|�}t�}tjj|t	d�}|j
|t�|j|j
�|�dS(Ns
msg_46.txti(R%RtreadR6RRtparsestrRRtTruetflattentFalseR@R-(R.R4tmsgdatatparserR9touttgen((s+/sys/lib/python2.7/email/test/test_email.pyttest_message_rfc822_only�s	cCs�|j}|jd�}||jdt�d�||jd�jdt�d�||jd�jdt�d�||jd�jdt�d�||jd	�jdt�d
�||jd�jdt�d�dS(
Ns
msg_10.txttdecodeis This is a 7bit encoded message.
is-�his is a Quoted Printable encoded message!
is!This is a Base64 encoded message.is"This is a Base64 encoded message.
is/This has no Content-Transfer-Encoding: header.
(R@R:RSRiRF(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_decoded_payload�s	cCs}|j}t�}|jd�x1d
D])}||d<||jdt�d�q&W|jd	�||jdt�d	�dS(Ns$begin 666 -
+:&5L;&\@=V]R;&0 
 
end
s
x-uuencodetuuencodetuuesx-uuescontent-transfer-encodingRqshello worldtfoo(s
x-uuencodeRsRtsx-uue(R@R	RMRSRi(R.RBR9tcte((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_decoded_uu_payload�s		



cCstt�}|jd�d|d<tj}z$t�t_}|jdt�Wd|t_X|j|j�d�dS(Ns%begin 664 foo.txt
%<W1F=0000H 
 
end
s
x-uuencodesContent-Transfer-EncodingRqR(	R	RMtsyststderrRRSRiR@R-(R.R9t
old_stderrtsfp((s+/sys/lib/python2.7/email/test/test_email.pyt$test_decode_bogus_uu_payload_quietly�s	

	
cCs{|j}|jd�}td�}z|j�}Wd|j�Xt�}t|�}|j|�||j�|�dS(Ns
msg_07.txts
msg_17.txt(	R@R:R%RgR8RRRjR-(R.RBR9R4ttexttstg((s+/sys/lib/python2.7/email/test/test_email.pyttest_decoded_generator�s		
cCs�t�}d|d<d|d<|jd|k�|jd|k�|jd|k�|jd|k�|jd|k�|jd|k�dS(	NtMetFromtYouttotfromtFROMtTotTO(R	t
assertTrue(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest__contains__	s	

cCs�|j}|jd�}td�}z|j�jdd�}Wd|j�X|||j��t|�}|jd�}|j	|dj
d��||tj|d��dS(Ns
msg_01.txts	Rs
isFrom i(
R@R:R%RgtreplaceR8ReR'tsplitR�t
startswithR+R(R.RBR9R4R}tfullreprtlines((s+/sys/lib/python2.7/email/test/test_email.pyttest_as_strings	
cCs,tjd�}|j|jd�d�dS(NsContent-Type: blarg; baz; boo
tbazR(R6tmessage_from_stringR@RI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_bad_param,scCs)tjd�}|j|j�d�dS(Ns
From: foo
(R6R�R@RTRF(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_missing_filename0scCs)tjd�}|j|j�d�dS(Ns%Content-Disposition: blarg; filename
R(R6R�R@RT(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_bogus_filename4s	cCs)tjd�}|j|j�d�dS(Ns
From: foo
(R6R�R@R[RF(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_missing_boundary9scCs�|j}tjd�}||jdd�d
ddg�tjd
�}||jdd�dddg�||j�d�tjd�}||jdd�dddg�dS(Ns&X-Header: foo=one; bar=two; baz=three
Rbsx-headerRutonetbarttwoR�tthrees X-Header: foo; bar=one; baz=two
Rs"X-Header: foo; bar="one"; baz=two
(sfooR�(R�R�(sbazR�(sfooR(R�R�(sbazR�(sfooR(R�R�(sbazR�(R@R6R�t
get_paramsRF(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_params=s				cCs0t�}d|d<|j|jd�d�dS(Ns>Content-Type: Multipart/mixed; boundary = "CPIMSSMTPC06p5f3tG"sContent-TypetboundarytCPIMSSMTPC06p5f3tG(R	R@RI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_param_liberalMs	
cCs�|j}tjd�}||jddd�d�||jddd�d�||jd�d�tjd�}||jddd�d	�||jddd�d
�||jddd�d�dS(Ns&X-Header: foo=one; bar=two; baz=three
R�Rbsx-headerR�tquuzs"X-Header: foo; bar="one"; baz=two
RuRR�R�(R@R6R�RIRF(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_paramRs			cCs5|jd�}|j|jd�jd�d�dS(Ns
msg_22.txtitnames
wibble.JPG(R:R@RSRI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt'test_get_param_funky_continuation_linescscCsKtjd�}|j|jd�d�|j|jddt�d�dS(Ns4Content-Type: image/pjpeg; name="Jim&amp;&amp;Jill"
R�sJim&amp;&amp;Jilltunquotes"Jim&amp;&amp;Jill"(R6R�R@RIRk(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt#test_get_param_with_semis_in_quotesgs
	cCsTtjd�}|j|jd�d�tjd�}|j|jd�d�dS(Ns5Content-Type: foo; bar*0="baz\"foobar"; bar*1="\"baz"R�sbaz"foobar"baz(R6R�R@RI(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_param_with_quotesns		cCsktjd�}|j|jd��|j|jd��|j|jd��|j|jd��dS(NsHeader: existsRbRtHEADERtheaderi(R6R�R�thas_keytassertFalse(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_has_keyvs
cCs�|j}t�}|jdd�||jd�d�|jdd�||jd�d�||jddt�d�||j�d
ddg�||jdt�dddg�|jdd
dd�||jddd�d
�dS(NRDsiso-2022-jpt
importances
high valueR�s"high value"s
text/plainRs
"iso-2022-jp"siso-9999-xxRbsX-Jimmy(s
text/plainR(scharsetsiso-2022-jp(R�s
high value(s
text/plainR(scharsets
"iso-2022-jp"(R�s"high value"(R@R	t	set_paramRIRkR�(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_param}s		

cCs�|j}|jd�}||j�dd	d
g�|jd�}|jd�||j�ddg�|jd|�||j�d
dd|fg�dS(Ns
msg_05.txtsmultipart/reportRsreport-typesdelivery-statusR�s%D1690A7AC1.996856090/mail.example.com(smultipart/reportR(sreport-typesdelivery-status(sboundarys%D1690A7AC1.996856090/mail.example.com(smultipart/reportR(sboundarys%D1690A7AC1.996856090/mail.example.com(smultipart/reportR(sboundarys%D1690A7AC1.996856090/mail.example.com(R@R:R�RIt	del_paramR�(R.RBR9told_val((s+/sys/lib/python2.7/email/test/test_email.pyttest_del_param�s	


cCsGt�}|jdddd�|jdd�|j|dd�dS(NsContent-Dispositiont
attachmentR#sbud.gifscontent-disposition(R	t
add_headerR�R@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_del_param_on_other_header�s	cCs�|j}t�}|jt|jd�|jd�||dd�|jdd�||dd�|jd�||dd�dS(	NR}s
text/plainscontent-typeRDsus-asciistext/plain; charset="us-ascii"s	text/htmlstext/html; charset="us-ascii"(R@R	R`t
ValueErrortset_typeR�(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt
test_set_type�s		

cCs;t�}d|d<|jdd�|j|dd�dS(Ns
text/plainsX-Content-Typesapplication/octet-streamsx-content-type(R	R�R@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_set_type_on_other_header�s	
cCs#t�}|j|j�d�dS(Ns
text/plain(R	R@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_content_type_missing�s	cCs0t�}|jd�|j|j�d�dS(Nsmessage/rfc822(R	tset_default_typeR@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_get_content_type_missing_with_default_type�s	
cCs2|jd�}|j|jd�j�d�dS(Ns
msg_30.txtismessage/rfc822(R:R@RSRH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt+test_get_content_type_from_message_implicit�scCs2|jd�}|j|jd�j�d�dS(Ns
msg_28.txtismessage/rfc822(R:R@RSRH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt+test_get_content_type_from_message_explicit�scCs)|jd�}|j|j�d�dS(Ns
msg_03.txts
text/plain(R:R@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt6test_get_content_type_from_message_text_plain_implicit�scCs)|jd�}|j|j�d�dS(Ns
msg_01.txts
text/plain(R:R@RH(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt6test_get_content_type_from_message_text_plain_explicit�scCs#t�}|j|j�d�dS(NR}(R	R@tget_content_maintype(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt!test_get_content_maintype_missing�s	cCs0t�}|jd�|j|j�d�dS(Nsmessage/rfc822tmessage(R	R�R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt3test_get_content_maintype_missing_with_default_type�s	
cCs2|jd�}|j|jd�j�d�dS(Ns
msg_30.txtiR�(R:R@RSR�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_get_content_maintype_from_message_implicit�scCs2|jd�}|j|jd�j�d�dS(Ns
msg_28.txtiR�(R:R@RSR�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_get_content_maintype_from_message_explicit�scCs)|jd�}|j|j�d�dS(Ns
msg_03.txtR}(R:R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt:test_get_content_maintype_from_message_text_plain_implicit�scCs)|jd�}|j|j�d�dS(Ns
msg_01.txtR}(R:R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt:test_get_content_maintype_from_message_text_plain_explicit�scCs#t�}|j|j�d�dS(Ntplain(R	R@tget_content_subtype(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt test_get_content_subtype_missing�s	cCs0t�}|jd�|j|j�d�dS(Nsmessage/rfc822trfc822(R	R�R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt2test_get_content_subtype_missing_with_default_type�s	
cCs2|jd�}|j|jd�j�d�dS(Ns
msg_30.txtiR�(R:R@RSR�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_get_content_subtype_from_message_implicit�scCs2|jd�}|j|jd�j�d�dS(Ns
msg_28.txtiR�(R:R@RSR�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_get_content_subtype_from_message_explicit�scCs)|jd�}|j|j�d�dS(Ns
msg_03.txtR�(R:R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt9test_get_content_subtype_from_message_text_plain_implicit�scCs)|jd�}|j|j�d�dS(Ns
msg_01.txtR�(R:R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt9test_get_content_subtype_from_message_text_plain_explicit�scCs-t�}d|d<|j|j�d�dS(Nsno-slash-in-this-stringsContent-TypeR}(R	R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_content_maintype_errors	
cCs-t�}d|d<|j|j�d�dS(Nsno-slash-in-this-stringsContent-TypeR�(R	R@R�(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_content_subtype_errors	
cCs=|j}t�}|jdd�|jdd�|jdd�||j�dddg�||j�dddg�|jdd�||j�dddg�||j�dddg�|jdd�|jdd	�||j�ddddg�||j�d	dddg�|jt|jd
d�dS(NtFirsttOnetSecondtTwotThirdtThreetTwentytElevensOne HundredtFourthtMissing(R@R	R�tkeystvaluestreplace_headerR`tKeyError(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_replace_header
s		cCsPd}t�}d|d<d|d<|j|�|j|jdt�|�dS(NsAwDp0P7//y6LwKEAcPa/6Q=9saudio/x-midiscontent-typetbase64scontent-transfer-encodingRq(R	RMR@RSRi(R.txR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_broken_base64_payloads	


cCsSt�}|jd�|jd|j��|jd�|jd|j��dS(Nsus-asciiuus-ascii(R	RGR@tget_content_charset(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_get_content_charset&s
	

cCs3t�}td�|d<|jtj|j�dS(Nsdummy
X-Injected-Header: testtDummy(R	RR`RRaRe(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt'test_embeded_header_via_Header_rejected/s	cCs-t�}d|d<|jtj|j�dS(Nsdummy
X-Injected-Header: testR�(R	R`RRaRe(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt'test_embeded_header_via_string_rejected4s	
(<R;R<RCRKRLRNRRRXRYR\RdRfRpRrRwR|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�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR=Jst														
	
																																											tTestEncoderscBs#eZd�Zd�Zd�ZRS(cCs4|j}t�}|jd�||dd�dS(Nsus-asciiscontent-transfer-encodingt7bit(R@R	RG(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_encode_empty_payload<s		
cCsj|j}td�}||dd�td�}||dd�tddd�}||dd�dS(	Nshello worldscontent-transfer-encodingR�s
hello �rldt8bitt_charsets
iso-8859-1squoted-printable(R@R(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_default_cteBs	cCs6|j}tjjddd�}||dd�dS(NsʸR�seuc-jpscontent-transfer-encodingR�(R@R6R(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_encode7or8bitNs	(R;R<R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR�;s		tTestLongHeaderscBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsQ|j}tjd�}t�}t|�}|j|�||j�d�dS(Ns�Subject: bug demonstration
	12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
	more text

test
s�Subject: bug demonstration
 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
 more text

test
(R5R6R�RRRjR-(R.RBR9R{R((s+/sys/lib/python2.7/email/test/test_email.pyttest_split_long_continuationYs			
cCsW|j}d}t|dd�}||j�d�t|�}||j�d�dS(Ns�bug demonstration
	12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
	more texttcontinuation_wss	s�bug demonstration
 12345678911234567892123456789312345678941234567895123456789612345678971234567898112345678911234567892123456789112345678911234567892123456789
 more text(R5Rtencode(R.RBthstrth((s+/sys/lib/python2.7/email/test/test_email.pyt,test_another_long_almost_unsplittable_headerms	cCs�|j}td�}td�}td�}d}d}djd�}t||dd�}|j||�|j||�t�}	||	d<t�}
t|
�}|j|	�||
j	�d	�||j�d
�dS(Ns
iso-8859-1s
iso-8859-2sutf-8s�Die Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an s�ndischen Wandgem�en vorbei, gegen die rotierenden Klingen bef�rt. s;Finan� metropole se hroutily pod tlakem jejich d�pu.. u�正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput.」と言っています。theader_nametSubjectsSubject: =?iso-8859-1?q?Die_Mieter_treten_hier_ein_werden_mit_einem_Foerd?=
 =?iso-8859-1?q?erband_komfortabel_den_Korridor_entlang=2C_an_s=FCdl=FCndi?=
 =?iso-8859-1?q?schen_Wandgem=E4lden_vorbei=2C_gegen_die_rotierenden_Kling?=
 =?iso-8859-1?q?en_bef=F6rdert=2E_?= =?iso-8859-2?q?Finan=E8ni_met?=
 =?iso-8859-2?q?ropole_se_hroutily_pod_tlakem_jejich_d=F9vtipu=2E=2E_?=
 =?utf-8?b?5q2j56K644Gr6KiA44GG44Go57+76Kiz44Gv44GV44KM44Gm44GE?=
 =?utf-8?b?44G+44Gb44KT44CC5LiA6YOo44Gv44OJ44Kk44OE6Kqe44Gn44GZ44GM44CB?=
 =?utf-8?b?44GC44Go44Gv44Gn44Gf44KJ44KB44Gn44GZ44CC5a6f6Zqb44Gr44Gv44CM?=
 =?utf-8?q?Wenn_ist_das_Nunstuck_git_und_Slotermeyer=3F_Ja!_Beiherhund_das?=
 =?utf-8?b?IE9kZXIgZGllIEZsaXBwZXJ3YWxkdCBnZXJzcHV0LuOAjeOBqOiogOOBow==?=
 =?utf-8?b?44Gm44GE44G+44GZ44CC?=

s�=?iso-8859-1?q?Die_Mieter_treten_hier_ein_werden_mit_einem_Foerd?=
 =?iso-8859-1?q?erband_komfortabel_den_Korridor_entlang=2C_an_s=FCdl=FCndi?=
 =?iso-8859-1?q?schen_Wandgem=E4lden_vorbei=2C_gegen_die_rotierenden_Kling?=
 =?iso-8859-1?q?en_bef=F6rdert=2E_?= =?iso-8859-2?q?Finan=E8ni_met?=
 =?iso-8859-2?q?ropole_se_hroutily_pod_tlakem_jejich_d=F9vtipu=2E=2E_?=
 =?utf-8?b?5q2j56K644Gr6KiA44GG44Go57+76Kiz44Gv44GV44KM44Gm44GE?=
 =?utf-8?b?44G+44Gb44KT44CC5LiA6YOo44Gv44OJ44Kk44OE6Kqe44Gn44GZ44GM44CB?=
 =?utf-8?b?44GC44Go44Gv44Gn44Gf44KJ44KB44Gn44GZ44CC5a6f6Zqb44Gr44Gv44CM?=
 =?utf-8?q?Wenn_ist_das_Nunstuck_git_und_Slotermeyer=3F_Ja!_Beiherhund_das?=
 =?utf-8?b?IE9kZXIgZGllIEZsaXBwZXJ3YWxkdCBnZXJzcHV0LuOAjeOBqOiogOOBow==?=
 =?utf-8?b?44Gm44GE44G+44GZ44CC?=(
R5RR�RtappendR	RRRjR-(R.RBRtcztutf8tg_headtcz_headt	utf8_headR�R9R{((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_nonstring~s&		
	

cCs2|j}tddd�}||j�d�dS(Nsiwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"R�sX-Foobar-Spoink-Defrobnitsjwasnipoop; giraffes="very-long-necked-animals";
 spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"(R5RR�(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_header_encode�s
			cCs8|j}tddddd�}||j�d�dS(Nsiwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"R�sX-Foobar-Spoink-DefrobnitR�s	sjwasnipoop; giraffes="very-long-necked-animals";
	spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"(R5RR�(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyt-test_long_header_encode_with_tab_continuation�s			cCsX|j}td�}d|d<t�}t|�}|j|�||j�d�dS(NRsiwasnipoop; giraffes="very-long-necked-animals"; spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"sX-Foobar-Spoink-Defrobnits�Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Foobar-Spoink-Defrobnit: wasnipoop; giraffes="very-long-necked-animals";
 spooge="yummy"; hippos="gargantuan"; marshmallows="gooey"

(R5RRRRjR-(R.RBR9R{R((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_splitter�s	
	
cCs�|j}t�}d|d<tjgtd�D]}d|^q/�|d<|jd�t�}t|�}|j|�||j	�d�dS(Nstest@dom.ainR�i
s<%d@dom.ain>t
ReferencestTests�From: test@dom.ain
References: <0@dom.ain> <1@dom.ain> <2@dom.ain> <3@dom.ain> <4@dom.ain>
 <5@dom.ain> <6@dom.ain> <7@dom.ain> <8@dom.ain> <9@dom.ain>

Test(
R5R	tSPACERtrangeRMRRRjR-(R.RBR9tiR{R((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_semis_header_splitter�s		
0
	
cCs@|j}ddd}t|dd�}||j�d�dS(NsReferences: R�iPR�s	s\References: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx(R5RR�(R.RBR�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_split_long_header�s
	cCs8|j}d}t|dd�}||j�d�dS(NsWfrom babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for <mailman-admin@babylon.socal-raves.org>; Sat, 2 Feb 2002 17:00:06 -0800 (PST)
	from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for <mailman-admin@babylon.socal-raves.org>; Sat, 2 Feb 2002 17:00:06 -0800 (PST)
	from babylon.socal-raves.org (localhost [127.0.0.1]); by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81; for <mailman-admin@babylon.socal-raves.org>; Sat, 2 Feb 2002 17:00:06 -0800 (PST)
R�s	s_from babylon.socal-raves.org (localhost [127.0.0.1]);
	by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81;
	for <mailman-admin@babylon.socal-raves.org>;
	Sat, 2 Feb 2002 17:00:06 -0800 (PST)
	from babylon.socal-raves.org (localhost [127.0.0.1]);
	by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81;
	for <mailman-admin@babylon.socal-raves.org>;
	Sat, 2 Feb 2002 17:00:06 -0800 (PST)
	from babylon.socal-raves.org (localhost [127.0.0.1]);
	by babylon.socal-raves.org (Postfix) with ESMTP id B570E51B81;
	for <mailman-admin@babylon.socal-raves.org>;
	Sat, 2 Feb 2002 17:00:06 -0800 (PST)(R5RR�(R.RBR�R�((s+/sys/lib/python2.7/email/test/test_email.pyt"test_splitting_multiple_long_lines�s
	cCsD|j}d}t|dddddd�}||j�d�dS(	Ns�from modemcable093.139-201-24.que.mc.videotron.ca ([24.201.139.93] helo=cthulhu.gerg.ca)
	by kronos.mems-exchange.org with esmtp (Exim 4.05)
	id 17k4h5-00034i-00
	for test@mems-exchange.org; Wed, 28 Aug 2002 11:25:20 -0400t
maxlineleniNR�tReceivedR�s	s�from modemcable093.139-201-24.que.mc.videotron.ca ([24.201.139.93]
	helo=cthulhu.gerg.ca)
	by kronos.mems-exchange.org with esmtp (Exim 4.05)
	id 17k4h5-00034i-00
	for test@mems-exchange.org; Wed, 28 Aug 2002 11:25:20 -0400(R5RR�(R.RBR�R�((s+/sys/lib/python2.7/email/test/test_email.pyt&test_splitting_first_line_only_is_long�s		cCsU|j}t�}tdddd�}|jd�||d<||j�d�dS(NsBritische Regierung gibts
iso-8859-1R�R�s+gr� Licht f�ffshore-Windkraftprojektes�Subject: =?iso-8859-1?q?Britische_Regierung_gibt?= =?iso-8859-1?q?gr=FCnes?=
 =?iso-8859-1?q?_Licht_f=FCr_Offshore-Windkraftprojekte?=

(R5R	RR�Re(R.RBR9R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_8bit_header
s			

cCs3|j}t�}d|d<||j�d�dS(NsfBritische Regierung gibt gr� Licht f�ffshore-Windkraftprojekte <a-very-long-address@example.com>sReply-TosrReply-To: Britische Regierung gibt gr� Licht f�ffshore-Windkraftprojekte <a-very-long-address@example.com>

(R5R	Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt test_long_8bit_header_no_charsets
		
cCs<|j}d}t�}||d<||jd�d�dS(Ns�"Someone Test #A" <someone@eecs.umich.edu>,<someone@eecs.umich.edu>,"Someone Test #B" <someone@umich.edu>, "Someone Test #C" <someone@eecs.umich.edu>, "Someone Test #D" <someone@eecs.umich.edu>R�is�To: "Someone Test #A" <someone@eecs.umich.edu>, <someone@eecs.umich.edu>,
 "Someone Test #B" <someone@umich.edu>,
 "Someone Test #C" <someone@eecs.umich.edu>,
 "Someone Test #D" <someone@eecs.umich.edu>

(R5R	Re(R.RBR�R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_to_header#s		
cCs?|j}d}t|�}|jd�||j�d�dS(NsIThis is an example of string which has almost the limit of header length.sAdd another line.s\This is an example of string which has almost the limit of header length.
 Add another line.(R5RR�R�(R.RBR~R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_line_after_append0s	
cCs?|j}d}t|�}|jd�||j�d�dS(NsThis is a shorter line.s!Add another sentence. (Surprise?)s9This is a shorter line. Add another sentence. (Surprise?)(R5RR�R�(R.RBR~R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_shorter_line_with_append9s	
cCsA|j}d}d}t|dd|�}||j�d�dS(Ns!X-Very-Very-Very-Long-Header-Names�Die Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an s�ndischen Wandgem�en vorbei, gegen die rotierenden Klingen bef�rt. s
iso-8859-1R�s=?iso-8859-1?q?Die_Mieter_treten_hier_?=
 =?iso-8859-1?q?ein_werden_mit_einem_Foerderband_komfortabel_den_Korridor_?=
 =?iso-8859-1?q?entlang=2C_an_s=FCdl=FCndischen_Wandgem=E4lden_vorbei=2C_g?=
 =?iso-8859-1?q?egen_die_rotierenden_Klingen_bef=F6rdert=2E_?=(R5RR�(R.RBtfntgsR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_field_nameAs	cCsId}t�}t|dd�|d<||d<|j|j�d�dS(Ns�from FOO.TLD (vizworld.acl.foo.tld [123.452.678.9]) by hrothgar.la.mastaler.com (tmda-ofmipd) with ESMTP; Wed, 05 Mar 2003 18:10:18 -0700R�s	s
Received-1s
Received-2s1Received-1: from FOO.TLD (vizworld.acl.foo.tld [123.452.678.9]) by
	hrothgar.la.mastaler.com (tmda-ofmipd) with ESMTP;
	Wed, 05 Mar 2003 18:10:18 -0700
Received-2: from FOO.TLD (vizworld.acl.foo.tld [123.452.678.9]) by
 hrothgar.la.mastaler.com (tmda-ofmipd) with ESMTP;
 Wed, 05 Mar 2003 18:10:18 -0700

(R	RR@Re(R.R�R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_received_headerMs	
cCsOd}t�}t|dddd�|d<||d<|j|j�d�dS(Ns�<15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de> (David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")R�R
R�s	sReceived: <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de>
	(David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")
Received: <15975.17901.207240.414604@sgigritzmann1.mathematik.tu-muenchen.de>
 (David Bremner's message of "Thu, 6 Mar 2003 13:58:21 +0100")

(R	RR5Re(R.R�R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_string_headerinst_eq\s	

cCsO|j}t�}d}||d<t|dd�|d<||j�d�dS(Ns� iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEUAAAAkHiJeRUIcGBi9
 locQDQ4zJykFBAXJfWDjAAACYUlEQVR4nF2TQY/jIAyFc6lydlG5x8Nyp1Y69wj1PN2I5gzpsFace-1R�sFace-2s7Face-1: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEUAAAAkHiJeRUIcGBi9
 locQDQ4zJykFBAXJfWDjAAACYUlEQVR4nF2TQY/jIAyFc6lydlG5x8Nyp1Y69wj1PN2I5gzp
Face-2: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEUAAAAkHiJeRUIcGBi9
 locQDQ4zJykFBAXJfWDjAAACYUlEQVR4nF2TQY/jIAyFc6lydlG5x8Nyp1Y69wj1PN2I5gzp

(R5R	RRe(R.RBR9tt((s+/sys/lib/python2.7/email/test/test_email.pyt-test_long_unbreakable_lines_with_continuationjs		
cCs5|j}d}tj|�}||j�d�dS(Ns�Received: from siimage.com ([172.25.1.3]) by zima.siliconimage.com with Microsoft SMTPSVC(5.0.2195.4905);
 Wed, 16 Oct 2002 07:41:11 -0700s�Received: from siimage.com ([172.25.1.3]) by zima.siliconimage.com with
 Microsoft SMTPSVC(5.0.2195.4905); Wed, 16 Oct 2002 07:41:11 -0700

(R5R6R�Re(R.RBtmR9((s+/sys/lib/python2.7/email/test/test_email.pyt"test_another_long_multiline_headerzs
	cCsO|j}d}t�}||d<t|dd�|d<||j�d�dS(Ns�List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/spamassassin-talk>,
        <mailto:spamassassin-talk-request@lists.sourceforge.net?subject=unsubscribe>tListR�sQList: List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/spamassassin-talk>,
 <mailto:spamassassin-talk-request@lists.sourceforge.net?subject=unsubscribe>
List: List-Unsubscribe: <https://lists.sourceforge.net/lists/listinfo/spamassassin-talk>,
 <mailto:spamassassin-talk-request@lists.sourceforge.net?subject=unsubscribe>

(R5R	RRe(R.RBR�R9((s+/sys/lib/python2.7/email/test/test_email.pyt%test_long_lines_with_different_header�s		
(R;R<R�R�RRRRR	R
RRRRRRRRRRRRR(((s+/sys/lib/python2.7/email/test/test_email.pyR�Xs*			+			
						
			
								tTestFromManglingcBs,eZd�Zd�Zd�Zd�ZRS(cCs-t�|_d|jd<|jjd�dS(Nsaaa@bbb.orgR�s(From the desk of A.A.A.:
Blah blah blah
(R	R9RM(R.((s+/sys/lib/python2.7/email/test/test_email.pytsetUp�s
	cCsEt�}t|dt�}|j|j�|j|j�d�dS(Ntmangle_from_s<From: aaa@bbb.org

>From the desk of A.A.A.:
Blah blah blah
(RRRiRjR9R@R-(R.R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_mangled_from�s
	cCsEt�}t|dt�}|j|j�|j|j�d�dS(NR!s;From: aaa@bbb.org

From the desk of A.A.A.:
Blah blah blah
(RRRkRjR9R@R-(R.R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_dont_mangle_from�s
	cCs�t�}t|dt�}tjtjd��}|j|�|jt	g|j
�jd�D]}|jd�r_d^q_�d�dS(NR!s)            From: foo@bar.com
            Mime-Version: 1.0
            Content-Type: multipart/mixed; boundary=XXX

            From somewhere unknown

            --XXX
            Content-Type: text/plain

            foo

            --XXX--

            From somewhere unknowable
            s
s>From ii(
RRRiR6R�ttextwraptdedentRjR@tlenR-R�R�(R.R~RR9R�((s+/sys/lib/python2.7/email/test/test_email.pyt'test_mangle_from_in_preamble_and_epilog�s	
%(R;R<R R"R#R'(((s+/sys/lib/python2.7/email/test/test_email.pyR�s			t
TestMIMEAudiocBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCsstjjtjjt�dd�}ttd|�d�}z|j�|_Wd|j	�Xt
|j�|_dS(NRRsaudiotest.autrb(RRRR R!R"RRgt
_audiodataR8R
t_au(R.tdatadirR4((s+/sys/lib/python2.7/email/test/test_email.pyR �s$cCs|j|jj�d�dS(Nsaudio/basic(R@R+RH(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_guess_minor_type�scCs/|jj�}|jtj|�|j�dS(N(R+RSR@R�tdecodestringR*(R.tpayload((s+/sys/lib/python2.7/email/test/test_email.pyt
test_encoding�scCs,t|jd�}|j|j�d�dS(Ntfishs
audio/fish(R
R*R@RH(R.tau((s+/sys/lib/python2.7/email/test/test_email.pyttest_checkSetMinor�scCs|j}|j}|jjdddd�||jdd�||jjdd�dd
g�||jjddd�d�g}||jjddd�d�||jjd	d
|dd�|k�||jjd|�|k�||jjd|dd�|k�dS(NsContent-DispositionR�R#saudiotest.auscontent-dispositions#attachment; filename="audiotest.au"RbRRutfailobjtfoobar(s
attachmentR(R#saudiotest.au(R@R�R+R�R�RI(R.RBtunlesstmissing((s+/sys/lib/python2.7/email/test/test_email.pyttest_add_header�s"		

(R;R<R R-R0R3R8(((s+/sys/lib/python2.7/email/test/test_email.pyR(�s
				t
TestMIMEImagecBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCsCtd�}z|j�|_Wd|j�Xt|j�|_dS(NsPyBanner048.gif(R%Rgt_imgdataR8Rt_im(R.R4((s+/sys/lib/python2.7/email/test/test_email.pyR s
cCs|j|jj�d�dS(Ns	image/gif(R@R;RH(R.((s+/sys/lib/python2.7/email/test/test_email.pyR-scCs/|jj�}|jtj|�|j�dS(N(R;RSR@R�R.R:(R.R/((s+/sys/lib/python2.7/email/test/test_email.pyR0scCs,t|jd�}|j|j�d�dS(NR1s
image/fish(RR:R@RH(R.tim((s+/sys/lib/python2.7/email/test/test_email.pyR3scCs|j}|j}|jjdddd�||jdd�||jjdd�dd
g�||jjddd�d�g}||jjddd�d�||jjd	d
|dd�|k�||jjd|�|k�||jjd|dd�|k�dS(NsContent-DispositionR�R#sdingusfish.gifscontent-dispositions%attachment; filename="dingusfish.gif"RbRRuR4R5(s
attachmentR(R#sdingusfish.gif(R@R�R;R�R�RI(R.RBR6R7((s+/sys/lib/python2.7/email/test/test_email.pyR8s"		

(R;R<R R-R0R3R8(((s+/sys/lib/python2.7/email/test/test_email.pyR9s
				tTestMIMETextcBsPeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	RS(cCstd�|_dS(Nshello there(Rt_msg(R.((s+/sys/lib/python2.7/email/test/test_email.pyR .scCs�|j}|j}||jj�d�||jjd�d�g}||jjd|�|k�||jjd|dd�|k�dS(Ns
text/plainRDsus-asciiR5Rb(R@R�R>RHRI(R.RBR6R7((s+/sys/lib/python2.7/email/test/test_email.pyt
test_types1s		cCs4|j|jj�d�|j|jj��dS(Nshello there(R@R>RSR�tis_multipart(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_payload;scCsF|j}tddd�}||j�jd�||dd�dS(Nshello thereR�sus-asciiscontent-typestext/plain; charset="us-ascii"(R@RRERJ(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_charset?s	cCsF|j}tddd�}||j�jd�||dd�dS(Nuhello thereR�sus-asciiscontent-typestext/plain; charset="us-ascii"(R@RRERJ(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_7bit_unicode_inputEs	cCsV|j}td�}||j�d�||dd�|jd|j�k�dS(Nuhello theresus-asciiscontent-typestext/plain; charset="us-ascii"shello there(R@RRER�Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt"test_7bit_unicode_input_no_charsetKs
	cCsnd}|j}t|dd�}||j�jd�||dd�||jdt�|jd��dS(NuкирилицаR�sutf-8scontent-typestext/plain; charset="utf-8"Rq(R@RREtoutput_charsetRSRiR�(R.tteststrRBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_8bit_unicode_inputRs	cCsd}|jtt|�dS(Nuкирилица(R`tUnicodeEncodeErrorR(R.RF((s+/sys/lib/python2.7/email/test/test_email.pyt"test_8bit_unicode_input_no_charsetZs(
R;R<R R?RARBRCRDRGRI(((s+/sys/lib/python2.7/email/test/test_email.pyR=-s		
					t
TestMultipartcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�ZRS(cCsVtd�}z|j�}Wd|j�Xtdddd�}t|dd�}|jdd	d
d�td�}|j|�|j|�d|d
<d|d<d|d<d}tj	|�}|ddkr�tj
}n	tj}|dkr�}	nd}	d|	|df}
tjdtj	|��|
|d<||_
||_||_dS(NsPyBanner048.gift	multiparttmixedR�RZR�sdingusfish.gifscontent-dispositionR�R#s$Hi there,

This is the dingus fish.
sBarry <barry@digicool.com>R�s)Dingus Lovers <cravindogs@cravindogs.com>R�sHere is your dingus fishR�g�F�p�i�it-t+s %s%04di$s%a, %d %b %Y %H:%M:%StDate(R%RgR8R
RR�Rtattachttimet	localtimettimezonetaltzonetstrftimeR>R;t_txt(R.R4Rt	containertimagetintrotnowt	timetuplettzsecstsignttzoffset((s+/sys/lib/python2.7/email/test/test_email.pyR bs<	




				cCs�|j}|j}|j}|j}||j��||j�d�|t|j��d�|t|jd�|jd�}|jd�}|||j	k�|||j
k�||j�||g�||j��||j��dS(Nsmultipart/mixediii(R@R�R`R>R@RHR&RSt
IndexErrorRVR;(R.RBR6traisesRtm0tm1((s+/sys/lib/python2.7/email/test/test_email.pyttest_hierarchy�s				cCs2d}t�j|�}|j||j��dS(Ns�Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain


--BOUNDARY


--BOUNDARY--
(RRhR5Re(R.R}R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_empty_multipart_idempotent�s
cCsTtdd�}d|d<d|d<d|d<|jd	�|j|j�d
�dS(NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�RZs�Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY

--BOUNDARY--(R
R]R5Re(R.touter((s+/sys/lib/python2.7/email/test/test_email.pyt/test_no_parts_in_a_multipart_with_none_epilogue�s



	cCsftdd�}d|d<d|d<d|d<d	|_d	|_|jd
�|j|j�d�dS(NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�RRZs�Content-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain


--BOUNDARY

--BOUNDARY--
(R
tpreambletepilogueR]R5Re(R.Re((s+/sys/lib/python2.7/email/test/test_email.pyt0test_no_parts_in_a_multipart_with_empty_epilogue�s


		
cCss|j}tdd�}d|d<d|d<d|d<|jd	�td
�}|j|�||j�d�dS(NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�RZshello worldsContent-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(R5R
R]RRPRe(R.RBReR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_one_part_in_a_multipart�s	





cCs||j}tdd�}d|d<d|d<d|d<d	|_td
�}|j|�|jd�||j�d�dS(
NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�Rshello worldRZsContent-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain


--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(R5R
RgRRPR]Re(R.RBReR9((s+/sys/lib/python2.7/email/test/test_email.pyt1test_seq_parts_in_a_multipart_with_empty_preamble�s	


	

cCs||j}tdd�}d|d<d|d<d|d<d|_td	�}|j|�|jd
�||j�d�dS(NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�shello worldRZsContent-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(R5R
RFRgRRPR]Re(R.RBReR9((s+/sys/lib/python2.7/email/test/test_email.pyt0test_seq_parts_in_a_multipart_with_none_preambles	


	


cCs||j}tdd�}d|d<d|d<d|d<d|_td	�}|j|�|jd
�||j�d�dS(NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�shello worldRZsContent-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--(R5R
RFRhRRPR]Re(R.RBReR9((s+/sys/lib/python2.7/email/test/test_email.pyt0test_seq_parts_in_a_multipart_with_none_epilogue!s	


	


cCs||j}tdd�}d|d<d|d<d|d<d	|_td
�}|j|�|jd�||j�d�dS(
NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�Rshello worldRZsContent-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--
(R5R
RhRRPR]Re(R.RBReR9((s+/sys/lib/python2.7/email/test/test_email.pyt1test_seq_parts_in_a_multipart_with_empty_epilogue;s	


	

cCs||j}tdd�}d|d<d|d<d|d<d	|_td
�}|j|�|jd�||j�d�dS(
NRKRLs	A subjectR�saperson@dom.ainR�sbperson@dom.ainR�s
shello worldRZsContent-Type: multipart/mixed; boundary="BOUNDARY"
MIME-Version: 1.0
Subject: A subject
To: aperson@dom.ain
From: bperson@dom.ain

--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

hello world
--BOUNDARY--

(R5R
RhRRPR]Re(R.RBReR9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_seq_parts_in_a_multipart_with_nl_epilogueVs	


	

cCs�|j}|jd�}|t|j��d�|jd�}||j�d�|t|j��d�xb|j�D]T}||j�d�|t|j��d�|jd�}||j�d�qyWdS(Ns
msg_36.txtiismultipart/alternativesmessage/external-bodyis
text/plain(R@R:R&RSRH(R.RBR9tmsg1RWt
subsubpart((s+/sys/lib/python2.7/email/test/test_email.pyttest_message_external_bodyqs	cCs/|jd�}|jt|j��d�dS(Ns
msg_37.txti(R:R@R&RS(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_double_boundary~scCsH|j}|jd�}t�}tj||�||j�d�dS(Ns
msg_38.txts�multipart/mixed
    multipart/mixed
        multipart/alternative
            text/plain
        text/plain
    text/plain
    text/plain
(R5R:RRt
_structureR-(R.RBR9R{((s+/sys/lib/python2.7/email/test/test_email.pyt)test_nested_inner_contains_outer_boundary�s		cCsH|j}|jd�}t�}tj||�||j�d�dS(Ns
msg_39.txts�multipart/mixed
    multipart/mixed
        multipart/alternative
        application/octet-stream
        application/octet-stream
    text/plain
(R5R:RRRtR-(R.RBR9R{((s+/sys/lib/python2.7/email/test/test_email.pyttest_nested_with_same_boundary�s		cCs)|jd�}|j|j�d�dS(Ns
msg_40.txts�MIME-Version: 1.0
Content-Type: text/html; boundary="--961284236552522269"

----961284236552522269
Content-Type: text/html;
Content-Transfer-Encoding: 7Bit

<html></html>

----961284236552522269--
(R:R@Re(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_boundary_in_non_multipart�scCs[|j}tjd�}|j|j��||j�d�|t|j��d�dS(Ns�MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="    XXXX"

--    XXXX
Content-Type: text/plain


--    XXXX
Content-Type: text/plain

--    XXXX--
s    XXXXi(R@R6R�R�R@R[R&RS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt test_boundary_with_leading_space�s		cCs5t�jd�}|j|jd�j�d�dS(Ns�Content-Type: multipart/mixed; boundary="===============0012394164=="
MIME-Version: 1.0

--===============0012394164==
Content-Type: image/file1.jpg
MIME-Version: 1.0
Content-Transfer-Encoding: base64

YXNkZg==
--===============0012394164==--isYXNkZg==(RRhR@RS(R.R((s+/sys/lib/python2.7/email/test/test_email.pyt&test_boundary_without_trailing_newline�s	
	(R;R<R RcRdRfRiRjRkRlRmRnRoRrRsRuRvRwRxRy(((s+/sys/lib/python2.7/email/test/test_email.pyRJas$	(											
					tTestNonConformantcBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCsU|j}|jd�}||j�d�||j�d�||j�d�dS(Ns
msg_14.txts
text/plainR}R�(R@R:RHR�R�(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_parse_missing_minor_type�s
	cCst|j}|jd�}|jd�}|t|d��|jt|j�d�|t|jdtj	��dS(Ns
msg_15.txtitdefectsi(
R�R:RSthasattrR@R&R|t
isinstanceRtStartBoundaryNotFoundDefect(R.R6R9tinner((s+/sys/lib/python2.7/email/test/test_email.pyttest_same_boundary_inner_outer�s	cCs�|j}|jd�}|t|j�t��|jt|j�d�|t|jdtj	��|t|jdtj
��dS(Ns
msg_25.txtiii(R�R:R~RSR'R@R&R|RtNoBoundaryInMultipartDefectt!MultipartInvariantViolationDefect(R.R6R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_multipart_no_boundary�s	cCs�|j}|j}t�}d|d<||j�d�||j�d�||j�d�|d=d|d<||j�d�||j�d�||j�d�t�}t|�}|j|�||j	�d�dS(NR}sContent-TypeR�s
text/plainscontent-typeRusContent-Type: foo

(
R@R5R	R�R�RHRRRjR-(R.RBtneqR9R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_invalid_content_type�s 			

	
cCs/|j}|jd�}||j�d�dS(Ns
msg_31.txtsm--BOUNDARY
Content-Type: text/plain

message 1

--BOUNDARY
Content-Type: text/plain

message 2

--BOUNDARY--
(R5R:RS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_start_boundarys	cCs/|j}|jd�}||j�d�dS(Ns
msg_35.txts�From: aperson@dom.ain
To: bperson@dom.ain
Subject: here's something interesting

counter to RFC 2822, there's no separating newline here
(R5R:Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_separating_blank_lines	cCs�|j}|jd�}|t|d��|jt|j�d�|t|jdtj��|t|jdtj	��dS(Ns
msg_41.txtR|iii(
R�R:R}R@R&R|R~RR�R�(R.R6R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_lying_multipart(s	cCsd|jd�}|jd�jd�}|jt|j�d�|jt|jdtj��dS(Ns
msg_42.txtii(	R:RSR@R&R|R�R~RR(R.Retbad((s+/sys/lib/python2.7/email/test/test_email.pyttest_missing_start_boundary1s
	cCs�|j}d}tj|�}||j�g�||j�d�|t|j�d�|jt|jdt	j
��||jdjd�dS(Ns Line 1
Line 2
Line 3s
Line 2
Line 3iis Line 1
(R@R6R�R�RSR&R|R�R~Rt#FirstHeaderLineIsContinuationDefecttline(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.pyt&test_first_line_is_continuation_header@s	
(R;R<R{R�R�R�R�R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyRz�s		
								tTestRFC2047cBsGeZd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsQ|j}d}t|�}||ddd	d
g�|tt|��d�dS(NsVRe: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz
 foo bar =?mac-iceland?q?r=8Aksm=9Arg=8Cs?=sRe:s
r�sm�g�smac-icelandsbaz foo barsVRe: =?mac-iceland?q?r=8Aksm=9Arg=8Cs?= baz foo bar
 =?mac-iceland?q?r=8Aksm=9Arg=8Cs?=(sRe:N(s
r�sm�g�smac-iceland(sbaz foo barN(s
r�sm�g�smac-iceland(R@RRFR'R(R.RBR~tdh((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_multilinePs	
cCsZ|j}d}t|�}||ddg�tt|��jd�}||d�dS(	Ns0=?ISO-8859-1?Q?Andr=E9?= Pirard <pirard@dom.ain>sAndr�iso-8859-1sPirard <pirard@dom.ain>slatin-1sAndr�irard <pirard@dom.ain>(sAndr�iso-8859-1(sPirard <pirard@dom.ain>N(R@RRFtunicodeRR�(R.RBR~R�thu((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_eater_unicode^s	cCsW|j}d}t|�}||dd	d
dg�t|�j�}||d�dS(NsWThe =?iso-8859-1?b?cXVpY2sgYnJvd24gZm94?= jumped over the =?iso-8859-1?b?bGF6eSBkb2c=?=tThesquick brown foxs
iso-8859-1sjumped over theslazy dogu,The quick brown fox jumped over the lazy dog(R�N(squick brown foxs
iso-8859-1(sjumped over theN(slazy dogs
iso-8859-1(R@RRFRt__unicode__(R.RBR~R�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_eater_unicode_2fs	
cCs/d}t|�}|j||dfg�dS(Ns3Sm=?ISO-8859-1?B?9g==?=rg=?ISO-8859-1?B?5Q==?=sbord(RR@RF(R.R~R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_without_whitespaceoscCs5d}t|�}|j|dd	d
ddg�dS(
Ns7Sm =?ISO-8859-1?B?9g==?= rg =?ISO-8859-1?B?5Q==?= sbordtSms�iso-8859-1trgs�sbord(R�N(s�iso-8859-1(R�N(s�iso-8859-1(R�N(RR@RF(R.R~R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_with_whitespacets
cCs_d}d
ddd
dg}x=|D]5\}}t||�}|j||d	fg�q"WdS(Ns=?iso-8859-1?B?%s?=sdm==tvsdm=tdmsdmk=tvitdmks
iso-8859-1(sdm==R�(sdm=R�(R�R�(sdmk=R�(R�R�(RR@(R.R~RtqtaR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_B_bad_padding{s	cCs#d}|jt|�dg�dS(Ns=?iso-8659-1?Q?andr=e9=zz?=sandr�zs
iso-8659-1(sandr�zs
iso-8659-1(R@R(R.R~((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2047_Q_invalid_digits�s(	R;R<R�R�R�R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR�Os							
tTestMIMEMessagecBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�ZRS(cCs1td�}z|j�|_Wd|j�XdS(Ns
msg_11.txt(R%Rgt_textR8(R.R4((s+/sys/lib/python2.7/email/test/test_email.pyR �scCs|jttd�dS(Nsa plain string(R`t	TypeErrorR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_type_error�scCs�|j}|j}d}t�}||d<t|�}||j�d�|j�}|t|t��|t|�d�|d}|||k�||d|�dS(Ns
A sub-messageR�smessage/rfc822iitsubject(	R@R�R	RRHRSR~tlistR&(R.RBR6R�RRR/RW((s+/sys/lib/python2.7/email/test/test_email.pyttest_valid_argument�s			

cCsX|j}t�}d|d<t�}d|d<t|�}|jtj|j|�dS(Ns	subpart 1R�s	subpart 2(R@R	RR`RtMultipartConversionErrorRP(R.RBRptmsg2R((s+/sys/lib/python2.7/email/test/test_email.pyttest_bad_multipart�s		
	
cCsrt�}d|d<|jd�t|�}d|d<t�}t|�}|j|�|j|j�d�dS(NsAn enclosed messageR�s!Here is the body of the message.
sThe enclosing messages�Content-Type: message/rfc822
MIME-Version: 1.0
Subject: The enclosing message

Subject: An enclosed message

Here is the body of the message.
(R	RMRRRRjR@R-(R.RRR~R((s+/sys/lib/python2.7/email/test/test_email.pyt
test_generate�s	


	
cCs�|j}|j}|jd�}||j�d�|j�}|t|t��|t|�d�|d}|jt|t��||dd�||j�d�dS(Ns
msg_11.txtsmessage/rfc822iiR�sAn enclosed messages!Here is the body of the message.
(	R@R�R:RHRSR~R�R&R	(R.RBR6R9R/tsubmsg((s+/sys/lib/python2.7/email/test/test_email.pyttest_parse_message_rfc822�s		
c	Cs?|j}|j}|jd�}||j�d�||j��|t|j��d�|jd�}||j�d�||j�d�|jd�}||j�d�|t|j��d	�|jd�}|t|t��||d
d�||j	dd
d�d�||j	dd
d�d�|jd�}|t|t��||dd�||jd
d�ddg�||j	dd
d�d�|jd	�}||j�d�|j�}|t|t��|t|�d�|d}|t|t��||j�d�||dd�dS(Ns
msg_16.txtsmultipart/reportiis
text/plains�This report relates to a message you sent with the following header fields:

  Message-id: <002001c144a6$8752e060$56104586@oxy.edu>
  Date: Sun, 23 Sep 2001 20:10:55 -0700
  From: "Ian T. Henry" <henryi@oxy.edu>
  To: SoCal Raves <scr@socal-raves.org>
  Subject: [scr] yeah for Ians!!

Your message cannot be delivered to the following recipients:

  Recipient address: jangel1@cougar.noc.ucla.edu
  Reason: recipient reached disk quota

ismessage/delivery-statusisoriginal-envelope-ids"0GK500B4HD0888@cougar.noc.ucla.edutdnsRbs
reporting-mtaRtnsdtactiontfailedsoriginal-recipientR�sjangel1@cougar.noc.ucla.edusfinal-recipientsmessage/rfc822s
message-ids(<002001c144a6$8752e060$56104586@oxy.edu>(srfc822R(sjangel1@cougar.noc.ucla.eduR(
R@R�R:RHR@R&RSR~R	RIRFR�R�(	R.RBR6R9RWtdsn1tdsn2R/Rq((s+/sys/lib/python2.7/email/test/test_email.pyttest_dsn�sD		


c	Cs�|j}td�}z|j�}Wd|j�Xt�}d|d<d|d<d|d<d|_d	|_td
�}td�}|jdd
dd�|j	|�|j	|�t
�}t|�}|j|�||j
�|�dS(Ns
msg_21.txtsaperson@dom.ainR�sbperson@dom.ainR�RR�sMIME messagesEnd of MIME message
R�R�sContent-Typesmultipart/mixedR�RZ(R5R%RgR8R	RgRhRR�RPRRRjR-(	R.RBR4R}R9RpR�R{R((s+/sys/lib/python2.7/email/test/test_email.pyt
test_epilogues(		


		

	
cCs�|j}t�}d|d<d|d<d|d<d|_d|_td	�}td
�}|jddd
d�|j|�|j|�||j�d�dS(Nsaperson@dom.ainR�sbperson@dom.ainR�RR�sMIME messageRR�R�sContent-Typesmultipart/mixedR�RZsdFrom: aperson@dom.ain
To: bperson@dom.ain
Subject: Test
Content-Type: multipart/mixed; boundary="BOUNDARY"

MIME message
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

One
--BOUNDARY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

Two
--BOUNDARY--
(R5R	RgRhRR�RPRe(R.RBR9RpR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_no_nl_preamble"s		


		

cCs|j}td�}ztj|�}Wd|j�X|jd�}||j�d�||j�d�|jd�}||j�d�||j�d�|jd�}||j�d�||j�d�|jd�}||j�d�||j�d�dS(Ns
msg_30.txtismessage/rfc822is
text/plain(R@R%R6R7R8RStget_default_typeRH(R.RBR4R9t
container1t
container2tcontainer1atcontainer2a((s+/sys/lib/python2.7/email/test/test_email.pyttest_default_typeEs"	cCs|j}td�}ztj|�}Wd|j�X|jd�}||j�d�||j�d�|jd�}||j�d�||j�d�|jd�}||j�d�||j�d�|jd�}||j�d�||j�d�dS(Ns
msg_28.txtismessage/rfc822is
text/plain(R@R%R6R7R8RSR�RH(R.RBR4R9R�R�R�R�((s+/sys/lib/python2.7/email/test/test_email.pyt.test_default_type_with_explicit_container_typeYs"	cCsX|j}|j}tdd�}d|_td�}td�}t|�}t|�}|j|�|j|�||j�d�||j�d�||j�d�||j�d�||j	d�d�|d	=|d
=|d	=|d
=||j�d�||j�d�||j�d�||j�d�||j	d�d�dS(NtdigestRZRs
message 1
s
message 2
smessage/rfc822is�Content-Type: multipart/digest; boundary="BOUNDARY"
MIME-Version: 1.0

--BOUNDARY
Content-Type: message/rfc822
MIME-Version: 1.0

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 1

--BOUNDARY
Content-Type: message/rfc822
MIME-Version: 1.0

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 2

--BOUNDARY--
scontent-typesmime-versionsBContent-Type: multipart/digest; boundary="BOUNDARY"
MIME-Version: 1.0

--BOUNDARY

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 1

--BOUNDARY

Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit

message 2

--BOUNDARY--
(
R@R5RRhRRRPRHR�Re(R.RBR�RWt	subpart1at	subpart2atsubpart1tsubpart2((s+/sys/lib/python2.7/email/test/test_email.pyttest_default_type_non_parsedms4			

cCs|j}td�}td�}td||f�}|t|j��d�||jd�|�||jd�|�dS(NRt	_subpartsiii(R@RRR&RS(R.RBttext1ttext2R9((s+/sys/lib/python2.7/email/test/test_email.pyt$test_mime_attachments_in_constructor�s	cCs t�}|j|j��dS(N(RR�R@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt"test_default_multipart_constructor�s	(R;R<R R�R�R�R�R�R�R�R�R�R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR��s							
	:		#			J		tTestIdempotentcBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsCt|�}z|j�}Wd|j�Xtj|�}||fS(N(R%RgR8R6R�(R.R#R4RR9((s+/sys/lib/python2.7/email/test/test_email.pyR:�scCsH|j}t�}t|dd�}|j|�|||j��dS(Ntmaxheaderleni(R5RRRjR-(R.R9R}RBR~R((s+/sys/lib/python2.7/email/test/test_email.pyt_idempotent�s
		
cCs�|j}|jd�\}}||j�d�||j�d�||j�d�||j�dd�||jd�d�||jd�||j	d�|j
||�dS(	Ns
msg_01.txts
text/plainR}R�iRDsus-ascii(scharsetsus-ascii(R@R:RHR�R�R�RIRgRFRhR�(R.RBR9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_parse_text_message�s	cCsn|j}|jd�\}}||j�d�||j�d�||jd�d�|j||�dS(Ns
msg_03.txts
text/plainRD(R@R:RHR�RFRIR�(R.RBR9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_parse_untyped_message�s	cCs)|jd�\}}|j||�dS(Ns
msg_04.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_simple_multipart�scCs)|jd�\}}|j||�dS(Ns
msg_02.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_MIME_digest�scCs)|jd�\}}|j||�dS(Ns
msg_27.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_header�scCs)|jd�\}}|j||�dS(Ns
msg_28.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyt"test_MIME_digest_with_part_headers�scCs)|jd�\}}|j||�dS(Ns
msg_06.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_mixed_with_image�scCs)|jd�\}}|j||�dS(Ns
msg_05.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_multipart_reportscCs)|jd�\}}|j||�dS(Ns
msg_16.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyR�scCs)|jd�\}}|j||�dS(Ns
msg_21.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_preamble_epiloguescCs)|jd�\}}|j||�dS(Ns
msg_23.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_multipart_one_partscCs)|jd�\}}|j||�dS(Ns
msg_24.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_multipart_no_partsscCs)|jd�\}}|j||�dS(Ns
msg_31.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyR�scCs)|jd�\}}|j||�dS(Ns
msg_32.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_charsetscCs)|jd�\}}|j||�dS(Ns
msg_33.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_more_rfc2231_parametersscCs)|jd�\}}|j||�dS(Ns
msg_34.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyt%test_text_plain_in_a_multipart_digest#scCs)|jd�\}}|j||�dS(Nsmsg_12a.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyttest_nested_multipart_mixeds'scCs)|jd�\}}|j||�dS(Ns
msg_36.txt(R:R�(R.R9R}((s+/sys/lib/python2.7/email/test/test_email.pyt%test_message_external_body_idempotent+sc
Cs�|j}|j}|jd�\}}||j�d�i}x$|j�D]\}}|||<qMW||dd�||dd�||jd�||jd�|t|j��d	�|jd
�}||j�d�||j�d�|jd
�}	||	j�d�||	j�d�|jd�}
||
j�d�|jt	|
t
��|
j�}|t	|t��|t|�d
�|d
}|t	|t
��||j�d�dS(Ns
msg_05.txtsmultipart/reportsreport-typesdelivery-statusR�s%D1690A7AC1.996856090/mail.example.coms%This is a MIME-encapsulated message.
s
iis
text/plainsYadda yadda yadda
iismessage/rfc822(R@R�R:RHR�RgRhR&RSR~R	R�(
R.RBR6R9R}tparamstpktpvRpR�tmsg3R/tmsg4((s+/sys/lib/python2.7/email/test/test_email.pyttest_content_type/s6		
cCs�|j}|j}|jd�\}}||j�d�|j�}|t|t��|t|�d�|d}|jt|t��||j�d�|jt|j�t	��||j�d�dS(Ns
msg_06.txtsmessage/rfc822iis
text/plains
(
R@R�R:RHRSR~R�R&R	R'(R.RBR6R9R}R/Rp((s+/sys/lib/python2.7/email/test/test_email.pyttest_parserOs		
(R;R<R:R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR��s,																						 tTestMiscellaneouscBs1eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"RS(!cCs{td�}z|j�}Wd|j�Xtj|�}t�}t|dd�}|j|�|j||j	��dS(Ns
msg_01.txtR�i(
R%RgR8R6R�RRRjR@R-(R.R4R}R9R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_message_from_stringds	
cCs�td�}zj|j�}|jd�tj|�}t�}t|dd�}|j|�|j||j	��Wd|j
�XdS(Ns
msg_01.txtiR�(R%RgtseekR6R7RRRjR@R-R8(R.R4R}R9R~R((s+/sys/lib/python2.7/email/test/test_email.pyttest_message_from_filers
	
cCs�|j}td�}z|j�}Wd|j�Xdtfd��Y}tj||�}|t||��td�}z|j�}Wd|j�Xtj||�}x'|j�D]}|t||��q�WdS(Ns
msg_01.txtt	MyMessagecBseZRS((R;R<(((s+/sys/lib/python2.7/email/test/test_email.pyR��ss
msg_02.txt(	R�R%RgR8R	R6R�R~twalk(R.R6R4R}R�R9RW((s+/sys/lib/python2.7/email/test/test_email.pyt#test_message_from_string_with_class�s	cCs�|j}dtfd��Y}td�}ztj||�}Wd|j�X|t||��td�}ztj||�}Wd|j�Xx'|j�D]}|t||��q�WdS(NR�cBseZRS((R;R<(((s+/sys/lib/python2.7/email/test/test_email.pyR��ss
msg_01.txts
msg_02.txt(R�R	R%R6R7R8R~R�(R.R6R�R4R9RW((s+/sys/lib/python2.7/email/test/test_email.pyt!test_message_from_file_with_class�s	c"Cs�td�}|j}|j�|j|dddddddd	d
ddd
ddddddddddddddddddd d!g �dS("NR6RRRRRRR
R
RRRtMIMENonMultipartRR	RRRt
base64mimeRDtencodersterrorst	generatorRbt	iteratorsR�R7R�tmimeRmRt
quoprimimetutils(t
__import__t__all__tsortR@(R.tmoduletall((s+/sys/lib/python2.7/email/test/test_email.pyttest__all__�s	
					cCsCtj�}|jtjtj|��d tj|�d �dS(Ni(RQR@Rt	parsedatet
formatdatetgmtime(R.RZ((s+/sys/lib/python2.7/email/test/test_email.pyttest_formatdate�scCsItj�}|jtjtj|dt��d tj|�d �dS(NRRi(RQR@RR�R�RiRR(R.RZ((s+/sys/lib/python2.7/email/test/test_email.pyttest_formatdate_localtime�scCs~tj�}|jtj|dt�tjdtj|���|jtj|dtdt�tjdtj|���dS(NRRs%a, %d %b %Y %H:%M:%S -0000tusegmts%a, %d %b %Y %H:%M:%S GMT(RQR@RR�RkRURRi(R.RZ((s+/sys/lib/python2.7/email/test/test_email.pyttest_formatdate_usegmt�scCs|jtjd�d�dS(NR(R@RR�RF(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_parsedate_none�scCs&|jtjd�tjd��dS(NsWed,3 Apr 2002 14:58:26 +0800sWed, 3 Apr 2002 14:58:26 +0800(R@RR�(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_parsedate_compact�scCs#|j}|tjd�d�dS(
Ns25 Feb 2003 13:47:26 -0800i�iii
i/iiii�i��i�iii
i/iiii�i��R@Rtparsedate_tz(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_parsedate_no_dayofweek�s	cCs#|j}|tjd�d�dS(
Ns5 Feb 2003 13:47:26 -0800i�iii
i/iiii�i��i�iii
i/iiii�i��R@RR(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt#test_parsedate_compact_no_dayofweek�s	cCs�|j}tjd�}ttj|��}|tj|�d |d �|ttjd|��d�tjd�}ttj|d ��}|tj|�d |d �|ttjd|d ��d�dS(Ns5 Feb 2003 13:47:26 -0800is%Yi�i	(	R@RR�tintRQtmktimeRRRUR(R.RBttimetupR((s+/sys/lib/python2.7/email/test/test_email.pyt+test_parsedate_acceptable_to_time_functions�s	cCs6|jtjd�d�|jtjd�d�dS(	Ni�iii�i�i.�
i�iiiiii�i�i�i(
i�iiiiii�i�i�i�(R@Rt	mktime_tz(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_mktime_tz�s
cCsH|jtjd�tjd��|jtjd�tjd��dS(sTest for parsing a date with a two-digit year.

        Parsing a date with a two-digit year should return the correct
        four-digit year. RFC822 allows two-digit years, but RFC2822 (which
        obsoletes RFC822) requires four-digit years.

        s25 Feb 03 13:47:26 -0800s25 Feb 2003 13:47:26 -0800s25 Feb 71 13:47:26 -0800s25 Feb 1971 13:47:26 -0800N(R@RR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_parsedate_y2k�scCs?|jtjd�d�|jtjtjd��d�dS(Ns<>R(RR(R@Rt	parseaddrt
formataddr(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_parseaddr_empty	scCs|jtjd�d�dS(NsA Silly Personsperson@dom.ainsA Silly Person <person@dom.ain>(sA Silly Personsperson@dom.ain(R@RR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_noquote_dump	scCsW|jtjd�d�d}d}|jtjtj||f��||f�dS(NsA (Very) Silly Personsperson@dom.ains*"A \(Very\) Silly Person" <person@dom.ain>sA \(Special\) Person(sA (Very) Silly Personsperson@dom.ain(R@RRR(R.R�tb((s+/sys/lib/python2.7/email/test/test_email.pyttest_escape_dump	scCsW|jtjd�d�d}d}|jtjtj||f��||f�dS(NsArthur \Backslash\ Foobarsperson@dom.ains."Arthur \\Backslash\\ Foobar" <person@dom.ain>(sArthur \Backslash\ Foobarsperson@dom.ain(R@RRR(R.R�R((s+/sys/lib/python2.7/email/test/test_email.pyttest_escape_backslashes	scCsyd}d}d\}}|jtj|�||f�|jtj|�||f�|jtj||f�|�dS(NsJohn X. Doe <jxd@example.com>s"John X. Doe" <jxd@example.com>sJohn X. Doesjxd@example.com(sJohn X. Doesjxd@example.com(R@RRR(R.R�tyR�R((s+/sys/lib/python2.7/email/test/test_email.pyttest_name_with_dot	scCsO|j}|tjd�d�|tjd�d�|tjd�d�dS(Ns""example" example"@example.comRs!"\"example\" example"@example.coms#"\\"example\\" example"@example.com(Rs""example" example"@example.com(Rs!"\"example\" example"@example.com(Rs#"\\"example\\" example"@example.com(R@RR(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt2test_parseaddr_preserves_quoted_pairs_in_addresses%	s
	cCs#d}|jtj|�d�dS(NsFoo
	Bar <foo@example.com>sFoo Barsfoo@example.com(sFoo Barsfoo@example.com(R@RR(R.R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_multiline_from_comment7	scCs|jtjd�d�dS(NsA Silly; Personsperson@dom.ains""A Silly; Person" <person@dom.ain>(sA Silly; Personsperson@dom.ain(R@RR(R.((s+/sys/lib/python2.7/email/test/test_email.pyttest_quote_dump=	scCs{|j}|tjd�d�|tjd�d�|tjd�d�|tjd�d�|tjd�d�dS(Nthelloshello
shello
shello
shello

s	hello

(R@Rtfix_eols(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyt
test_fix_eolsB	s	cCs�|j}|j}t�}t�}||d�||d�||d�|d|�|d|�|d|�||d�||d�||d�|d|�|d|�|d|�|||�|||�dS(Nsus-asciisUS-ASCIIsUs-AsCiItusasciitUSASCIItUsAsCiI(R@tassertNotEqualR(R.RBtnetcset1tcset2((s+/sys/lib/python2.7/email/test/test_email.pyttest_charset_richcomparisonsJ	s$				












cCs/|j}|tjddg�ddg�dS(	Nsaperson@dom.ain (Al Person)sBud Person <bperson@dom.ain>s	Al Personsaperson@dom.ains
Bud Personsbperson@dom.ain(s	Al Personsaperson@dom.ain(s
Bud Personsbperson@dom.ain(R@Rtgetaddresses(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_getaddresses^	s
		cCsm|j}|tjdg�dg�|tjdg�d	d
dg�|tjddg�dd
g�dS(Nsfoo: ;Rs	[]*-- =~$s*--s#"Jason R. Mastaler" <jason@dom.ain>sJason R. Mastalers
jason@dom.ain(RR(RR(RR(Rs*--(RR(sJason R. Mastalers
jason@dom.ain(R@RR((R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_getaddresses_nastye	s				cCs4|j}tjdg�}||ddd�dS(s(Test proper handling of a nested comments%User ((nested comment)) <foo@bar.com>iisfoo@bar.comN(R@RR((R.RBtaddrs((s+/sys/lib/python2.7/email/test/test_email.pyt"test_getaddresses_embedded_commento	s	cCs?|j}t�}|jdddd�||j�d�dS(Nscontent-dispositionR�R#sfoo\wacky"name(R@R	R�RT(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_utils_quote_unquoteu	s
		cCs&td�}|j|j�d�dS(Ns
not a charsetR�(RR@tget_body_encoding(R.RD((s+/sys/lib/python2.7/email/test/test_email.pyt)test_get_body_encoding_with_bogus_charset|	scCst|j}t�}d|d<||dd�|j�}|t|�d�||dd�t|d�}||j�d�|jdd	|�||j�d
�||jdt�d�||dd�t�}d
|d<|j�}|t|�d�||dd�t|d�}||j�t	j
�|jdd	|�||j�d�||dd�dS(Nstext/plain; charset=UTF-8sContent-Typescontent-typeiisutf-8R�shello worldRDsaGVsbG8gd29ybGQ=
Rqscontent-transfer-encodingstext/plain; charset="US-ASCII"sus-asciiR�(R@R	RPR&RR.RMRSRiRtencode_7or8bit(R.RBR9RQRD((s+/sys/lib/python2.7/email/test/test_email.pyt-test_get_body_encoding_with_uppercase_charset�s.		
	
cCs8td�}td�}|j|j�|j��dS(Nsus-asciisUS-ASCII(RR@R.(R.tlctuc((s+/sys/lib/python2.7/email/test/test_email.pyttest_charsets_case_insensitive�scCsH|j}|jd�}t�}tj||�||j�d�dS(Ns
msg_43.txtsBmultipart/report
    text/plain
    message/delivery-status
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
        text/plain
    text/rfc822-headers
(R5R:RRRtR-(R.RBR9R{((s+/sys/lib/python2.7/email/test/test_email.pyt1test_partial_falls_inside_message_delivery_status�s		(#R;R<R�R�R�R�R�RRRRRRR	R
RRRRRRRRRRRR'R)R*R,R-R/R1R4R5(((s+/sys/lib/python2.7/email/test/test_email.pyR�csB																
													
					t
TestIteratorscBs,eZd�Zd�Zd�Zd�ZRS(cCs�|j}|j}|jd�}tj|�}t|�}|t|�d�|tj|�|j	��|jd�}tj|�}t|�}|t|�d�t
d�}z |tj|�|j��Wd|j�XdS(Ns
msg_01.txtis
msg_02.txti+s
msg_19.txt(
R@R5R:Rtbody_line_iteratorR�R&tEMPTYSTRINGRRSR%RgR8(R.RBR�R9titR�R4((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_line_iterator�s		 cCs�|j}|jd�}tj|d�}g}d}x+|D]#}|d7}|j|j��q=W||d�|tj|�d�dS(Ns
msg_04.txtR}iiis`a simple kind of mirror
to reflect upon our own
a simple kind of mirror
to reflect upon our own
(R@R:Rttyped_subpart_iteratorR�RSR8R(R.RBR9R9R�tsubpartsRW((s+/sys/lib/python2.7/email/test/test_email.pyttest_typed_subpart_iterator�s	


cCs�|j}|jd�}tj|dd�}g}d}x+|D]#}|d7}|j|j��q@W||d�|tj|�d�dS(Ns
msg_03.txtR}R�iis%
Hi,

Do you like this message?

-Me
(R@R:RR;R�RSR8R(R.RBR9R9R�R<RW((s+/sys/lib/python2.7/email/test/test_email.pyt(test_typed_subpart_iterator_default_type�s	


c	Cs+ddddddddg}dd
lm}m}|�}g}d}x�|D]|\}}|j|�||7}d}	x=tr�|j�}
|
|kr�Pn|j|
�|	d7}	q|W|j||	k�qPW|jt|�|k�|jdj	g|D]\}}|^q�dj	|�k�dS(s�FeedParser BufferedSubFile.push() assumed it received complete
           line endings.  A CR ending one push() followed by a LF starting
           the next push() added an empty line.
        sa
 
iRisc
iRsd
se
s
fs
i�(tBufferedSubFiletNeedMoreDataN(sa
 
i(Ri(sc
i(Ri(sd
i(se
i(s
fi(s
i(
temail.feedparserR?R@tpushRitreadlineR�R�R&R(R.timtR?R@tbsftomtnttiltntn1tol((s+/sys/lib/python2.7/email/test/test_email.pyttest_pushCR_LF
s2		

	
(R;R<R:R=R>RL(((s+/sys/lib/python2.7/email/test/test_email.pyR6�s			tTestParserscBskeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZRS(cCs�|j}td�}zt�j|�}Wd|j�X||dd�||dd�||j�d�|j|j��|jt	|j
�t��dS(Ns
msg_02.txtR�sppp-request@zzz.orgR�sppp@zzz.orgsmultipart/mixed(R@R%RtparseR8RHR�R@R�R~RSR'(R.RBR4R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_parser)
s	cCsQ|j}tjd�}||dd�||dd�||j�d�dS(Ns�From: aperson@dom.ain
To: bperson@dom.ain
Subject: the next line has a space on it
 
Date: Mon, 8 Apr 2002 15:09:19 -0400
Message-ID: spam

Here's the message body
R�s!the next line has a space on it
 s
message-idtspamsHere's the message body
(R@R6R�RS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_continuation7
s			cCsQ|j}tjd�}||dd�||dd�||j�d�dS(Ns�From: aperson@dom.ain
To: bperson@dom.ain
Date: Mon, 8 Apr 2002 15:09:19 -0400
Message-ID: spam
Subject: the next line has a space on it
 

Here's the message body
R�s!the next line has a space on it
 s
message-idRPsHere's the message body
(R@R6R�RS(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt(test_whitespace_continuation_last_headerI
s			cCs�|j}tddd�}zt�j|�}Wd|j�X|t|j��d�|jd�}||j�d�||j�d�|jd�}||j�d	�dS(
Ns
msg_26.txtR$R)iis
text/plains!Simple email with attachment.

isapplication/riscos(R@R%RRNR8R&RSRH(R.RBR4R9tpart1tpart2((s+/sys/lib/python2.7/email/test/test_email.pyttest_crlf_separation[
s	c	Cs�|j}|j}td�}ztj|�}Wd|j�X||j�d�|t|j��d�|jd�}||j	�d�||j�d�|t|j��d�|jd�}||j�d�||j	�d�||j�d�|jd�}||j	�d�||j�d�|t|j��d�|jd�}||j�d�||j	�d�||j�d�dS(	Ns
msg_28.txtiiismessage/rfc822s
text/plains
message 1
s
message 2
(
R@R5R%R6R7R8R@R&RSRH(	R.RBR�R4R9RStpart1aRTtpart2a((s+/sys/lib/python2.7/email/test/test_email.pyt-test_multipart_digest_with_extra_mime_headersi
s0		cCs?dddg}tjtj|��}|j|dd�dS(Ns$From: Andrew Person <aperson@dom.ains
Subject: Tests%Date: Tue, 20 Aug 2002 16:43:45 +1000tdatesTue, 20 Aug 2002 16:43:45 +1000(R6R�R+RR@(R.R�R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_three_lines�s
	cCsd|j}d}d}d||f}tj|�}||jd�|�||jd�|�dS(NR}s	more texts'Header: %s
Next-Header: %s

Body

RsNext-Header(R@R6R�tget(R.RBtvalue1tvalue2RR9((s+/sys/lib/python2.7/email/test/test_email.pyt3test_strip_line_feed_and_carriage_return_in_headers�s	
cCsz|j}d}tj|�}|t|j��d�|j�}|j�||dddg�||j�d�dS(Ns(>From: foo
From: bar
!"#QUX;~: zoo

bodyis!"#QUX;~s>FromR�tbody(R@R6R�R&R�R�RS(R.RBRR9R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2822_header_syntax�s	
cCs;|j}d}tj|�}|t|j��d�dS(Ns<>From foo@example.com 11:25:53
From: bar
!"#QUX;~: zoo

bodyi(R@R6R�R&R�(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.pyt(test_rfc2822_space_not_allowed_in_header�s	cCsa|j}d}tj|�}|j�}|j�||dddg�||j�d�dS(Ns7A: first header
B: second header
CC: third header

bodytAtBtCCR_(R@R6R�R�R�RS(R.RBRR9theaders((s+/sys/lib/python2.7/email/test/test_email.pyt!test_rfc2822_one_character_header�s	
cCs>d}tj|�}|j|jd�j�jd��dS(Ns�From: foo@bar.com
To: baz
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary=BOUNDARY

--BOUNDARY
Content-Type: text/plain

body ending with CRLF newline

--BOUNDARY--
is
(R6R�R�RStendswith(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_CRLFLF_at_end_of_part�s(
R;R<RORQRRRURXRZR^R`RaRfRh(((s+/sys/lib/python2.7/email/test/test_email.pyRM(
s					"			
			t
TestBase64cBs,eZd�Zd�Zd�Zd�ZRS(cCs�|j}|tjd�ttjddd���x�td�D]�}|dkr\d}nZ|dkrqd}nE|dkr�d	}n0|d
kr�d}n|dkr�d}nd
}|tjd|�|�qAWdS(NRteolRiiiiiii	iiiR�(R@Rt
base64_lenR&R�R(R.RBtsizetbsize((s+/sys/lib/python2.7/email/test/test_email.pyttest_len�s 						cCsk|j}|tjd�d�|tjd�d�|tjdd�d�|tjdd�d�dS(NRsaGVsbG8=RtXsaGVsbG8NCndvcmxk
thelloXworld(R@RRq(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_decode�s
	cCs�|j}|tjd�d�|tjd�d�|tjd�d�|tjdd�d�|tjdd	d
d�d�|tjdd	d
dd
d�d�dS(NRRs	aGVsbG8=
shello
s	aGVsbG8K
is
aGVsbG8NCg==
sxxxx iRi(s�eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IA==
Rjs
s�eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IHh4eHggeHh4eCB4eHh4IHh4eHgg
eHh4eCB4eHh4IA==
(R@RR�(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyttest_encode�s	cCs�|j}tj}||d�d�||d�d�||ddd�d�||ddt�d	�||d
ddd
�d�||d
ddd
dd�d�dS(NRs=?iso-8859-1?b?aGVsbG8=?=shello
worlds!=?iso-8859-1?b?aGVsbG8NCndvcmxk?=RDs
iso-8859-2s=?iso-8859-2?b?aGVsbG8=?=t	keep_eolss!=?iso-8859-1?b?aGVsbG8Kd29ybGQ=?=sxxxx iRi(s�=?iso-8859-1?b?eHh4eCB4eHh4IHh4eHggeHg=?=
 =?iso-8859-1?b?eHggeHh4eCB4eHh4IHh4eHg=?=
 =?iso-8859-1?b?IHh4eHggeHh4eCB4eHh4IHg=?=
 =?iso-8859-1?b?eHh4IHh4eHggeHh4eCB4eHg=?=
 =?iso-8859-1?b?eCB4eHh4IHh4eHggeHh4eCA=?=
 =?iso-8859-1?b?eHh4eCB4eHh4IHh4eHgg?=Rjs
s=?iso-8859-1?b?eHh4eCB4eHh4IHh4eHggeHg=?=
 =?iso-8859-1?b?eHggeHh4eCB4eHh4IHh4eHg=?=
 =?iso-8859-1?b?IHh4eHggeHh4eCB4eHh4IHg=?=
 =?iso-8859-1?b?eHh4IHh4eHggeHh4eCB4eHg=?=
 =?iso-8859-1?b?eCB4eHh4IHh4eHggeHh4eCA=?=
 =?iso-8859-1?b?eHh4eCB4eHh4IHh4eHgg?=(R@Rt
header_encodeRi(R.RBthe((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_encode�s		(R;R<RnRqRrRv(((s+/sys/lib/python2.7/email/test/test_email.pyRi�s	
		t
TestQuopricBsYeZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
RS(	cCs�gttd�td�d�D]}t|�^q gttd�td�d�D]}t|�^qUgttd�td�d�D]}t|�^q�dd	d
ddd
g|_gtd�D]'}t|�|jkr�t|�^q�|_gttd
�td�d�D]}t|�^qdg|_|jjd�gtd�D]'}t|�|jkrYt|�^qY|_dS(NR�tziRbtZt0t9t!t*RNRMt/Rit~s	t=(Rtordtchrthlitthnontblittremovetbnon(R.R�((s+/sys/lib/python2.7/email/test/test_email.pyR s�=B=cCsXx'|jD]}|jtj|��q
Wx'|jD]}|jtj|��q4WdS(N(R�R�Rtheader_quopri_checkR�R�(R.tc((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_quopri_check scCsXx'|jD]}|jtj|��q
Wx'|jD]}|jtj|��q4WdS(N(R�R�Rtbody_quopri_checkR�R�(R.R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_quopri_check&sc
Cs�|j}tj}tj}x=d	D]5}|||�t||dddd��d�q"Wx$|jD]}|||�d�qeWx$|jD]}|||�d�q�WdS(
NRs
h@e@l@l@o@RDRRjiii(shellos
h@e@l@l@o@(R@Rtheader_quopri_lenRtR&R�R�(R.RBthqltencR~R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_quopri_len,s			
3cCsd|j}tj}x$|jD]}|||�d�qWx$|jD]}|||�d�qCWdS(Nii(R@Rtbody_quopri_lenR�R�(R.RBtbqlR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_quopri_len8s		cCsIxBtd�D]4}t|�}|jtjtj|��|�q
WdS(Ni(RR�R@RR�tquote(R.R�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_quote_unquote_idempotent@scCs�|j}tj}||d�d�||d�d�||ddd�d�||ddt�d	�||d
�d�||dd
dd�d�||dd
dddd�d�dS(NRs=?iso-8859-1?q?hello?=shello
worlds!=?iso-8859-1?q?hello=0D=0Aworld?=RDs
iso-8859-2s=?iso-8859-2?q?hello?=Rss=?iso-8859-1?q?hello=0Aworld?=shello�heres=?iso-8859-1?q?hello=C7there?=sxxxx iRi(s�=?iso-8859-1?q?xxxx_xxxx_xxxx_xxxx_xx?=
 =?iso-8859-1?q?xx_xxxx_xxxx_xxxx_xxxx?=
 =?iso-8859-1?q?_xxxx_xxxx_xxxx_xxxx_x?=
 =?iso-8859-1?q?xxx_xxxx_xxxx_xxxx_xxx?=
 =?iso-8859-1?q?x_xxxx_xxxx_?=Rjs
s�=?iso-8859-1?q?xxxx_xxxx_xxxx_xxxx_xx?=
 =?iso-8859-1?q?xx_xxxx_xxxx_xxxx_xxxx?=
 =?iso-8859-1?q?_xxxx_xxxx_xxxx_xxxx_x?=
 =?iso-8859-1?q?xxx_xxxx_xxxx_xxxx_xxx?=
 =?iso-8859-1?q?x_xxxx_xxxx_?=(R@RRtRi(R.RBRu((s+/sys/lib/python2.7/email/test/test_email.pyRvEs		cCsk|j}|tjd�d�|tjd�d�|tjdd�d�|tjdd�d�dS(NRRRoshello
worldRp(R@RRq(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyRq_s
	cCs�|j}|tjd�d�|tjd�d�|tjd�d�|tjdd�d�|tjdddd	�d
�|tjdddd	dd�d
�|tjd�d�dS(NRRshello
worldshello
worldisxxxx iRi(sjxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx=
 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx=
x xxxx xxxx xxxx xxxx=20Rjs
slxxxx xxxx xxxx xxxx xxxx xxxx xxxx xxxx=
 xxxx xxxx xxxx xxxx xxxx xxxx xxxx xxx=
x xxxx xxxx xxxx xxxx=20sone line

two line(R@RR�(R.RB((s+/sys/lib/python2.7/email/test/test_email.pyRrfs		(R;R<R R�R�R�R�R�RvRqRr(((s+/sys/lib/python2.7/email/test/test_email.pyRws								tTestCharsetcBs5eZd�Zd�Zd�Zd�Zd�ZRS(cCs6ddlm}y|jd=Wntk
r1nXdS(Ni�(Rtfake(R6RtCHARSETSR�(R.t
CharsetModule((s+/sys/lib/python2.7/email/test/test_email.pyttearDown�s

cCso|j}td�}d}|j|�}|||j|��d}|j|�}|||j|��dS(Nsus-asciisHello World!s
�����(R@Rt
to_splittabletfrom_splittable(R.RBR�R~tsp((s+/sys/lib/python2.7/email/test/test_email.pyttest_idempotent�s	cCs|j}td�}|d|jd��td�}|d|jd��td�}|d|jd��td�}y3|d	|jd
��|d
|jd
t��Wntk
r�nXddlm}|jd
|jd�td
�}|d|jd��dS(Ns
iso-8859-1s
hello w=F6rldshello w�sutf-8saGVsbG8gd29ybGQ=
shello worldsus-asciiseuc-jps$B5FCO;~IW(Bs����i�(RR�(	R@Rtbody_encodeRktLookupErrorR6tadd_charsettQPRF(R.RBR�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_body_encode�s&	
cCs<td�}|jt|�d�|jtjtd�dS(Nuus-asciisus-asciisasc�RR@R'R`RtCharsetError(R.RD((s+/sys/lib/python2.7/email/test/test_email.pyttest_unicode_charset_name�scCs&td�}|jt|�d�dS(NR�sutf-8(RR@R'(R.RD((s+/sys/lib/python2.7/email/test/test_email.pyttest_codecs_aliases_accepted�s(R;R<R�R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR��s
				t
TestHeadercBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZRS(cCsL|j}td�}||j�d�|jd�||j�d�dS(NsHello World!s Goodbye World!sHello World!  Goodbye World!(R5RR�R�(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_simple�s
	
cCsL|j}td�}||j�d�|jd�||j�d�dS(NsHello World!sGoodbye World!sHello World! Goodbye World!(R5RR�R�(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_simple_surprise�s
	
cCs)d}|jt|�|dfg�dS(Nsno decoding needed(R@RRF(R.R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_needs_no_decoding�scCsUtddd�}x<|jdd�jd�D]}|jt|�dk�q.WdS(Ns�I am the very model of a modern Major-General; I've information vegetable, animal, and mineral; I know the kings of England, and I quote the fights historical from Marathon to Waterloo, in order categorical; I'm very well acquainted, too, with matters mathematical; I understand equations, both the simple and quadratical; about binomial theorem I'm teeming with a lot o' news, with many cheerful facts about the square of the hypotenuse.RiLt
splitcharsRs
 (RR�R�R�R&(R.R�tl((s+/sys/lib/python2.7/email/test/test_email.pyt	test_long�s		"cCs|j}td�}td�}td�}d}d}djd�}t||�}|j||�|j||�|j�}	||	d�|t|	�|df|df|dfg�t|�}
||
jd�d�tt|	��}|||	�dS(	Ns
iso-8859-1s
iso-8859-2sutf-8s�Die Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an s�ndischen Wandgem�en vorbei, gegen die rotierenden Klingen bef�rt. s;Finan� metropole se hroutily pod tlakem jejich d�pu.. u�正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput.」と言っています。s=?iso-8859-1?q?Die_Mieter_treten_hier_ein_werden_mit_einem_Foerderband_ko?=
 =?iso-8859-1?q?mfortabel_den_Korridor_entlang=2C_an_s=FCdl=FCndischen_Wan?=
 =?iso-8859-1?q?dgem=E4lden_vorbei=2C_gegen_die_rotierenden_Klingen_bef=F6?=
 =?iso-8859-1?q?rdert=2E_?= =?iso-8859-2?q?Finan=E8ni_metropole_se_hroutily?=
 =?iso-8859-2?q?_pod_tlakem_jejich_d=F9vtipu=2E=2E_?= =?utf-8?b?5q2j56K6?=
 =?utf-8?b?44Gr6KiA44GG44Go57+76Kiz44Gv44GV44KM44Gm44GE44G+44Gb44KT44CC?=
 =?utf-8?b?5LiA6YOo44Gv44OJ44Kk44OE6Kqe44Gn44GZ44GM44CB44GC44Go44Gv44Gn?=
 =?utf-8?b?44Gf44KJ44KB44Gn44GZ44CC5a6f6Zqb44Gr44Gv44CMV2VubiBpc3QgZGFz?=
 =?utf-8?q?_Nunstuck_git_und_Slotermeyer=3F_Ja!_Beiherhund_das_Oder_die_Fl?=
 =?utf-8?b?aXBwZXJ3YWxkdCBnZXJzcHV0LuOAjeOBqOiogOOBo+OBpuOBhOOBvuOBmQ==?=
 =?utf-8?b?44CC?=s�Die Mieter treten hier ein werden mit einem Foerderband komfortabel den Korridor entlang, an südlündischen Wandgemälden vorbei, gegen die rotierenden Klingen befördert. Finančni metropole se hroutily pod tlakem jejich důvtipu.. 正確に言うと翻訳はされていません。一部はドイツ語ですが、あとはでたらめです。実際には「Wenn ist das Nunstuck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput.」と言っています。(R5RR�RR�RR�R(R.RBRR�R�R�R�R�R�R�tustrtnewh((s+/sys/lib/python2.7/email/test/test_email.pyttest_multilingual�s*	cCsF|j}t�}||d�|jdtd��||d�dS(NRRus
iso-8859-1s=?iso-8859-1?q?foo?=(R5RR�R(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_header_ctor_default_args	s
		
cCs�|j}d}t|�}||j�d�t|dd�}||j�d�t|dddd�}||j�|�dS(Ns|A very long line that must get split to something other than at the 76th character boundary to test the non-default behaviors}A very long line that must get split to something other than at the 76th
 character boundary to test the non-default behaviorR�R�s}A very long line that must get split to something other than at the
 76th character boundary to test the non-default behaviorRi(R5RR�(R.RBR�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_explicit_maxlinelens	cCsN|j}d}t|�}||dg�t|�}|||j��dS(NR(shelloN(R@RRFRR�(R.RBR~R�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_us_ascii_headers	cCs3|j}t�}|jdd�||d�dS(NRs
iso-8859-1s=?iso-8859-1?q?hello?=(R@RR�(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_string_charset&s		cCsQ|j}tdd�}||j�d�tdd�}||j�d�dS(Nupöstalsutf-8s=?utf-8?q?p=C3=B6stal?=u菊地時夫s=?utf-8?b?6I+K5Zyw5pmC5aSr?=(R@RR�(R.RBR�((s+/sys/lib/python2.7/email/test/test_email.pyttest_utf8_shortest5s
	cCs�|j}|j}d}|tt|�t�}|t|j|�|tt|dd��|�|j|dd�|t|�|�dS(Ns0Ynwp4dUEbay Auction Semiar- No Charge �Earn BigR�R�(R`R@tUnicodeErrorRR�R'(R.R`RBR�R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_bad_8bit_header<s			cCsq|j}t�}|jdd�|jd�|j�}||d�tt|��}||j�|�dS(NRs
iso-8859-1tworlds=?iso-8859-1?q?hello?= world(R@RR�R�RR(R.RBR�R~((s+/sys/lib/python2.7/email/test/test_email.pyt test_encoded_adjacent_nonencodedGs		

cCsT|j}d}t|�}||ddd	g�t|�}||j�d�dS(
NsGSubject: =?koi8-r?b?8NLP18XSy8EgzsEgxsnOwczYztk=?= =?koi8-r?q?=CA?= zz.sSubject:s��� � �����koi8-rszz.s6Subject: =?koi8-r?b?8NLP18XSy8EgzsEgxsnOwczYztnK?= zz.(sSubject:N(s��� � �����koi8-r(szz.N(R@RRFRR�(R.RBR~tpartsthdr((s+/sys/lib/python2.7/email/test/test_email.pyttest_whitespace_eaterQs	cCs&|j}d}|tjt|�dS(NsXSubject: =?EUC-KR?B?CSixpLDtKSC/7Liuvsax4iC6uLmwMcijIKHaILzSwd/H0SC8+LCjwLsgv7W/+Mj3I ?=(R`RRaR(R.R`R~((s+/sys/lib/python2.7/email/test/test_email.pyttest_broken_base64_headerZs	cCs7t�}|jdddd�|jd|d�dS(NsContent-DispositionR�R#sbud.gifsattachment; filename="bud.gif"(R	R�R@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyttest_ascii_add_header`s
		cCs7t�}|jdddd�|jd|d�dS(	NsContent-DispositionR�R#s
iso-8859-1Rs
Fu�aller.ppts3attachment; filename*="iso-8859-1''Fu%DFballer.ppt"(s
iso-8859-1Rs
Fu�aller.ppt(R	R�R@(R.R9((s+/sys/lib/python2.7/email/test/test_email.pyt#test_nonascii_add_header_via_triplegs	cCs9tdd�j�}|j|d�|j|t�dS(Ntabcs
iso-8859-2s=?iso-8859-2?q?abc?=(RR�R@tassertIsInstanceR'(R.tres((s+/sys/lib/python2.7/email/test/test_email.pyttest_encode_unaliased_charsetos(R;R<R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR��s"					1							
					tTestRFC2231cBs�eZd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZRS(cCsN|j}|jd�}||jd�d�||jddt�d	�dS(
Ns
msg_29.txtttitlesus-asciitens%This is even more ***fun*** isn't it!R�s'"This is even more ***fun*** isn't it!"(sus-asciiR�s%This is even more ***fun*** isn't it!(sus-asciiR�s'"This is even more ***fun*** isn't it!"(R@R:RIRk(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyR�ys	cCs�|j}t�}|jdddd�||jd�d
�|jdddddd�||jd�d�|jd�}|jdddddd�|j|j�d	�dS(NR�s%This is even more ***fun*** isn't it!RDsus-asciiRtlanguageR�s
msg_01.txts$Return-Path: <bbb@zzz.org>
Delivered-To: bbb@zzz.org
Received: by mail.zzz.org (Postfix, from userid 889)
 id 27CEAD38CC; Fri,  4 May 2001 14:05:44 -0400 (EDT)
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Message-ID: <15090.61304.110929.45684@aaa.zzz.org>
From: bbb@ddd.com (John X. Doe)
To: bbb@zzz.org
Subject: This is a test message
Date: Fri, 4 May 2001 14:05:44 -0400
Content-Type: text/plain; charset=us-ascii;
 title*="us-ascii'en'This%20is%20even%20more%20%2A%2A%2Afun%2A%2A%2A%20isn%27t%20it%21"


Hi,

Do you like this message?

-Me
(sus-asciiRs%This is even more ***fun*** isn't it!(sus-asciisens%This is even more ***fun*** isn't it!(R@R	R�RIR:R5Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyR��s		

cCsz|j}|jd�}|jdddddd�|jdd	dddd�|jdd
d�||j�d�dS(
Ns
msg_01.txtRuR�RDsus-asciiR�R�R�s%This is even more ***fun*** isn't it!RbsContent-Types&Return-Path: <bbb@zzz.org>
Delivered-To: bbb@zzz.org
Received: by mail.zzz.org (Postfix, from userid 889)
 id 27CEAD38CC; Fri,  4 May 2001 14:05:44 -0400 (EDT)
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Message-ID: <15090.61304.110929.45684@aaa.zzz.org>
From: bbb@ddd.com (John X. Doe)
To: bbb@zzz.org
Subject: This is a test message
Date: Fri, 4 May 2001 14:05:44 -0400
Content-Type: text/plain; charset="us-ascii";
 title*="us-ascii'en'This%20is%20even%20more%20%2A%2A%2Afun%2A%2A%2A%20isn%27t%20it%21"


Hi,

Do you like this message?

-Me
(R5R:R�R�Re(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyR��s	
cCs/|j}|jd�}||j�d�dS(Ns
msg_32.txtsus-ascii(R@R:R�(R.RBR9((s+/sys/lib/python2.7/email/test/test_email.pyt test_rfc2231_get_content_charset�s	cCsNd}tj|�}|jd�}|jt|t��|j|d�dS(NsContent-Transfer-Encoding: 8bit
Content-Disposition: inline; filename="file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm"
Content-Type: text/html; NAME*0=file____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEM; NAME*1=P_nsmail.htm

tNAMEsMfile____C__DOCUMENTS_20AND_20SETTINGS_FABIEN_LOCAL_20SETTINGS_TEMP_nsmail.htm(R6R�RIR�R~ttupleR@(R.RR9tparam((s+/sys/lib/python2.7/email/test/test_email.pyt#test_rfc2231_no_language_or_charset�scCs/d}tj|�}|j|j�d�dS(Ns�Content-Disposition: inline;
	filename*0*="''This%20is%20even%20more%20";
	filename*1*="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2="is it not.pdf"

s)This is even more ***fun*** is it not.pdf(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_rfc2231_no_language_or_charset_in_filename�scCs/d}tj|�}|j|j�d�dS(Ns�Content-Disposition: inline;
	filename*0*="''This%20is%20even%20more%20";
	filename*1*="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2="is it not.pdf"

s)This is even more ***fun*** is it not.pdf(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt7test_rfc2231_no_language_or_charset_in_filename_encoded�scCs/d}tj|�}|j|j�d�dS(Ns�Content-Disposition: inline;
	filename*0="''This%20is%20even%20more%20";
	filename*1*="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2="is it not.pdf"

s1This%20is%20even%20more%20***fun*** is it not.pdf(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_partly_encoded�s
	cCs/d}tj|�}|j|j�d�dS(Ns�Content-Disposition: inline;
	filename*0="This%20is%20even%20more%20";
	filename*1="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2="is it not.pdf"

s?This%20is%20even%20more%20%2A%2A%2Afun%2A%2A%2A%20is it not.pdf(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_partly_nonencoded�s
	cCs/d}tj|�}|j|j�d�dS(Ns�Content-Type: multipart/alternative;
	boundary*0*="''This%20is%20even%20more%20";
	boundary*1*="%2A%2A%2Afun%2A%2A%2A%20";
	boundary*2="is it not.pdf"

s)This is even more ***fun*** is it not.pdf(R6R�R@R[(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt/test_rfc2231_no_language_or_charset_in_boundary	
scCs/d}tj|�}|j|j�d�dS(Ns�Content-Type: text/plain;
	charset*0*="This%20is%20even%20more%20";
	charset*1*="%2A%2A%2Afun%2A%2A%2A%20";
	charset*2="is it not.pdf"

s)this is even more ***fun*** is it not.pdf(R6R�R@R�(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt.test_rfc2231_no_language_or_charset_in_charset
scCs/d}tj|�}|j|j�d�dS(Ns�Content-Disposition: inline;
	filename*0*="bogus'xx'This%20is%20even%20more%20";
	filename*1*="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2="is it not.pdf"

s)This is even more ***fun*** is it not.pdf(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt%test_rfc2231_bad_encoding_in_filename"
scCs/d}tj|�}|j|j�d�dS(Ns:Content-Type: text/plain; charset*=bogus''utf-8%E2%80%9D

(R6R�R@R�RF(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt$test_rfc2231_bad_encoding_in_charset.
scCs/d}tj|�}|j|j�d�dS(Ns:Content-Type: text/plain; charset*=ascii''utf-8%E2%80%9D

(R6R�R@R�RF(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt%test_rfc2231_bad_character_in_charset8
scCs/d}tj|�}|j|j�d�dS(Ns�Content-Disposition: inline;
	filename*0*="ascii'xx'This%20is%20even%20more%20";
	filename*1*="%2A%2A%2Afun%2A%2A%2A%20";
	filename*2*="is it not.pdf%E2"

u,This is even more ***fun*** is it not.pdf�(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyt&test_rfc2231_bad_character_in_filenameB
scCs/d}tj|�}|j|j�d�dS(Ns^Content-Transfer-Encoding: 8bit
Content-Disposition: inline; filename*=X-UNKNOWN''myfile.txt

s
myfile.txt(R6R�R@RT(R.RR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_unknown_encodingN
scCsa|j}d}tj|�}|jd�\}}}||d�||d�||d�dS(NsJContent-Type: application/x-foo;
	name*0*="Frank's"; name*1*=" Document"

R�sFrank's Document(R@R6R�RIRF(R.RBRR9RDR�R~((s+/sys/lib/python2.7/email/test/test_email.pyt-test_rfc2231_single_tick_in_filename_extendedW
s	

cCsNd}tj|�}|jd�}|jt|t��|j|d�dS(NsGContent-Type: application/x-foo; name*0="Frank's"; name*1=" Document"

R�sFrank's Document(R6R�RIR�R~R�R@(R.RR9R�((s+/sys/lib/python2.7/email/test/test_email.pyt$test_rfc2231_single_tick_in_filenamed
s
cCsa|j}d}tj|�}|jd�\}}}||d�||d�||d�dS(NsYContent-Type: application/x-foo;
	name*0*="us-ascii'en-us'Frank's"; name*1*=" Document"

R�sus-asciisen-ussFrank's Document(R@R6R�RI(R.RBRR9RDR�R~((s+/sys/lib/python2.7/email/test/test_email.pyt!test_rfc2231_tick_attack_extendedn
s	

cCsNd}tj|�}|jd�}|jt|t��|j|d�dS(NsWContent-Type: application/x-foo;
	name*0="us-ascii'en-us'Frank's"; name*1=" Document"

R�sus-ascii'en-us'Frank's Document(R6R�RIR�R~R�R@(R.RR9R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_tick_attack{
s
cCs8|j}d}tj|�}||jd�d�dS(Ns:Content-Type: application/x-foo; name="Frank's Document"

R�sFrank's Document(R@R6R�RI(R.RBRR9((s+/sys/lib/python2.7/email/test/test_email.pyttest_rfc2231_no_extended_values�s	cCsa|j}d}tj|�}|jd�\}}}||d�||d�||d�dS(NsiContent-Type: application/x-foo;
	name*0*="us-ascii'en-us'My";
	name*1=" Document";
	name*2*=" For You"

R�sus-asciisen-ussMy Document For You(R@R6R�RI(R.RBRR9RDR�R~((s+/sys/lib/python2.7/email/test/test_email.pyt,test_rfc2231_encoded_then_unencoded_segments�s	

cCsa|j}d}tj|�}|jd�\}}}||d�||d�||d�dS(NsiContent-Type: application/x-foo;
	name*0="us-ascii'en-us'My";
	name*1*=" Document";
	name*2*=" For You"

R�sus-asciisen-ussMy Document For You(R@R6R�RI(R.RBRR9RDR�R~((s+/sys/lib/python2.7/email/test/test_email.pyt,test_rfc2231_unencoded_then_encoded_segments�s	

(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�(((s+/sys/lib/python2.7/email/test/test_email.pyR�xs.		%						
	
		
		
	
				
	
	
				t
TestSignedcBs,eZd�Zd�Zd�Zd�ZRS(cCsItt|��}z|j�}tj|�}Wd|j�X||fS(N(R%RRgR6R�R8(R.R#R4toriginalR9((s+/sys/lib/python2.7/email/test/test_email.pyt_msg_and_obj�scCslddl}|jd|j|jB�}|j|�jd�}|j|�jd�}|j||�dS(Ni�s^--([^\n]+)\n(.*?)\n--\1$i(tretcompiletStMtsearchtgroupR@(R.R�tresultR�treparttinparttoutpart((s+/sys/lib/python2.7/email/test/test_email.pyt_signed_parts_eq�s
cCs5|jd�\}}|j�}|j||�dS(Ns
msg_45.txt(R�ReR�(R.R�R9R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_headers_as_string�scCsQ|jd�\}}t�}t|�j|�|j�}|j||�dS(Ns
msg_45.txt(R�RRRjR-R�(R.R�R9R4R�((s+/sys/lib/python2.7/email/test/test_email.pyttest_long_headers_flatten�s
	(R;R<R�R�R�R�(((s+/sys/lib/python2.7/email/test/test_email.pyR��s				cCsBtjt}gt|�D]$}|jd�rt||�^qS(NR(RxtmodulesR;tdirR�tgetattr(tmodR�((s+/sys/lib/python2.7/email/test/test_email.pyt_testclasses�s
cCs:tj�}x't�D]}|jtj|��qW|S(N(tunittestt	TestSuiteR�taddTestt	makeSuite(tsuitet	testclass((s+/sys/lib/python2.7/email/test/test_email.pyR��scCs"xt�D]}t|�q
WdS(N(R�R(R�((s+/sys/lib/python2.7/email/test/test_email.pyt	test_main�st__main__tdefaultTestR�(QRRxRQR�R(R�twarningsR$t	cStringIORR6t
email.CharsetRtemail.HeaderRRRtemail.ParserRRtemail.GeneratorRRt
email.MessageR	temail.MIMEAudioR
temail.MIMETextRtemail.MIMEImageRtemail.MIMEBaseR
temail.MIMEMessageRtemail.MIMEMultipartRRRRRRRttest.test_supportRRt
email.testRR!R+R8RR%tTestCaseR&R=R�R�RR(R9R=RJRzR�R�R�R�R6RMRiRwR�R�R�R�R�R�R�R;tmain(((s+/sys/lib/python2.7/email/test/test_email.pyt<module>s���81+4�s>���\�Ho=��!			

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to webmaster@9p.io.