python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_mailbox.cpython-311.opt-1.pyc

eo4ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlZddlZddlZddlZejsejdGddZGdd	eZGd
deejZGdd
eejZGddeZGddeZGddeejZGddeejZGddeejZGddeejZGddZ Gddej!Z"GddejZ#Gd d!eejZ$Gd"d#e$ejZ%Gd$d%Z&Gd&d'e&e$Z'Gd(d)e$ejZ(Gd*d+e$ejZ)Gd,d-e&e$Z*Gd.d/eejZ+Gd0d1eZ,Gd2d3e,ejZ-Gd4d5e,ejZ.d6Z/d7Z0Gd8d9ejZ1d:Z2e23d;Z4id<d=d>d?d@d?dAdBd@dCdAdDdAdEdAdFdGdHdIdJdKdLdMdNdOdPdQdRdSdTdUdVZ5dWZ6GdXdYejZ7dZZ8e9d[krej:dSdS)\N)support)	os_helper)
socket_helperztest requires gethostname()cfeZdZejejejejejej	fZ
dZdZdS)TestBasec4||tjj||tjt
D].\}}||||/|	|
|t|
ttttD]\}}|
|}||tjj||tj||
|dSN)assertIsInstanceemailmessageMessagemailbox_sample_headersitemsassertInget_all
assertTrueis_multipartassertEquallenget_payload_sample_payloads	enumerateassertNotIsInstance)selfmsgkeyvalueipayloadparts       E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_mailbox.py
_check_samplezTestBase._check_samplesUc5=#8999c7?333)//11	3	3JCMM%S!1!12222((**+++S__..//5E1F1FGGG#$455	:	:JAw??1%%D!!$
(=>>>$$T7?;;;T--//9999		:	:ctj|rtj|dStj|rtj|dSdSr	)ospathisdirrrmtreeexistsunlink)rtargets  r"_delete_recursivelyzTestBase._delete_recursively,sf
7==  	%V$$$$$
W^^F
#
#	%V$$$$$	%	%r$N)
__name__
__module____qualname__rr
MaildirMessagemboxMessage	MHMessageBabylMessageMMDFMessageall_mailbox_typesr#r-r$r"rrs[ '*@ ,g.? -w/BD:::%%%%%r$rceZdZdZdZdZdZdZdZe	j
dZdZdZ
d	Zd
Ze	j
ddZd
ZdZdZdZdZdZdZdZdZd5dZdZdZdZdZdZ dZ!dZ"dZ#d Z$d!Z%d"Z&d#Z'd$Z(d%Z)d5d&Z*d'Z+d5d(Z,d)Z-d5d*Z.d+Z/d5d,Z0d-Z1d.Z2d/Z3d0Z4d1Z5d2Z6d3Z7d4Z8dS)6TestMailboxNzFrom: foo

%s
ctj|_||j||j|_dSr	)rTESTFN_pathr-_factory_boxrs r"setUpzTestMailbox.setUp;s;%
  ,,,MM$*--			r$cl|j||jdSr	)r>closer-r<r?s r"tearDownzTestMailbox.tearDown@s0	  ,,,,,r$c
g}||j|jdz|t|jd||jt
jt|t|jd||jtj
t|t|jd||jtjt|t|jd||jt|t|jd||jt|t|jd|t5||jtjtjtd	dddn#1swxYwY|t|jd
||j|d|jdzdD](}||j||)dS)Nrutf-8encoding)rErFrGrHrIrJ)appendr>add	_templaterrrr
_sample_messagermessage_from_stringioBytesIO_bytes_sample_messageassertWarnsDeprecationWarning
TextIOWrapper
get_stringr#)rkeysrs   r"test_addzTestMailbox.test_addDsDIMM$.1"455666TY+++DIMM'//"B"BCCDDDTY+++DIMM%";O"L"LMMNNNTY+++DIMM"*-B"C"CDDEEETY+++DIMM/22333TY+++DIMM"788999TY+++


0
1
1	X	XKK	

 ,A!B!BWUUUWW
X
X
X	X	X	X	X	X	X	X	X	X	X	X	X	X	X	X	
TY+++--d1g668JKKK#	3	3Atya12222	3	3s2AKKKu{            From: foo
            Subject: Falinaptár házhozszállítással. Már rendeltél?

            0
            cF|j|jd}|t|jd||j||jddS)Nlatin-1rE)r>rP
_nonascii_msgencoderr	get_bytesrrs  r""test_add_invalid_8bit_bytes_headerz.TestMailbox.test_add_invalid_8bit_bytes_headerbsimmD.55i@@AATY+++,,S11%%i00	2	2	2	2	2r$c|jd}|j|d}||j|ddS)NrEr^zZSubject: =?unknown-8bit?b?RmFsaW5hcHThciBo4Xpob3pzeuFsbO104XNzYWwuIE3hciByZW5kZWx06Ww/?=

)r_
splitlinesr>rPr`rrZ)rsubjrs   r"&test_invalid_nonascii_header_as_stringz2TestMailbox.test_invalid_nonascii_header_as_stringhss!,,..q1immDKK	2233--c22
-	.	.	.	.	.r$cT|td5|j|jdddn#1swxYwY|j|t|jd|dSNz
ASCII-onlyr)	assertRaisesRegex
ValueErrorr>rPr_flushrrassertMailboxEmptyr?s r"&test_add_nonascii_string_header_raisesz2TestMailbox.test_add_nonascii_string_header_raisesos

#
#J
=
=	.	.IMM$,---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	TY+++!!!!!s AAAcGddtdfd}tj|tjjd||5|jtj	ddddn#1swxYwY|
t|jd|j|
dS)NceZdZdS)JTestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.CustomErrorNr.r/r0r7r$r"CustomErrorrqwsr$rsza fake errorcr	r7)argskwrsexc_msgs  r"raiserzETestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.raiserzs+g&&&r$flattenuFrom: Alphösor)	Exceptionrpatchr	generatorBytesGeneratorrjr>rPrSrrrBrm)rrxrsrws  @@r")test_add_that_raises_leaves_mailbox_emptyz5TestMailbox.test_add_that_raises_leaves_mailbox_emptyvs@))))))))) 	'	'	'	'	'	'
dEO:IvNNN

#
#K
9
9	G	GIMM%34DEEFFF	G	G	G	G	G	G	G	G	G	G	G	G	G	G	GTY+++	!!!!!s-BBBu0        From: foo@bar.com
        To: báz
        Subject: Maintenant je vous présente mon collègue, le pouf célèbre
        	Jean de Baddie
        Mime-Version: 1.0
        Content-Type: text/plain; charset="utf-8"
        Content-Transfer-Encoding: 8bit

        Да, они летят.
        rKc	.|j|j}||j||j|j|5}|||jdtj	
dddn#1swxYwY||j|ddS)N
uДа, они летят.
)r>rP_non_latin_bin_msgrraget_filereadreplacer&linesepr`rrrfs   r"test_add_8bit_bodyzTestMailbox.test_add_8bit_bodys6immD344,,S110	2	2	2
Y


$
$	6QVVXX!4<<U "
 1 1 3 355
6
6
6	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6	
333554	6	6	6	6	6s-ACCCctjd5}|t|d|j|}dddn#1swxYwY||j|	dt	ddSNwb+rr)
tempfile
TemporaryFilewriterVseekr>rPrrasplitrrrs   r"test_add_binary_filez TestMailbox.test_add_binary_files

#E
*
*	#a
GG)***
FF1III)--""C	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	
,,S1177>>!''..	0	0	0	0	0A
A++A/2A/ctjd5}||j|d|j|}dddn#1swxYwY||j|	d|j	ddSr)
rrrrrr>rPrrarrs   r"test_add_binary_nonascii_filez)TestMailbox.test_add_binary_nonascii_files

#E
*
*	#a
GGD+,,,
FF1III)--""C	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#	
,,S1177>>#))%00	2	2	2	2	2rc
tjdd5}|t|d|t5|j|}dddn#1swxYwYdddn#1swxYwY|	|j
|dtddS)Nw+rKrLrr)
rrrrRrrWrXr>rPrrarrVrs   r"test_add_text_file_warnsz$TestMailbox.test_add_text_file_warnss]

#D7
;
;
;	'q
GGO$$$
FF1III!!"455
'
'immA&&
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'
	
,,S1177>>!''..	0	0	0	0	0s6A
B!B<BB	BB	BB#&B#c>|t5|jt	j|jdz}dddn#1swxYwY||j||jdzdS)N0)	rWrXr>rPrTStringIOrQrrZrbs  r"test_add_StringIO_warnsz#TestMailbox.test_add_StringIO_warnss


0
1
1	C	C)--DNS,@ A ABBC	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C--c22DNS4HIIIIIs5AA #A c|t5|td5|jt
j|jdddn#1swxYwYdddn#1swxYwY|	t|jd|j|dSri)
rWrXrjrkr>rPrTrr_rrrBrmr?s r"!test_add_nonascii_StringIO_raisesz-TestMailbox.test_add_nonascii_StringIO_raisessB


0
1
1	?	?''
LAA
?
?	

bk$*<==>>>
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	
TY+++	!!!!!s4B2A5)B5A9	9B<A9	=BBBcD||jjdSr	)_test_remove_or_delitemr>remover?s r"test_removezTestMailbox.test_removes!$$TY%566666r$cD||jjdSr	)rr>__delitem__r?s r"test_delitemzTestMailbox.test_delitems!$$TY%:;;;;;r$cjjdzjjdzt	jdt	jdtfdtfdjjdzjjdzt	jdt	jdtfdtfdjjdzt	jdtfdtfd	dS)
NrrErFcjSr	r>key0rsr"<lambda>z5TestMailbox._test_remove_or_delitem.<locals>.<lambda>
DIdOr$cSr	r7)rmethodsr"rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>FF4LLr$cjSr	r)key2rsr"rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr$cSr	r7)rrsr"rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr$cjSr	r)key1rsr"rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr$cSr	r7)rrsr"rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr$)r>rPrQrrassertRaisesKeyErrorrZ)rrrrrs``@@@r"rz#TestMailbox._test_remove_or_delitemsDy}}T^a/00y}}T^a/00TY+++tTY+++($;$;$;$;$;<<<($8$8$8$8$8999--d33T^a5GHHHy}}T^a/00TY+++tTY+++($;$;$;$;$;<<<($8$8$8$8$8999--d33T^a5GHHHtTY+++($;$;$;$;$;<<<($8$8$8$8$899999r$
cfjjdzjjdz}t	jdjt	jdtfdjt	jdtfddS)NrrErFcjSr	rrsr"rz*TestMailbox.test_discard.<locals>.<lambda>rr$cjSr	rrsr"rz*TestMailbox.test_discard.<locals>.<lambda>rr$)r>rPrQrrdiscardrr)rrepetitionsrrs`  @r"test_discardzTestMailbox.test_discards
y}}T^a/00y}}T^a/00TY+++	$TY+++($;$;$;$;$;<<<	$TY+++($;$;$;$;$;<<<<<r$c.|j|jdz}|j|}||dd||d||jd||jddd|j|	|j
|_|j|jdz}|j|}||dd||ddS)Nrfromfoo0
FrE1
)r>rPrQgetrrassertIsNoneassertIsrBr=r<)rrrrs    r"test_getzTestMailbox.test_getsCy}}T^a/00immD!!Ve,,,**E222$)--..///

dimmE5115999	MM$*--	y}}T^a/00immD!!Ve,,,**E22222r$cjjdzj}|dd|dtfdjtfddS)NrrrrcjdSNrrr?sr"rz*TestMailbox.test_getitem.<locals>.<lambda>DIe,<r$cjSr	rrsr"rz*TestMailbox.test_getitem.<locals>.<lambda>rr$)r>rPrQrrrrr)rrrs` @r"test_getitemzTestMailbox.test_getitemsy}}T^a/00ioVe,,,**E222($<$<$<$<===	$($;$;$;$;$;<<<<<r$c|j|jdz}|jt}|j|}||tj||dd||	d|
|j|dS)Nrrrr)r>rPrQrRget_messager
rr
rrr#)rrrmsg0s    r"test_get_messagezTestMailbox.test_get_messagesy}}T^a/00y}}_--y$$T**dGO444fu---))++U33349006677777r$c|j|jdz}|jt}||j||jdzd||j|tdS)Nrasciir>rPrQrRrrar`rVrrrs   r"test_get_byteszTestMailbox.test_get_bytes
sy}}T^a/00y}}_--,,T22
^a
''00	2	2	2,,T224IJJJJJr$c|j|jdz}|jt}||j||jdz||j|dtddS)Nr
r>rPrQrRrrZrrs   r"test_get_stringzTestMailbox.test_get_stringsy}}T^a/00y}}_----d33T^a5GHHH--d3399$??(..t44	6	6	6	6	6r$c|j|jdz}|jt}|j|5}|}dddn#1swxYwY|j|5}|}dddn#1swxYwY||dtj
d|jdz||dtj
dtdS)Nrrr)r>rPrQrRrrrdecoderr&r)rrrfiledata0data1s      r"
test_get_filezTestMailbox.test_get_filesy}}T^a/00y}}_--
Y


%
%	 IIKKE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 
Y


%
%	 IIKKE	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 g..66rz4HH!+	-	-	-g..66rz4HH(	*	*	*	*	*s$A==BB"CC
Cc|jt}|j|}||dSr	)r>rPrRrrBrs   r"!test_get_file_can_be_closed_twicez-TestMailbox.test_get_file_can_be_closed_twice*sHimmO,,Is##										r$cJ||jjdddSNTFdo_keys	do_values)_check_iterationr>iterkeysr?s r"
test_iterkeyszTestMailbox.test_iterkeys1s(di0$%PPPPPr$cJ||jjdddSr)rr>r[r?s r"	test_keyszTestMailbox.test_keys5s'dindeLLLLLr$cJ||jjdddSNFTr)rr>
itervaluesr?s r"test_itervalueszTestMailbox.test_itervalues9s5di2E(,		.	.	.	.	.r$cJ||jjdddSr)rr>__iter__r?s r"	test_iterzTestMailbox.test_iter>s5di0%(,		.	.	.	.	.r$cJ||jjdddSr)rr>valuesr?s r"test_valueszTestMailbox.test_valuesCs(di.NNNNNr$cJ||jjdddSNTr)rr>	iteritemsr?s r"test_iteritemszTestMailbox.test_iteritemsGs5di14(,		.	.	.	.	.r$cJ||jjdddSr)rr>rr?s r"
test_itemszTestMailbox.test_itemsLs'diottLLLLLr$c|D]}|dgg}}t|D]T}||j|j|z||j|zU|r|st
|}	nZ|r|st
|}
n>gg}
}	|D]/\}}|	||
|0|r`|t|t|	|t|t|	|rd}|
D]X}||dd|
t|||dz
}Y|t||dSdS)Nz	Not emptyrrrrE)
failrangerOr>rPrQlistrrset
assertLessintr)
rrrrrrr[rr
returned_keysreturned_valuesrcounts
             r"rzTestMailbox._check_iterationPsVXX	#	#EIIk""""2f{##	.	.AKK	

dnq&899:::MM$.1,----	.9	. NNMM
	.w	."6688nnOO-/?M$fhh
.
.
U$$S)))&&u----	<SYYM(:(:;;;SYYM(:(:;;;	1E(

  v666E$5$5$7$7 8 8+FFF
S[[%00000
	1	1r$c~|d|j|j|jdz}|||j|d|j|j|jdz}|||j|||j|d|j|j||||j|||j|d|j|j||||j|||j|d|jdS)NrrrE)assertNotInr>rPrQrrrs   r"
test_containszTestMailbox.test_containsks	***y}}T^a/00

dDI&&&	***y}}T^a/00

dDI&&&

dDI&&&	***	ty)))

dDI&&&	***	ty)))ty)))	*****r$cTg}t|D]}|t|j|||j|j|z|t|j|dzt|D]{}|t|j||z
|j|||t|j||z
dz
|dS)NrE)rrrr>rOrPrQr)rrr[rs    r"test_lenzTestMailbox.test_len~s{##	4	4AS^^Q///KK	

dnq&899:::S^^QU3333{##	B	BAS^^[1_===IT!W%%%S^^[1_q-@AAAA	B	Br$cjjdz}j|jdzjjdz}j|jdzjdzj|<j|jdzjdzj|<j|jdzt
j|<j|j|j|<j|jdzj|<j|jdzj|tfdtfdtjddS)N
original 0
original 1	changed 0	changed 1c:jddS)Nrbar)r>__setitem__r?sr"rz+TestMailbox.test_set_item.<locals>.<lambda>s$)"7"7u"E"Er$cjdSrrr?sr"rz+TestMailbox.test_set_item.<locals>.<lambda>rr$rF)
r>rPrQrrZrRr#rrrrs`  r"
test_set_itemzTestMailbox.test_set_itemsHy}}T^l:;;--d33,6	8	8	8y}}T^l:;;--d33,6	8	8	8.;6	$--d33+5	7	7	7.;6	$--d33+5	7	7	7)	$49T?+++)D/	$49T?+++.<7	$--d33^l2	4	4	449T?+++(EEEE	G	G	G($<$<$<$<===TY+++++r$cg}t|D]$}jj|z%t	|D];\}jj|z<jtjdt	|D]$\}	tfd%dS)Nrc8jSr	)r>rZrrsr"rz(TestMailbox.test_clear.<locals>.<lambda>s	0D0DS0I0Ir$)rr>rPrQrrrZclearrrr)r
iterationsr[rrs`   @r"
test_clearzTestMailbox.test_clearsz""	.	.AIMM$.1,----oo	L	LFAsTY11#668JKKKK	TY+++oo	K	KFAsh(I(I(I(I(IJJJJ	K	Kr$cR|j|jdz}|||j|j|jdz}|||j||j|d|||j|||j|j|jdz}|||j||j|d|||j|||j||j|d|||j|t|jddS)NrrErrFz2
r)	r>rPrQrrpoprrrrrrrs    r"test_popzTestMailbox.test_popsy}}T^a/00

dDI&&&y}}T^a/00

dDI&&&t,,88::EBBBty)))

dDI&&&y}}T^a/00

dDI&&&t,,88::EBBBty)))

dDI&&&t,,88::EBBBty)))TY+++++r$cg}tdD]7}|jj|z8g}tdD]}j\}|||t|
|tjd|D]!
tfd"dS)NrrcjSr	rrsr"rz*TestMailbox.test_popitem.<locals>.<lambda>s
	#r$)rrOr>rPrQpopitemrrrrrindexrrr)rrr[rseenrrs`     @r"test_popitemzTestMailbox.test_popitemsMr	;	;AKK	

dnq&899::::r	F	FAy((**HCMM#t$$$S$'''KKS!2!233TZZ__EEEETY+++	@	@Ch(>(>(>(>(>????	@	@r$cpjjdzjjdz}jjdz}jjdz|tit
jdjjdzj|jdzj|j|jdzf|jdzfjdzfgt
jdjjdzj|jdzj|jdz	tfdt
jdjjdzj|jdzj|jdzdS)	Nr
rz
original 2rrGz	changed 2rcPjddjdziS)Nrrr)r>updaterQrsr"rz)TestMailbox.test_update.<locals>.<lambda>s1$)"2"2E5*.0L4N#O#Or$)r>rPrQr(rRrrrZr#rr)rrrrs`  @r"test_updatezTestMailbox.test_updates)y}}T^l:;;y}}T^l:;;y}}T^l:;;	$ <1	2	2	2TY+++--d33^k1	3	3	3--d33^l2	4	4	449T?+++	4+!=>4>K784>L89;	<	<	<	
TY+++--d33^l2	4	4	4--d33^k1	3	3	3--d33^k1	3	3	3(OOOOO	P	P	P	
TY+++--d33^k1	3	3	3--d33^k1	3	3	3--d33^k1	3	3	3	3	3r$cF||jjddSNT)_test_flush_or_closer>rlr?s r"
test_flushzTestMailbox.test_flushs"!!$)/488888r$c|j|jdz|j|jdz|j|j|j|j|jdSNrrE)r>rPrQrlr"r?s r"test_popitem_and_flush_twicez(TestMailbox.test_popitem_and_flush_twices	

dnq()))	

dnq()))					r$c|tj||j|tj||j|tj|dSr	)	assertFalser&r'r*_get_lock_pathr>lockrunlockr?s r"test_lock_unlockzTestMailbox.test_lock_unlocks(;(;(=(=>>???	t':':'<'<==>>>	(;(;(=(=>>?????r$cF||jjddSNF)r,r>rBr?s r"
test_closezTestMailbox.test_closes"!!$)/599999r$cfdtdD}j|dj|dj|dj}||rjj_j}t|d|D]0}	j
||1|dS)Nc$g|]}j|z
Sr7rQ.0rrs  r"
<listcomp>z4TestMailbox._test_flush_or_close.<locals>.<listcomp>s 9991DNQ&999r$rGrrErF)rr>rPrBr=r<r[rrrrZ)rrshould_call_closecontentsoldboxr[rs`      r"r,z TestMailbox._test_flush_or_closes9999a999	

hqk"""	

hqk"""	

hqk"""	IOOMM$*--	y~~TA&&&	?	?CMM$)..s33X>>>>r$c	tjtttjt
fD]}tjj|	t

dtj
tjtfddS)Nrc:jdSr	)r>
_dump_message)outputrsr"rz/TestMailbox.test_dump_message.<locals>.<lambda>*s$)"9"9$"G"Gr$)rrSrRrTrUrVr>rErgetvaluerr&rr`r	TypeError)rinputrFs` @r"test_dump_messagezTestMailbox.test_dump_message s/@@%rz2G'H'HJ	K	KEZ\\FI##E6222V__..%--eRZ5F5F5H5HII
K
K
K
K)GGGGG	I	I	I	I	Ir$c|jdzS)Nz.lock)r<r?s r"r3zTestMailbox._get_lock_path,szG##r$r)9r.r/r0maxDiffr=rQr@rCr\textwrapdedentr_rcrgrnr~r`rrrrrrrrrrrrrrrrrrrrrrrrrrr	rrrrr%r)r-r0r6r9r,rJr3r7r$r"r9r94sWGH#I...
---333.$HO%M222..."""""")
*



VG__	6	6	6000222000JJJ
"""777<<<:::,
=
=
=
=
3
3
3===888KKK666***QQQMMM...
...
OOO...
MMM11116+++&
B
B
B
B,,,6
K
K
K
K,,,$@@@@  3 3 3D999			@@@::: 
I
I
I$$$$$r$r9ceZdZdZdS)TestMailboxSuperclassctjd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd	|tfd
|tfd|tfd|tfd
|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfd|tfddS)Nr'c.dSN)rPboxsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>6swwr{{r$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>7sszz"~~r$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>8sr7J7Jr$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>9ss{{2r$c0ddSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>:ssr27N7Nr$c,Sr	)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>;ss||~~r$c,Sr	)r[rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda><sxxzzr$cPSr	)r__next__rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>=ss~~7G7G7P7P7R7Rr$cPSr	)rrbrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>>ss||~~7N7N7P7Pr$c,Sr	)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>?szz||r$cPSr	)rrbrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>@ss}}7O7O7Q7Qr$c,Sr	)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Asyy{{r$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>BrXr$c.dSrT)__getitem__rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Cr[r$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Dr[r$c.dSrT)rZrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Ess~~b7I7Ir$c.dSrT)rarVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Fss}}R7H7Hr$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Gss||B7G7Gr$cdvSrTr7rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>HsrSyr$c.dSrT)__contains__rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Iss7G7G7K7Kr$c,Sr	)__len__rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Js{{}}r$c,Sr	)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Krhr$c.dSrT)rrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>LrXr$c,Sr	)r"rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Mrur$c.dS)N))rUrU)r(rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Nsszz+7N7Nr$c,Sr	)rlrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Orhr$c,Sr	)r4rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Pr`r$c,Sr	)r5rVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Qrer$c,Sr	)rBrVsr"rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Rrhr$)rMailboxrNotImplementedError)rrWs @r"test_notimplementedz)TestMailboxSuperclass.test_notimplemented3sof%%-/B/B/B/BCCC-/E/E/E/EFFF-/J/J/J/JKKK-/F/F/F/FGGG-/N/N/N/NOOO-/E/E/E/EFFF-/A/A/A/ABBB-/R/R/R/RSSS-/P/P/P/PQQQ-/C/C/C/CDDD-/Q/Q/Q/QRRR-/B/B/B/BCCC-/B/B/B/BCCC-/J/J/J/JKKK-/J/J/J/JKKK-/I/I/I/IJJJ-/H/H/H/HIII-/G/G/G/GHHH-/@/@/@/@AAA-/K/K/K/KLLL-/D/D/D/DEEE-/B/B/B/BCCC-/B/B/B/BCCC-/D/D/D/DEEE-/N/N/N/NOOO-/B/B/B/BCCC-/A/A/A/ABBB-/C/C/C/CDDD-/B/B/B/BCCCCCr$N)r.r/r0rr7r$r"rQrQ1s(DDDDDr$rQc(eZdZddZdZdZdZdZdZdZ	d	Z
d
ZddZdZ
d
ZdZdZddZdZdZdZdZdZdZejeedddZejeedddZdZdS)TestMaildirNc,tj||Sr	)rMaildirrr'factorys   r"rzTestMaildir.<lambda>Wsg0N0Nr$ct|tjdkstjdkrd|j_dSdS)Nntcygwin!)r9r@r&namesysplatformr>colonr?s r"r@zTestMaildir.setUpYsB$GtOO!9!9!DIOOO":!9r$c|tjtj|jdgdSNtmp)rr&listdirr'joinr<r?s r"rmzTestMaildir.assertMailboxEmpty^s:BGLLU$C$CDDbIIIIIr$ctj|jdz}|d|d|j|}|tj	
tj	|jd||jj
ddS)Nrcurr)rr1rQ
set_subdirset_infor>rPrr&r'r*rr<r)rrrs   r"test_add_MMzTestMaildir.test_add_MMas$T^a%788uUimmC  rw||DJ25#tyHH(I(IJJ	K	K	K	K	Kr$ctj|jdz}|d|d|j|}|j|}||tj|	|
d|	|ddS)NrrRFFR)rr1rQr	set_flagsr>rPrr
r
get_subdir	get_flags)rrrmsg_returneds    r"test_get_MMzTestMaildir.test_get_MMjs$T^a%788u

dimmC  y,,S11lG,BCCC0022E::://11488888r$ctj|jdz}|d|j|}|j|}||d||	dtj|jdz}||j|<|j|}||d||	d||
dtj|jdz}|d	||j|<|jd
z|j|<|j|}||d||	d||
ddS)
NrTPnewPTrErUrrFz2,SrGSz3
)rr1rQrr>rPrrrrrr)rrrrmsg1msg2s      r"test_set_MMzTestMaildir.test_set_MMus%dnq&899timmD!!y,,S110022E::://114888%dnq&899	#y,,S110022E::://1126661133U;;;%dnq&899

e	#!+	#y,,S110022E::://1137771133U;;;;;r$ctj|jdz}|d|d|j|}Gddtj}tj|j|}|jj	|_	|
|}|||dS)NrrrceZdZdS)8TestMaildir.test_consistent_factory.<locals>.FakeMessageNrrr7r$r"FakeMessagersDr$rr)rr1rQrrr>rPrr<rrr
)rrrrrWrs      r"test_consistent_factoryz#TestMaildir.test_consistent_factorys$T^a%788u

dimmC  					'0			odj+>>>IO	s##dK00000r$c0|tj|j|_|||j||jd|_|dS)Nr)rCrrr<r>
_check_basicsr-r=r?s r"test_initialize_newzTestMaildir.test_initialize_news{

ODJ//	  ,,,MM$*dM;;	r$c	D|dD]V}tjtjtj|j|Wtj|j|_	|
dS)NrUrrr)rCr&mkdirr'normpathrr<rrr>r)rsubdirs  r"test_initialize_existingz$TestMaildir.test_initialize_existings

-	I	IFHRW%%bgll4:v&F&FGGHHHHODJ//	r$c||jjtj|j||jj|dD]v}tj|j|}tj|tj	}|
tj|d|zwdS)NrzNot a directory: '%s')rr>r<r&r'abspathr=rstatST_MODErS_ISDIR)rrrr'modes     r"rzTestMaildir._check_basicss"'//$**E*EFFF+W555-	P	PF7<<
F33D74==.DOODL..0G$0NOOOO	P	Pr$c|jd|jd|jd|t|jd|t|jtddSNonetwothreerG)rrrr>
add_folderrrlist_foldersrr?s r"test_list_folderszTestMaildir.test_list_folders	U###	U###	W%%%TY335566:::TY335566011	3	3	3	3	3r$c|jd|jd}||jdz|tjtj	|j
d|jd}|||
d|jdzdS)Nfoo.barrz.foo.barr)r>r
get_folderrPrQrr&r'r(rr<rrZr[)rfolder0folder1s   r"test_get_folderzTestMaildir.test_get_folders	Y''')&&y11DNU*+++

bgll4:z&J&JKKLLL)&&y11++GLLNN1,=>>%/	1	1	1	1	1r$c|jd|jd|t|jd|t|jtd|jd|t|jd|t|jtd|jd|t|jd|t|jtd|jd|t|jd|t|jtd|jd|t|jd	||jgdS
NrrrF)rrrE)rr)rrrr>rrrrr
remove_folderr?s r"test_add_and_remove_foldersz'TestMaildir.test_add_and_remove_foldersY	U###	U###TY335566:::TY335566N8K8KLLL	&&&TY335566:::TY335566H

FFF	W%%%TY335566:::TY335566<L8M8MNNN	(((TY335566:::TY335566H

FFF	&&&TY335566::://11266666r$ctj|jdd}tj|jdd}t	|dd5}|ddddn#1swxYwYt	|dd5}|ddddn#1swxYwY|j|tj	||tj	|tj
|}tj|tjdz
d	z
|j
f|j|tj	||tj	|dS)
NrrrwrKrL@i@rF)r&r'rr<openrr>cleanrr*rutimetimest_mtimer2)rfoo_pathbar_pathrfoo_stats     r"
test_cleanzTestMaildir.test_cleans7<<
E5997<<
E599
(C'
2
2
2	a
GGCLLL															
(C'
2
2
2	a
GGCLLL																x00111x0011178$$
DIKK&014$-/	0	0	0	11222x0011111s$BBBCCCrc
ttj}d|vr|dd}d|vr|dd}tj}tjd}d}t|D]}|j	}tj
|j\}}	|
|tj
tj
|jdd|z||	}
||
d|	z|
}||t+|d	t+|d	d
|d	d|d	dt+|d	t+|d	krP|t+|d
t+|d
d|d
d|d
d|
t+|d|d|dd|d|
t+|dt+|dd
zd|dd|dd|
|d|d|dd|d|}|t.|d	|
|t.|t7tjtj
|jd}|
||d|d|ddS)N/z\057:z\072zF(?P<time>\d+)\.M(?P<M>\d{1,6})P(?P<P>\d+)Q(?P<Q>\d+)\.(?P<host>[^:/]*)rzFile in wrong location: '%s'zInvalid file name: '%s'rzNon-monotonic seconds: 'z
' before ''rEzNon-monotonic milliseconds: 'rFzProcess ID mismatch: 'z
' should be 'rGzNon-sequential counter: 'rHzHost name mismatch: 'zWrong file count: ')socketgethostnamerr&getpidrecompilerr>_create_tmpr'rrrrrr<matchassertIsNotNonegroupsassertGreaterEqualrrrVrrrBrr)
rrhostnamepidpatternprevious_groupsxtmp_fileheadtailrr
file_counts
             r"test_create_tmpzTestMaildir.test_create_tmps%''(??''W55H(??''W55Hikk*>??{##		Ay,,..Hx}55JD$T27??27<<
@E4G4G$H$H;dB
D
D
DMM$''E  (AD(HIII\\^^F*''F1IOA<N8O8O8O-a000&)))=>>>vay>>S);%<%<<<++Cq	NNCPQ@R<S<S<S!0!3!3!3VAYYY!@AAA  VAY$Qiii.///  VAY_Q5G1H1H11L1L-a000&)))=>>>  HH$Qiii3444%ONN0111MM!X]]__.CDDDNNBGLLU$C$CDDEE
[[ jj+++/	0	0	0	0	0r$c6||jji|j|jdz}|j|jdz}||jji|j||jj|tjd||tjd|i|j|jdz}||jj|tjd||tjd|i|j||jj|tjd||tjd||tjd|idS)NrrErrF)	rr>_tocrPrQ_refreshr&r'rrs    r"test_refreshzTestMaildir.test_refreshs,,,y}}T^a/00y}}T^a/00,,,	$UD0I0I*.UD0I0I*K	L	L	Ly}}T^a/00$UD0I0I*.UD0I0I*K	L	L	L	$UD0I0I*.UD0I0I*.UD0I0I*K	L	L	L	L	Lr$c|j|jdz}|j|jdz}||j|_||jjid|j_|j|t|jj
t||gdS)NrrE)r>rPrQr=r<rr_skewfactorrsortedr[rs   r" test_refresh_after_safety_periodz,TestMaildir.test_refresh_after_safety_period-sy}}T^a/00y}}T^a/00MM$*--	,,,!#			 3 3 5 566d|8L8LMMMMMr$ctfdjjdzjtj	dtj
tj	jdjjtj	dij
tfdjjidS)Nc8jdSrr>_lookupr?sr"rz)TestMaildir.test_lookup.<locals>.<lambda>BsDI,=,=e,D,Dr$rrc8jSr	rrsr"rz)TestMaildir.test_lookup.<locals>.<lambda>JsDI,=,=d,C,Cr$)rrr>rPrQrrr&r'rrr<rrl)rrs`@r"test_lookupzTestMaildir.test_lookup@s($D$D$D$DEEEy}}T^a/00**400"',,ud2K2KLLL
	"',,tz5$77888$UD0I0I)JKKK	
	($C$C$C$C$CDDD,,,,,r$cj|j|jdSr	)r>r4r5r?s r"r6zTestMaildir.test_lock_unlockMs.		r$cd}||j|}|d}||j||d}||j|dS)NcdSr	r7ss r"
dummy_factoryz.TestMaildir.test_folder.<locals>.dummy_factoryU4r$rr)r=r<rrr)rrrWfolder
folder1_aliass     r"test_folderzTestMaildir.test_folderRs}			mmDJ
m>>	**

fo}555y11


m,m<<<<<r$ctdD]3}|jtjt
4t
jtj	|j
dd|jD]}dS)Nrrz	stray-dir)rr>rPrr
rRr&rr'rr<)rrrs   r"test_directory_in_folderz$TestMaildir.test_directory_in_folder^sr	<	<AIMM'//::;;;;	dj%==>>>9		C		r$umasktest needs os.umask()ctj|jdz}tjd}	|j|}tj|n#tj|wxYwtj|j	|j
|}tj|j}|
|dzdS)NrI)rr1rQr&rr>rPr'rr<rrst_moder2)rr
orig_umaskrr'rs      r"test_file_permissionsz!TestMaildir.test_file_permissionsks$T^a%788Xa[[
	!)--$$CHZ    BHZ    w||DJ	(9(9#(>(>??wt}}$&&&&&sA!!A7cptjd}	|jd}tj|n#tj|wxYwtj|jd}tj|}|j}|	|dzdS)Nr	subfolder
maildirfolderr)
r&rr>rr'rr<rrr2)rrrr'stpermss      r"test_folder_file_permsz"TestMaildir.test_folder_file_permsxsXa[[
	!	,,[99IHZ    BHZ    w||IO_==
WT]]
%%-)))))sAAcjdD]W}tjtjjj|tjdz
fdzXdj_jj	fd}j
|tjjdd}tj|tj
|j|dS)N)rrrIrFrc jjuSr	)r>r)orig_tocrsr"	refreshedz*TestMaildir.test_reread.<locals>.refresheds9>11r$rz
stray-file)r>rr&rr'rr<rrrr2rcreate_empty_filer+r)rrr#filenamer"s`   @r"test_rereadzTestMaildir.test_rereads@	%	)	)FHRW\\$)/6::ikk!m%a'
)
)
)
)!#	
9>	2	2	2	2	2	2	
	%%%
7<<
E<@@#H---
	(			$$$$$r$r	rL)r.r/r0r=r@rmrrrrrrrrrrrrrrrr6rrunittest
skipUnlesshasattrr&rrr&r7r$r"rrUsNNNH"""
JJJKKK	9	9	9<<<.
1
1
1PPPP333111777&222$-0-0-0-0^LLL"NNN&---

=
=
=XW--/FGG
'
'HG
'XW--/FGG**HG*&%&%&%&%&%r$rceZdZdZdZdZdS)_TestSingleFilez&Common tests for single-file mailboxesctj|jj}|j|jdz|jtj|jj}||||j	|
|j|_|t|jddSr/)r&rr<st_inor>rPrQrlrrBr=r)rinode_beforeinode_afters   r"test_add_doesnt_rewritez'_TestSingleFile.test_add_doesnt_rewriteswtz**1	

dnq()))	gdj))0{333	
	MM$*--	TY+++++r$ctj|jjdz}tj|j||j|jdz|j|jdz}|j||j	|
tj|jj|dS)NirrE)r&rr<rchmodr>rPrQrrlr)rrrs   r"test_permissions_after_flushz,_TestSingleFile.test_permissions_after_flushswtz""*U2
T"""	

dnq()))IMM$.1,--		,,4d;;;;;r$N)r.r/r0__doc__r0r3r7r$r"r+r+s800,,,(<<<<<r$r+ceZdZfdZdZdZdZdZdZdZ	dZ
d	Zej
ejeed
ddZd
ZxZS)
_TestMboxMMDFc8t|j||jt
jt
j|jdzD]}tj	|dSNz.*
superrCr>rBr-r<globescaperr+rlock_remnant	__class__s  r"rCz_TestMboxMMDF.tearDown
	  ,,, Idk$*&=&=&DEE	+	+L\****	+	+r$ct|jd5}||gddddS#1swxYwYdSNrbrr<r	readlinesrrs  r"rmz _TestMboxMMDF.assertMailboxEmpty
$*d
#
#	0qQ[[]]B///	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0)AAAcd}|j||jdzz}|j|tz}||j|d|jdzd||j|dt||j|d||jdzzd||j|d|dtzdS)NFrom foo@bar blah
rFfrom_rTrrunixfromrrs    r"test_get_bytes_fromz!_TestMboxMMDF.test_get_bytes_fromsQ(y}}X(::;;y}}X788,,T,??
^a
''00	2	2	2,,T,??!	#	#	#,,T,>>
*
*227;;	=	=	=,,T,>>OOG$$'<<	>	>	>	>	>r$cd}|j||jdzz}|j|tz}||j|d|jdz||j|ddtd||j|d||jdzz||j|dd|tzddS)NrJrFrKrTrrMs    r"test_get_string_fromz"_TestMboxMMDF.test_get_string_fromse(y}}X(::;;y}}X788--d%-@@!+	-	-	---d%-@@FFtLL(..t44	6	6	6--d$-??!DNQ$66	8	8	8--d$-??EEdKK"_4;;DAA	C	C	C	C	Cr$c|jd}||j|d||j|ddS)NFrom foo@bar blah
From: foo

0
foo@bar blahrr>rPrget_fromrrbs  r"test_add_from_stringz"_TestMboxMMDF.test_add_from_stringslimmABB30022NCCC33355u=====r$c|jd}||j|d||j|ddS)NsFrom foo@bar blah
From: foo

0
rTrrUrbs  r"test_add_from_bytesz!_TestMboxMMDF.test_add_from_bytesslimmBCC30022NCCC33355u=====r$ctjtjfD]'}|d}|j|}(dS)NrS)rr2r5r>rP)rclass_rrs    r"test_add_mbox_or_mmdf_messagez+_TestMboxMMDF.test_add_mbox_or_mmdf_messagesK*G,?@	%	%F&>??C)--$$CC	%	%r$cfdtdD}|D]}j|jtjj}j_	tjdjD]0}j
||1j	|tjjdS)Nc$g|]}j|z
Sr7r<r=s  r"r?z6_TestMboxMMDF.test_open_close_open.<locals>.<listcomp>s 777$.1$777r$rG)rr>rPrBr&r'getmtimer<r=rrrrrZ)rrrmtimers`    r"test_open_close_openz"_TestMboxMMDF.test_open_close_opens(7777eAhh777	!	!EIMM%    	  ,,MM$*--	TY+++9%%''	=	=CMM$)..s33V<<<<	 0 0 < <=====r$c|jttdD]$}|j|j|z%|jt|jj|jjd|jj}|j	t|jd5}|||dddn#1swxYwY|
|j|_dS)NrGrrC)r>rPrRrrQ_filerlrrrBrr<rr=)rrrArs    r"test_add_and_closez _TestMboxMMDF.test_add_and_close"sM	

o&&&q	.	.AIMM$.1,----	

o&&&		Q9?''))	
$*d
#
#	1qXqvvxx000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1MM$*--			s<)D11D58D5
socketpairzTest needs socketpair().c~tj\}}||j||jt	j}|dkr	|j|d|	d|j
t	jdn#t	jdwxYw|	d	|tj|jj|dtj|dn0#|dtj|dwxYw|j|j
dS)NrcrEp)exitcode)rre
addCleanuprBr&forkr>r4sendrecvr5_exitrrExternalClashErrorrwait_process)rcprs    r"test_lock_conflictz _TestMboxMMDF.test_lock_conflict0s|
 ""1      gii!88	
	   tq				  """	
q				2g8"in
.
.
.
FF4LLL q11111
FF4LLL q11111		s%ACC,*E-Fcd}|j|}|j|j||j|_|j|j|}|j||jj|jdS)NzSubject: sub

body
)	r>rPrlrBr=r<r4r_locked)rrrrs    r"test_relockz_TestMboxMMDF.test_relockUs'y}}S!!		MM$*--		y}}S!!		)***	r$)r.r/r0rCrmrOrQrWrYr\rardr
requires_forkr'r(r)rrsrv
__classcell__r?s@r"r6r6s+++++000>>>CCC>>>>>>%%%>>>...WX668RSS!!TS!F






r$r6cjeZdZddZejeedddZdZ	dZ
dS)	TestMboxNc,tj||Sr	)rmboxrs   r"rzTestMbox.<lambda>gT70K0Kr$rrc	tjd}|jtj|jt
j|jd|_|jd|jtj|n#tj|wxYwtj	|j}|j
}||dzdS)N?T)createrUr)r&rr>rBr+r<rr}rPrrr2)r	old_umaskrrs    r"test_file_permszTestMbox.test_file_permsis
	 IIOOIdj!!!TZ===DIIMM"IOOHYBHY
WTZ
 
 
%%-)))))sBB00Cc.tj}d|d<|d|j|}|j|}||ddS)Nzjohn@example.comFromzNo newline at the endzNo newline at the end
)	rrr
set_payloadr>rPrrr)rrrs   r"test_terminating_newlinez!TestMbox.test_terminating_newline|s-'')),3444IMM'"")--"",,..0IJJJJJr$c|jdt|jd5}|}||ddddddn#1swxYwY|jdt|jd5}|}||dddddddS#1swxYwYdS)NzFrom: foo

0rKrLrz0

z
From: foo

0
)r>rPrr<rr)rrdatas   r"test_message_separatorzTestMbox.test_message_separatorsa	

&'''
$*w
/
/
/	116688DT"##Y000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	
	

()))
$*w
/
/
/	116688DT"##Y000	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1s#3A00A47A4+3C++C/2C/r	)r.r/r0r=r'r(r)r&rrrr7r$r"r{r{eswKKKHXW--/FGG**HG*$KKK
1
1
1
1
1r$r{ceZdZddZdS)TestMMDFNc,tj||Sr	)rMMDFrs   r"rzTestMMDF.<lambda>r~r$r	)r.r/r0r=r7r$r"rrsKKKHHHr$rcLeZdZddZdZdZdZdZdZdZ	d	Z
d
ZdZdS)
TestMHNc,tj||Sr	)rMHrs   r"rzTestMH.<lambda>s
40I0Ir$cb|tj|jdgdS)Nz
.mh_sequences)rr&rr<r?s r"rmzTestMH.assertMailboxEmptys-DJ///1BCCCCCr$c|jd|jd|jd|t|jd|t|jtddSrrr?s r"rzTestMH.test_list_foldersrr$cd}||j||_|jd}|jd}||jdz|tj	
tj	|jd|jd}||
|d|jdz||j|jj||j|jjdS)NcdSr	r7r
s r"rz-TestMH.test_get_folder.<locals>.dummy_factoryr
r$rrr)r=r<r>rrrPrQrr&r'r(rrrZr[r)rr
new_folderrrs     r"rzTestMH.test_get_folders1			MM$*m<<	Y)))44
)&&y11DNU*+++

bgll4:y&I&IJJKKK)&&y11++GLLNN1,=>>%/	1	1	1
	


j)49+=>>>

g&	(:;;;;;r$c|jd|jd|t|jd|t|jtd|jd|t|jd|t|jtd|jd|t|jd|t|jtd|jd|t|jd|t|jtd|jd|t|jd	||jgdSrrr?s r"rz"TestMH.test_add_and_remove_foldersrr$c||jitj|jdz}|d|j|}||jd|gitj|jdz}|gd|j|}||j||g|g|gd|dg||j|<||j|g|g|g|gd|j	|||jd|gidS)NrrrE)rrepliedrrrrflagged)rrrr)
rr>
get_sequencesrr3rQadd_sequencerP
set_sequencesrrrrrrs     r"test_sequenceszTestMH.test_sequencess0022B777 !!344%   y}}T""0022UD6NCCC !!344444555y}}T""0022!4L4&II	K	K	KI;'''	$0022!F4&TF!%((	)	)	)	
	0022Yv4FGGGGGr$ctj|jdz}|d|j|}|j|}dS)Nrr)rr3rQrr>rPr)rrrrefmsg0s    r"test_issue2625zTestMH.test_issue2625sY !!344%   y}}T"")''--r$c
tj|jdz}|j|}|j|j||jdS)Nr)rr3rQr>rPr4rr5)rrrs   r"test_issue7627zTestMH.test_issue7627sn !!344y}}T""			r$c	tj|jdz}tj|jdz}tj|jdz}tj|jdz}|ddg|dg|ddg|gd|j|}|j|}|j|}|j|}||j||||g|g|g|g|gd	|j|||j|||g|g|g|gd
|j	||j
gd|}|dz}|dz}||jgddgdgdgd
|j|}|j|}|j|}|j|}|j||j||j|j	|j||jgddgdgdgd
dS)
NrrErFrGrunseenrr)rrrrr)rrrr)rErFrG)rErFrGrHrI)
rr3rQrr>rPrrrpackr[r4r5)	rrrrmsg3rrrkey3s	         r"	test_packzTestMH.test_packsY !!344 !!344 !!344 !!344E8,---E7###E9-...444555y}}T""y}}T""y}}T""y}}T""0022!$tD1TF!%tfHH	I	I	I	
	0022!$t,vdV!%((	)	)	)	
	))999555axax0022%IIA31#NN	P	P	Py}}T""y}}T""y}}T""y}}T""					0022+OO !s1#!>>	?	?	?	?	?r$cLtj|jdS)Nz.mh_sequences.lock)r&r'rr<r?s r"r3zTestMH._get_lock_pathsw||DJ(<===r$r	)
r.r/r0r=rmrrrrrrrr3r7r$r"rrsIIIHDDD333<<<&777&HHH(...*?*?*?X>>>>>r$rc2eZdZddZdZfdZdZxZS)	TestBabylNc,tj||Sr	)rBabylrs   r"rzTestBabyl.<lambda>!s
dG0L0Lr$ct|jd5}||gddddS#1swxYwYdSrBrDrFs  r"rmzTestBabyl.assertMailboxEmpty#rGrHc8t|j||jt
jt
j|jdzD]}tj	|dSr8r9r=s  r"rCzTestBabyl.tearDown'r@r$c||jgtj|jdz}|d|j|}||jdgtj|jdz}|gd|j|}|t|jtddg|ddg||j|<|t|jtgd|j
||t|jtdgdS)	NrrrE)ransweredrrblahfiled)rrr)rr>
get_labelsrr4rQ	add_labelrP
set_labelsrrrs     r"test_labelszTestBabyl.test_labels.s--//444#DNQ$677uy}}T""--//%999#DNQ$677222333y}}T""TY113344c5%.6I6IJJJ)***	$TY113344///00	2	2	2	TY113344c6(mmDDDDDr$r	)r.r/r0r=rmrCrrxrys@r"rrshLLLH000+++++EEEEEEEr$rceZdZdZdZdS)FakeFileLikeObjectcd|_dSr8closedr?s r"__init__zFakeFileLikeObject.__init__Cs
r$cd|_dSr+rr?s r"rBzFakeFileLikeObject.closeFs
r$N)r.r/r0rrBr7r$r"rrAs2r$rceZdZdZdZdS)FakeMailBoxctj|dddtdD|_dS)NrUcdSr	r7)rs r"rz&FakeMailBox.__init__.<locals>.<lambda>Msr$c*g|]}tSr7)r)r>rs  r"r?z(FakeMailBox.__init__.<locals>.<listcomp>Ns>>>q(**>>>r$r)rr~rrfilesr?s r"rzFakeMailBox.__init__Ls?  r+<+<===>>E"II>>>


r$c|j|Sr	)rrbs  r"rzFakeMailBox.get_filePsz#r$N)r.r/r0rrr7r$r"rrJs2???r$rceZdZdZdS)TestFakeMailBoxc2t}tdD]'}||j|j(tdD]
}||tdD]'}||j|j(dS)Nr)rrr2rrr)rrWrs   r"test_closing_fdzTestFakeMailBox.test_closing_fdVsmmr	2	2ASYq\01111r		AFFFr	1	1AOOCIaL/0000	1	1r$N)r.r/r0rr7r$r"rrTs#11111r$rcdeZdZejZdZdZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
S)TestMessagec(tj|_dSr	)rr;r<r?s r"r@zTestMessage.setUpds%


r$c:||jdSr	)r-r<r?s r"rCzTestMessage.tearDowngs  ,,,,,r$ctjt}||}||||dSr	)rrSrRr=_post_initialize_hookr#reMMrs   r"test_initialize_with_eMMz$TestMessage.test_initialize_with_eMMjsQ'88mmC  ""3'''3r$c|t}||||dSr	)r=rRrr#rrs  r"test_initialize_with_stringz'TestMessage.test_initialize_with_stringqsAmmO,,""3'''3r$cBt|jdd5}|t|d||}||||ddddS#1swxYwYdS)NrrKrLr)rr<rrRrr=rr#rrrs   r"test_initialize_with_filez%TestMessage.test_initialize_with_filews
$*dW
5
5
5	$
GGO$$$
FF1III--""C&&s+++s###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$sA/BBBc>t|jd5}|t|d||}||||ddddS#1swxYwYdS)Nrr)rr<rrVrr=rr#rs   r" test_initialize_with_binary_filez,TestMessage.test_initialize_with_binary_files
$*e
$
$	$
GG)***
FF1III--""C&&s+++s###	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$sA/BBBc|}||||tjj||tj|||j||g|	|
||dSr	)
r=rr
rrr
rrr[r2rrrrs  r"test_initialize_with_nothingz(TestMessage.test_initialize_with_nothingsmmoo""3'''c5=#8999c7?333c4=111R((())++,,,#//++,,,,,r$cDtfddS)NcFtSr	)r=objectr?sr"rz9TestMessage.test_initialize_incorrectly.<locals>.<lambda>sT]]688-D-Dr$)rrHr?s`r"test_initialize_incorrectlyz'TestMessage.test_initialize_incorrectlys))%D%D%D%DEEEEEr$ctjt}|t}|jD]1}|||jd|2dS)Nz{} attribute does not exist)rrSrRr=__dict__rformat)rrrattrs    r"test_all_eMM_attributes_existz)TestMessage.test_all_eMM_attributes_existsp'88mmO,,L	<	<DMM$-44T::
<
<
<
<	<	<r$ctjt}|}||||dSr	)rrSrRr=_become_messager#rs   r"test_become_messagezTestMessage.test_become_messagesM'88mmooC   3r$c||jD]!}|"tj|tfddS)Nc.Sr	)_explain_to)r	other_msgsr"rz-TestMessage.test_explain_to.<locals>.<lambda>sS__Y-G-Gr$)r=r6rrrr
rrH)rr[rrs  @@r"test_explain_tozTestMessage.test_explain_tosmmoo,	'	'FIOOI&&&&M))++	)%G%G%G%G%GHHHHHr$cdSr	r7rs  r"rz!TestMessage._post_initialize_hooksr$N)r.r/r0rr
r=r@rCrrrrrrrrrrr7r$r"rr`sH&&&---      $$$$$$	-	-	-FFF<<<   III




r$rc@eZdZejZdZdZdZdZ	dZ
dZdS)TestMaildirMessagecr||jd||jddS)NrrU)r_subdir_infors  r"rz(TestMaildirMessage._post_initialize_hooks8e,,,B'''''r$ctjt|dd|dd|d|tfd|dd|d|dS)Nrrc.dSr)rrsr"rz0TestMaildirMessage.test_subdir.<locals>.<lambda>scnnU.C.Cr$)	rr1rRrrrrrkr#rs @r"test_subdirzTestMaildirMessage.test_subdirs#$_55))5111u))5111u))5111*&C&C&C&CDDD))5111u))51113r$ctjt}||d||d|d||d||d|d||d|d||d|d||d	||d|	|dS)
NrUrFSDTPDPSTFTDFPSTTDRPFS)
rr1rRrrrradd_flagremove_flagr#rs  r"
test_flagszTestMaildirMessage.test_flagssj$_55"---))5111

c))5111#...

f&111T'222$///))51113r$cDtjt}|t	|t
jz
d|d||ddS)N<)	rr1rRrabsget_daterset_daterrs  r"	test_datezTestMaildirMessage.test_datesw$_55CLLNNTY[[8992>>>S-----r$cjtjt|dd|d|tfd|dS)NrUz	1,foo=barc.dSr	)rrsr"rz.TestMaildirMessage.test_info.<locals>.<lambda>sS\\$-?-?r$)	rr1rRrget_inforrrHr#rs @r"	test_infozTestMaildirMessage.test_infos$_55,,,[!!!555)%?%?%?%?@@@3r$ctjt}||d|d||d||d|d||d||d|d||d||d|	d||d||d|
|dS)	NrUSFrz2,FSz1,RPTDz2,D)rr1rRrrrrrrrr#rs  r"test_info_and_flagsz&TestMaildirMessage.test_info_and_flagss$_55,,,

d$///000T"---..."---...S#...///3r$N)r.r/r0rr1r=rrrr
rrr7r$r"rrsv%H(((      "...        r$rc<eZdZejZdZdZdZdZ	ddZ
dS)_TestMboxMMDFMessagec0||dSr	)_check_fromrs  r"rz*_TestMboxMMDFMessage._post_initialize_hooksr$ctjt}|dtj|}||d|dS)NzFrom foo@bar blahrT)rr
rRset_unixfromr2rrVrs  r"test_initialize_with_unixfromz2_TestMboxMMDFMessage.test_initialize_with_unixfromsdoo..,---!#&&HHHHHr$ctjt}|||d||d|dd||d|dtj||ddS)Nzfoo barfoo@barTz	blah@temp)	rr2rRrset_fromrrVr	localtimers  r"	test_fromz_TestMboxMMDFMessage.test_froms!/22Y333Y%%%i((([$."2"2333k*****r$ctjt}||d|d||d|d||d|d||d|d||d||dS)	NrUrXODRRODXFARODFAXFDXARO)	rr2rRrrrrrr#rs  r"rz_TestMboxMMDFMessage.test_flagss
!/22"---

c#...

f&111T(333$///3r$Nc|d}|tj|dz|dS)Nz
MAILER-DAEMONz. \w{3} \w{3} [\d ]\d [\d ]\d:\d{2}:\d{2} \d{4})rrrrV)rrsenders   r"rz _TestMboxMMDFMessage._check_from'sP>$FRXJJ  	!	!	!	!	!r$r	)r.r/r0r_mboxMMDFMessager=rrr"rrr7r$r"rrso'HIII	+	+	+   !!!!!!r$rceZdZejZdS)TestMboxMessageN)r.r/r0rr2r=r7r$r"r.r.0"HHHr$r.c(eZdZejZdZdZdS)
TestMHMessagec<||jgdSr	)r
_sequencesrs  r"rz#TestMHMessage._post_initialize_hook9s ,,,,,r$ctjt}||g|dg||dg|g||g|d||dg|d||ddg|d||ddg|d||dg|d||ddg|d||ddg|ddg||ddgdS)Nfoobarrrr)rr3rRrrrrremove_sequencers  r"rzTestMHMessage.test_sequences<sF00**,,b1118*%%%**,,xj999"**,,b111"""**,,xj999###**,,x.CDDD###**,,x.CDDDH%%%**,,yk:::"""**,,y(.CDDDI&&&**,,y(.CDDD8Y/000**,,x.CDDDDDr$N)r.r/r0rr3r=rrr7r$r"r1r15s? H---EEEEEr$r1c.eZdZejZdZdZdZdS)TestBabylMessagec<||jgdSr	)r_labelsrs  r"rz&TestBabylMessage._post_initialize_hookXs b)))))r$ctjt}||g|dg||dg|g||g|d||dg|d||ddg|d||ddg|d||dg|d||ddg|d||ddg|ddg||ddgdS)Nr5rresentrr)rr4rRrrrrremove_labelrs  r"rzTestBabylMessage.test_labels[s$"?33))2...z"""))H:666r))2...

g))G9555

h))GX+>???

h))GX+>???!!!))H:666

h))Hh+?@@@"""))Hh+?@@@*-...))Hj+ABBBBBr$c~tjt}|}||g||d|d<d|d<||g|||}||ddg||dd||dd|||	||ddg|||}||gddD]$}|||||%dS)Nz
FooBar 1.0
User-AgentBlahz
X-Whatever)r?DaterToSubject)
rr4rRget_visiblerr[rrset_visibleupdate_visible)rrvisibleheaders    r"test_visiblezTestBabylMessage.test_visiblers"?33//##,,,'--//000 , &**//112666   //##,)EFFF.===.777'--//000,)EFFF'--//000//##*5*5*5	6	6	6E	;	;FWV_c&k::::	;	;r$N)	r.r/r0rr4r=rrrIr7r$r"r8r8TsL#H***CCC.;;;;;r$r8ceZdZejZdS)TestMMDFMessageN)r.r/r0rr5r=r7r$r"rKrKr/r$rKceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdS)TestMessageConversionc|jD];}tjt}||}||<dSr	)r6rr
rRr#)rr[	msg_plainrs    r"test_plain_to_xz%TestMessageConversion.test_plain_to_xsS,	$	$F88I&##Cs####	$	$r$c|jD];}|t}tj|}||<dSr	)r6rRrr
r#)rr[rrOs    r"test_x_to_plainz%TestMessageConversion.test_x_to_plainsS,	*	*F&))C,,Iy))))	*	*r$cd|jD]'}|t}||(dSr	)r6rVr#)rr[rs   r"test_x_from_bytesz'TestMessageConversion.test_x_from_bytessE,	$	$F&.//Cs####	$	$r$cX|jD] |tfd!dS)NcdSr8r7)r[sr"rz9TestMessageConversion.test_x_to_invalid.<locals>.<lambda>sr$)r6rrH)rr[s @r"test_x_to_invalidz'TestMessageConversion.test_x_to_invalidsF,	@	@Fi)>)>)>)>????	@	@r$c(d|jD|jD]v}|jD]l|ur|t}|}fd|D}|D]2}|||jd|3mwdS)Nc:i|]}||tjSr7)rRr)r>r[s  r"
<dictcomp>z]TestMessageConversion.test_type_specific_attributes_removed_on_conversion.<locals>.<dictcomp>s7>>>"VVO44=>>>r$c(g|]}|v|Sr7r7)r>aclass2	references  r"r?z]TestMessageConversion.test_type_specific_attributes_removed_on_conversion.<locals>.<listcomp>s5!B!B!Bq&'y/@&@&@"#&@&@&@r$zwhile converting {} to {})r6rRrrr)rclass1sourcer,
type_specificrr]r^s      @@r"3test_type_specific_attributes_removed_on_conversionzITestMessageConversion.test_type_specific_attributes_removed_on_conversions>>&*&<>>>	,
	L
	LF0	
L	
LV##00!B!B!B!B!BIf,=!B!B!B
)LLD$$T6?3::66JJLLLLL	
L
	L
	Lr$ctjt}|d|d|}tj|}||||d||	d|||dS)NDFPRSTr)
rr1rRrrrr#rrr)rmsg_maildirdaters    r"test_maildir_to_maildirz-TestMessageConversion.test_maildir_to_maildirs,_==h'''u%%%##%%$[113(333))5111.....r$cjd}tjtjfD]}tjt}|d|D]\}}||||}|||||	dtjtjdz|
d|||ddS)N))rrUrr)PrU)RA)rrk)Tr)rdRDFAr	zMAILER-DAEMON %srRODFA)rr2r5r1rRrrrrrVrasctimegmtimer)rpairsr[resettingresultrs       r"test_maildir_to_mboxmmdfz.TestMessageConversion.test_maildir_to_mboxmmdfs21*G,?@
	G
	GF!0AAK  %%%#(
=
=%%g...f[))  &999  1C!\$+c*:*:;;2<====""5)))VVK00::<<gFFFF
	G
	Gr$c	&tjt}ddgfdddgfddgfdddgfdgfd	dgfd
ddgff}|D]T\}}|||tj||UdS)Nrrrrrjrkrrrmrd)rr1rRrrr3rrrerrrsrts     r"test_maildir_to_mhz(TestMessageConversion.test_maildir_to_mhs,_==z"S8Y*?$@z"S8Y*?$@3)z"X	9/E$FH %	%	%OGV!!'***W.{;;IIKK#
%
%
%
%	%	%r$c	(tjt}ddgfddgfdddgfdddgfdgfd	dd
gfdgdff}|D]T\}}|||tj||UdS)
Nrrrrj	forwardedrkrrrmdeletedrd)r{rrz)rr1rRrrr4rrws     r"test_maildir_to_babylz+TestMessageConversion.test_maildir_to_babyls,_==z"S8*$5+./#*7M1NrS8Y"78@@@AC %	%	%OGV!!'***W1+>>IIKK#
%
%
%
%	%	%r$cTtjtjfD]
}|t}|dtjdd}|D]~\}}||tj|}|	|
||	|d|d|	tj|ddS)Nrr	))rkr)OrU)rrmri)rlrk)roFRSTr~r)
rr2r5rRr rrqrr1rrrr)rr[msg_mboxMMDFrrrsrtrs       r"test_mboxmmdf_to_maildirz.TestMessageConversion.test_mboxmmdf_to_maildirs*G,?@	$	$F!6/22L!!)T[-=-=>>>(E#(
6
6&&w///,\::  &999  5555""3'''W3LAALLNN"
$
$
$
$	$	$r$ctjtjfD]}|t}|d|dtjtjfD]]}||}||d||d^dS)Nror)	rr2r5rRrr rrrV)rr[rclass2_rs     r"test_mboxmmdf_to_mboxmmdfz/TestMessageConversion.test_mboxmmdf_to_mboxmmdfs*G,?@	=	=F!6/22L""7+++!!),,,#/1DE
=
=w|,,  !1!17;;;  )<<<<
=		=	=r$c	BtjtjfD]}|t}dgfddgfddgfdddgfdddgfd	ddgff}|D]T\}}|||tj||UdS)
Nrkr~rrrrrlrro)rr2r5rRrrr3r)rr[rrrrsrts      r"test_mboxmmdf_to_mhz)TestMessageConversion.test_mboxmmdf_to_mhs*G,?@		)		)F!6/22L2Yxj 1C(3DHi01Hi01	9568E$)
)
)&&w///  !2<!@!@!N!N!P!P!'))))
)
		)		)r$c	BtjtjfD]}|t}dgfddgfdddgfddgfdddgfd	ddgff}|D]T\}}|||tj||UdS)
Nrkr~rrr{rrlrro)rr2r5rRrrr4r)rr[rrrrsrts      r"test_mboxmmdf_to_babylz,TestMessageConversion.test_mboxmmdf_to_babyls*G,?@	Q	QF&))C2Yxj 1Hi01C(3DHj12	:679E$)
Q
Q

g&&&  !5c!:!:!E!E!G!GPPPP
Q
	Q	Qr$cd}|D]\}}tjt}|||tj|||tj|dtjt}|d|d|d|tj|d|tj|ddS)N)rrU)rRS)rrrrrrr)rr3rRrrr1rrrrrrsrtrs     r"test_mh_to_maildirz(TestMessageConversion.test_mh_to_maildir!sIF$	N	NOGV#O44CW%%%W3C88BBDDfMMMW3C88CCEEuMMMM00"""######/44>>@@$GGG/44??AA5IIIIIr$cVd}|D]\}}tjt}||tjtjfD]3}||||4tjt}|d|d|dtjtjfD]3}|||d4dS)N)rr~)rROA)rROFrrrOFA)rr3rRrr2r5rr)rrrrsrtrr[s      r"test_mh_to_mboxmmdfz)TestMessageConversion.test_mh_to_mboxmmdf0s,I$	B	BOGV#O44CW%%%".0CD
B
B  !6!6!8!8&AAAA
B00"""######*G,?@	=	=FVVC[[2244e<<<<	=	=r$c.tjt}|d|d|d|tj|gddS)Nrrr)rrr)rr3rRrrrrs  r"
test_mh_to_mhz#TestMessageConversion.test_mh_to_mh?s00"""######*3//==??999	;	;	;	;	;r$c(ddgfddgfdgff}|D]m\}}tjt}|||tj||ntjt}|d|d|d|tj|ddgdS)Nrrrr)rr3rRrrr4rrs     r"test_mh_to_babylz&TestMessageConversion.test_mh_to_babylHsXJ')j\)BR"$	M	MOGV#O44CW%%%W1#66AACCVLLLL00"""######-c22==??"J/	1	1	1	1	1r$cd}|D]\}}tjt}|||tj|||tj|dtjt}dD]}|||tj|d|tj|ddS)N)r)r{ST)rr)rr)rzPS)editedr)r<rrrr{rrrzrr<PRT)rr4rRrrr1rrrrrrsrtrlabels      r"test_babyl_to_maildirz+TestMessageConversion.test_babyl_to_maildirWs5# %	N	NOGV&77CMM'"""W3C88BBDDfMMMW3C88CCEEuMMMM"?33*	!	!EMM%    /44>>@@%HHH/44??AA5IIIIIr$cd}|D]\}}tjtjfD]a}tjt}||||||btjt}dD]}||tjtjfD]3}|||d4dS)N)r)r{ROD)rr))rr)rzr))rr))r<r)rODA)rr2r5r4rRrrr)rrrrsrtr[rrs       r"test_babyl_to_mboxmmdfz,TestMessageConversion.test_babyl_to_mboxmmdfhs# %	B	BOGV".0CD
B
B*?;;

g&&&  !6!6!8!8&AAAA
B"?33*	!	!EMM%    *G,?@	=	=FVVC[[2244e<<<<	=	=r$cddgfdgfdgfddgfdgfdgfdgff}|D]m\}}tjt}|||tj||ntjt}d	D]}|||tj|ddgdS)
Nrr{rrrrzrr<r)rr4rRrrr3rrs      r"test_babyl_to_mhz&TestMessageConversion.test_babyl_to_mhysXJ')R7B-yk*[",="~B! %	M	MOGV&77CMM'"""W.s33AACCVLLLL"?33*	!	!EMM%    *3//==??"I.	0	0	0	0	0r$ctjt}|dD]}||tj|}||gd||||D]H}|||||IdS)Nr)	rr4rRrFrrrrDr[)rrrrrs     r"test_babyl_to_babylz)TestMessageConversion.test_babyl_to_babyls?"?33*	!	!EMM%    #C((**-7-7-7	8	8	8	
**//1143C3C3E3E3J3J3L3LMMM??$$))++	N	NCS__..s3T5E5E5G5G5LMMMM	N	Nr$N)r.r/r0rPrRrTrWrbrgrurxr|rrrrrrrrrrrrr7r$r"rMrMsf$$$***$$$@@@

L
L
L
/
/
/GGG 	%	%	%
%
%
%$$$ 	=	=	=)))
Q
Q
Q
J
J
J
=
=
=;;;
1
1
1JJJ"==="000 
N
N
N
N
Nr$rMc2eZdZdZdZdZdZdZdZdS)TestProxyFileBasecn|d||d|d||d|d||dd|d||dd|d||dd	dS)
NrbarrEsarrFsbar)rrrrproxys  r"
_test_readzTestProxyFileBase._test_reads

1


v...

1


u---

1


A...

1


B///

1


D))400000r$ctj}|d||d|z||d|z||d|z||d|d||d|z|ddt
tjzz||d|z|ddt
tjzz||dd	||d
d|zdS)NrfoorfredbobrForJsfrised)r&rr`rrreadlinerrrrs   r"_test_readlinez TestProxyFileBase._test_readlines*##%%

1


))6G+;<<<))6G+;<<<))7W+<===))6222

1


))4'>:::

1q3rz??**+++))7W+<===

1q3rz??**+++**E222,,ego>>>>>r$ctj}|d||d|zd|zd|zdg|d||dd|zg|dt
|z||dt
|zd|zd|zg|d||d	|d|zd|zdgdS)
NrrrrrrFrGrHr)r&rr`rrrErrs   r"_test_readlinesz!TestProxyFileBase._test_readlinessb*##%%

1


**Vg-=+1G+;+2W+<f-F	G	G	G	

1


++fw.>-?@@@

1s7||#$$$S\\)9::w&'(9:	<	<	<

1


..&7:J/6/@&1J	K	K	K	K	Kr$ctj}|dt	|}|t
|d|z|t
|d|z|t
|d|z|t
|d|tt|dS)Nrrrrr)	r&rr`riterrnextr
StopIteration)rrriterators    r"_test_iterationz!TestProxyFileBase._test_iterations*##%%

1


;;h')9:::h')9:::h7):;;;h000-x88888r$cptj}|d||d||t|||dd||dt|zd|z|dt|z
d||dd|dd||d|zdz|z|d	||dS)
NrGrFrErrrrrd)	r&rr`rrtellrrr2rs   r"_test_seek_and_tellz%TestProxyFileBase._test_seek_and_tells_*##%%

1


q)))CLL117;;;

1aAG$455tg~FFF

2G$a(((A///

1atg~'>'HIII

3&&&&&r$c||j|||j|||jdSr	)r2rrBrrs  r"_test_closezTestProxyFileBase._test_closes`&&&



%%%



%%%%%r$N)	r.r/r0rrrrrrr7r$r"rrsq111??? KKK 	9	9	9
'
'
'&&&&&r$rcDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)
TestProxyFilec\tj|_t|jd|_dSNrrr;r<rrcr?s r"r@zTestProxyFile.setUp#%
$*e,,


r$cl|j||jdSr	rcrBr-r<r?s r"rCzTestProxyFile.tearDown2
  ,,,,,r$c&|jd|j}tj|j}|||||j|tj|jd}||d||j|dS)Nrr)rcrrr
_ProxyFiler)rposproxy0proxy1s    r"test_initializezTestProxyFile.test_initializes
   joo#DJ//,,,**C000#DJ22*****C00000r$c|jd|tj|jdS)Nr)rcrrrrr?s r"	test_readzTestProxyFile.test_reads=
   *4:6677777r$c|jtdtjdtjdtjdd|t
j|jdSNrrfredbobr)rcrbytesr&rrrrr?s r"
test_readlinezTestProxyFile.test_readlinesw



BJJJ24*** >?FHH	I	I	IG.tz::;;;;;r$c|jtdtjdtjdtjdd|t
j|jdSr)rcrrr&rrrrr?s r"test_readlineszTestProxyFile.test_readlines
w



BJJJ24*** >?FHH	I	I	IW/
;;<<<<<r$c|jtdtjdtjdtjdd|t
j|jdSr)rcrrr&rrrrr?s r"test_iterationzTestProxyFile.test_iterationrr$c|jtdtjdtjd|t
j|jdSNrrr)rcrrr&rrrrr?s r"test_seek_and_tellz TestProxyFile.test_seek_and_tellsZ
rzzz2::FPPQQQ  !3DJ!?!?@@@@@r$c|jtdtjdtjd|t
j|jdSr)rcrrr&rrrrr?s r"r9zTestProxyFile.test_closesZ
rzzz2::FPPQQQ+DJ7788888r$Nr.r/r0r@rCrrrrrrr9r7r$r"rrs------	1	1	1888<<<
===
===
AAA99999r$rcDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
S)TestPartialFilec\tj|_t|jd|_dSrrr?s r"r@zTestPartialFile.setUprr$cl|j||jdSr	rr?s r"rCzTestPartialFile.tearDown#rr$c|jtdtjzdzd|j}t
j|jdd}||d||j|dS)NrrrrFrIr)	rcrrr&rrr_PartialFiler)rrrs   r"rzTestPartialFile.test_initialize's
urz1E97CCDDDjoo$TZA66q)))**C00000r$c|jtdd|t	j|jdddS)Nz	***bar***rrGrJ)rcrrrrrr?s r"rzTestPartialFile.test_read/sK
{G44555,TZA>>?????r$c<|jtdtjdtjdtjdd|t
j|jdddttjzzdS)	Nz!!!!!foorrzbob!!!!!rrIrG)	rcrrr&rrrrrr?s r"rzTestPartialFile.test_readline3s
***bjjj"*** >?FHH	I	I	IG0Q13a#bj//6I1IKK	L	L	L	L	Lr$c<|jtdtjdtjdtjdd|t
j|jdddttjzzdS)	Nrrrzbob?????rr
rG)	rcrrr&rrrrrr?s r"rzTestPartialFile.test_readlines9
***bjjj"*** >?FHH	I	I	IW1$*a24q3rz??7J2JLL	M	M	M	M	Mr$c<|jtdtjdtjdtjdd|t
j|jdddttjzzdS)	N____foorrzbob####rrHrG)	rcrrr&rrrrrr?s r"rzTestPartialFile.test_iteration?rr$c"|jtdtjdtjdd|t
j|jdddttjzzdS)Nz(((foorz$$$rrG	rF)	rcrrr&rrrrrr?s r"rz"TestPartialFile.test_seek_and_tellEs
RZZZLgVVWWW  !5dj!67!c"*oo:M6M"O"O	P	P	P	P	Pr$c"|jtdtjdtjdd|t
j|jdddttjzzdS)Nz&foor^rrErJrG)	rcrrr&rrrrrr?s r"r9zTestPartialFile.test_closeJs
RZZZH'RRSSS-dj!./!c"*oo2E.EGG	H	H	H	H	Hr$Nrr7r$r"rrs------111@@@LLLMMMMMMPPP
HHHHHr$rz6From some.body@dummy.domain  Sat Jul 24 13:43:35 2004
z]From: some.body@dummy.domain
To: me@my.domain
Subject: Simple Test

This is a dummy message.
c:eZdZdZdZd
dZdZdZdZdZ	d	S)MaildirTestCasectj|_tj|jrtj|jn=tj|jrtj|jtj	|jtj	tj
|jdtj	tj
|jdtj	tj
|jdd|_g|_dS)NrrrrE)
rr;_dirr&r'r(r)isfiler+rr_counter	_msgfilesr?s r"r@zMaildirTestCase.setUp]s$	
7==##	(TY''''
W^^DI
&
&	(TY'''

di//000
di//000
di//000
r$ctttj|jtjtj|j	dtjtj|j	dtjtj|j	dtj|j	dS)Nrrr)
rmapr&r+rrrmdirr'rrr?s r"rCzMaildirTestCase.tearDownksSDN
+
+,,,TY66777TY66777TY66777	"""""r$Fcttjdz}|j}|xjdz
c_dt	|t	|ddf}t
j|jd|}t
j|j||}t|dd	5}|j	
||r|t|tdddn#1swxYwY	tj||nY#tt f$rEt|d5}|tdddn#1swxYwYYnwxYw|j	
||S)
Ni@BrE.
myhostnamemydomainrrrKrL)rrrrstrr&r'rrrrOrFROM_
DUMMY_MESSAGElinkAttributeErrorPermissionError)	rdirr}trr%tmpnamenewnamefps	         r"
createMessagezMaildirTestCase.createMessagers	g%&&m



88SVVSXX|ZHII',,ty%::',,ty#x88
'3
1
1
1	$RN!!'***
 HH]###		$	$	$	$	$	$	$	$	$	$	$	$	$	$	$
	(GGW%%%%0	(	(	(gs##
(r'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(	(	
g&&&sIAD))D-0D-5E!F!,FF!F	F!F	F! F!ctjtj|_||j||jdS)zTest an empty maildir mailboxN)rrrr;r}rrr?s r"test_empty_maildirz"MaildirTestCase.test_empty_maildirs`OI$455		
$)..**+++$)..**+++++r$c~|dtjtj|_||j||j||jdS)Nr	rrrrr;r}rrrr?s r"test_nonempty_maildir_curz)MaildirTestCase.test_nonempty_maildir_cur5!!!OI$455	TY^^--...$)..**+++$)..**+++++r$c~|dtjtj|_||j||j||jdS)Nrrr?s r"test_nonempty_maildir_newz)MaildirTestCase.test_nonempty_maildir_newrr$c|d|dtjtj|_||j||j||j||jdS)Nrrrr?s r"test_nonempty_maildir_bothz*MaildirTestCase.test_nonempty_maildir_boths5!!!5!!!OI$455	TY^^--...TY^^--...$)..**+++$)..**+++++r$N)F)
r.r/r0r@rCrrrrr r7r$r"rr[s###(,,,,,,,,,,,,,,r$raKReturn-Path: <gkj@gregorykjohnson.com>
X-Original-To: gkj+person@localhost
Delivered-To: gkj+person@localhost
Received: from localhost (localhost [127.0.0.1])
        by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17
        for <gkj+person@localhost>; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)
Delivered-To: gkj@sundance.gregorykjohnson.com
Received: from localhost [127.0.0.1]
        by localhost with POP3 (fetchmail-6.2.5)
        for gkj+person@localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)
Received: from andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])
        by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746
        for <gkj@gregorykjohnson.com>; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)
Received: by andy.gregorykjohnson.com (Postfix, from userid 1000)
        id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)
Date: Wed, 13 Jul 2005 17:23:11 -0400
From: "Gregory K. Johnson" <gkj@gregorykjohnson.com>
To: gkj@gregorykjohnson.com
Subject: Sample message
Message-ID: <20050713212311.GC4701@andy.gregorykjohnson.com>
Mime-Version: 1.0
Content-Type: multipart/mixed; boundary="NMuMz9nt05w80d4+"
Content-Disposition: inline
User-Agent: Mutt/1.5.9i


--NMuMz9nt05w80d4+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

This is a sample message.

--
Gregory K. Johnson

--NMuMz9nt05w80d4+
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="text.gz"
Content-Transfer-Encoding: base64

H4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs
3FYlAAAA

--NMuMz9nt05w80d4+--
rzReturn-Pathz<gkj@gregorykjohnson.com>z
X-Original-Tozgkj+person@localhostzDelivered-ToReceivedzfrom localhost (localhost [127.0.0.1])
        by andy.gregorykjohnson.com (Postfix) with ESMTP id 356ED9DD17
        for <gkj+person@localhost>; Wed, 13 Jul 2005 17:23:16 -0400 (EDT)z gkj@sundance.gregorykjohnson.comzfrom localhost [127.0.0.1]
        by localhost with POP3 (fetchmail-6.2.5)
        for gkj+person@localhost (single-drop); Wed, 13 Jul 2005 17:23:16 -0400 (EDT)zfrom andy.gregorykjohnson.com (andy.gregorykjohnson.com [64.32.235.228])
        by sundance.gregorykjohnson.com (Postfix) with ESMTP id 5B056316746
        for <gkj@gregorykjohnson.com>; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)ztby andy.gregorykjohnson.com (Postfix, from userid 1000)
        id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)rAzWed, 13 Jul 2005 17:23:11 -0400rz."Gregory K. Johnson" <gkj@gregorykjohnson.com>rBzgkj@gregorykjohnson.comrCzSample messagezMime-Versionz1.0zContent-Typez,multipart/mixed; boundary="NMuMz9nt05w80d4+"zContent-Dispositioninliner?zMutt/1.5.9i)z1This is a sample message.

--
Gregory K. Johnson
zRH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs
3FYlAAAA
ceZdZdZdS)MiscTestCasecBtj|tddhdS)Nrfcntl)not_exported)rcheck__all__rr?s r"test__all__zMiscTestCase.test__all__	s8T7+4g*>	@	@	@	@	@	@r$N)r.r/r0r)r7r$r"r$r$	s(@@@@@r$r$c,tjdSr	)r
reap_childrenr7r$r"tearDownModuler,	sr$__main__);r&rrrrr
email.messagerrTrtestrtest.supportrrr'rNrr;has_gethostnameSkipTestrr9TestCaserQrr+r6r{rrrrr~rrrrrr.r1r8rKrMrrrrr
rrRr`rVrrr$r,r.mainr7r$r"<module>r5sF				







								""""""&&&&&&$;
(
9
:
::%%%%%%%%8z$z$z$z$z$(z$z$z$z!D!D!D!D!DHh&7!D!D!DHX%X%X%X%X%+x0X%X%X%v
&<&<&<&<&<k&<&<&<RIIIIIOIIIX+1+1+1+1+1}h/+1+1+1\LLLLL}h/LLL
D>D>D>D>D>[(+D>D>D>NEEEEE!2EEED'/	1	1	1	1	1h'	1	1	1S
S
S
S
S
(H-S
S
S
lG G G G G h&7G G G T-!-!-!-!-!-!-!-!`#####*K###
EEEEEK!2EEE>4;4;4;4;4;{H$54;4;4;n#####*K###
FNFNFNFNFNHh&7FNFNFNRP&P&P&P&P&P&P&P&f.9.9.9.9.9%x'8.9.9.9b0H0H0H0H0H'):0H0H0Hj	B
M,M,M,M,M,h'M,M,M,d-^(..w77"-"*")"M	"5"Y"P"@" ,!""?#"$		"%"&'"(5)"*F+",(-".-/"2@@@@@8$@@@zHMOOOOOr$