python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_mailbox.cpython-312.opt-1.pyc

ΑepddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlm
Z
ddlmZddlZddlZddlZddlZej&sej(dGddZGdd	eZGd
deej.ZGdd
eej.ZGddeZGddeZGddeej.ZGddeej.ZGddeej.ZGddeej.ZGddZ GddejBZ"Gddej.Z#Gd d!eej.Z$Gd"d#e$ej.Z%Gd$d%Z&Gd&d'e&e$Z'Gd(d)e$ej.Z(Gd*d+e$ej.Z)Gd,d-e&e$Z*Gd.d/eej.Z+Gd0d1eZ,Gd2d3e,ej.Z-Gd4d5e,ej.Z.d6Z/d7Z0Gd8d9ej.Z1d:Z2e2jgd;Z4gd<Z5d=Z6Gd>d?ej.Z7d@Z8e9dAk(rejtyy)BN)support)	os_helper)
socket_helperztest requires gethostname()ceZdZejej
ejejejejfZ
dZdZy)TestBasec|j|tjj|j|tjt
D]&\}}|j
||j|(|j|j|jt|jttttD]\}}|j|}|j|tjj|j|tj|j|j|yN)assertIsInstanceemailmessageMessagemailbox_sample_headersassertInget_all
assertTrueis_multipartassertEquallenget_payload_sample_payloads	enumerateassertNotIsInstance)selfmsgkeyvalueipayloadparts       E/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_mailbox.py
_check_samplezTestBase._check_samplesc5==#8#89c7??3)	3JCMM%S!12	3((*+S__./5E1FG#$45	:JAw??1%D!!$

(=(=>$$T7??;T--/9		:ctjj|rtj|ytjj|rtj|yyr	)ospathisdirrrmtreeexistsunlink)rtargets  r!_delete_recursivelyzTestBase._delete_recursively,sC
77== V$
WW^^F
#V$$r#N)
__name__
__module____qualname__rr
MaildirMessagemboxMessage	MHMessageBabylMessageMMDFMessageall_mailbox_typesr"r,r#r!rrsF '*@*@ ,,g.?.? --w/B/BD:%r#rceZdZdZdZdZdZdZdZe	jdZdZdZ
d	Zd
Ze	jdj!dZd
ZdZdZdZdZdZdZdZdZd4dZdZdZdZdZdZ dZ!dZ"dZ#dZ$d Z%d!Z&d"Z'd#Z(d$Z)d4d%Z*d&Z+d4d'Z,d(Z-d4d)Z.d*Z/d4d+Z0d,Z1d-Z2d.Z3d/Z4d0Z5d1Z6d2Z7d3Z8y)5TestMailboxNzFrom: foo

%s
ctj|_|j|j|j	|j|_yr	)rTESTFN_pathr,_factory_boxrs r!setUpzTestMailbox.setUp;s5%%
  ,MM$**-	r#cn|jj|j|jyr	)r=closer,r;r>s r!tearDownzTestMailbox.tearDown@s"		  ,r#c
g}|j|jj|jdz|j	t|jd|j|jjt
jt|j	t|jd|j|jjtjt|j	t|jd|j|jjtjt|j	t|jd|j|jjt|j	t|jd|j|jjt|j	t|jd|jt5|j|jjtj tjtd	ddd|j	t|jd
|j	|jj#|d|jdzdD]#}|j%|j||%y#1swYxYw)Nrutf-8encoding)rDrErFrGrHrI)appendr=add	_templaterrrr
_sample_messagermessage_from_stringioBytesIO_bytes_sample_messageassertWarnsDeprecationWarning
TextIOWrapper
get_stringr")rkeysrs   r!test_addzTestMailbox.test_addDs$DIIMM$..1"456TYY+DIIMM'///"BCDTYY+DIIMM%";";O"LMNTYY+DIIMM"**-B"CDETYY+DIIMM/23TYY+DIIMM"789TYY+


0
1	XKK		

  ,A!BWUW
X	X	
TYY+--d1g68JK#	3Atyya12	3	X	Xs
AL44L=u{            From: foo
            Subject: Falinaptár házhozszállítással. Már rendeltél?

            0
            c>|jj|jjd}|j	t|jd|j	|jj
||jjdy)Nlatin-1rD)r=rO
_nonascii_msgencoderr	get_bytesrrs  r!"test_add_invalid_8bit_bytes_headerz.TestMailbox.test_add_invalid_8bit_bytes_headerbspiimmD..55i@ATYY+,,S1%%i0	2r#c|jjd}|jj|j	d}|j|jj
|dy)NrDr]zZSubject: =?unknown-8bit?b?RmFsaW5hcHThciBo4Xpob3pzeuFsbO104XNzYWwuIE3hciByZW5kZWx06Ww/?=

)r^
splitlinesr=rOr_rrY)rsubjrs   r!&test_invalid_nonascii_header_as_stringz2TestMailbox.test_invalid_nonascii_header_as_stringhsZ!!,,.q1iimmDKK	23--c2
-	.r#cB|jtd5|jj|jddd|jj|j
t|jd|jy#1swYYxYwNz
ASCII-onlyr)	assertRaisesRegex
ValueErrorr=rOr^flushrrassertMailboxEmptyr>s r!&test_add_nonascii_string_header_raisesz2TestMailbox.test_add_nonascii_string_header_raisesoso

#
#J
=	.IIMM$,,-	.		TYY+!		.	.s&BBcGddtdfd}tj|tjj
d||j
5|jjtjdddd|jt|jd|jj|jy#1swYYxYw)NceZdZy)JTestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.CustomErrorNr-r.r/r6r#r!CustomErrorrpwsr#rrza fake errorcr	r6)argskwrrexc_msgs  r!raiserzETestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.raiserzsg&&r#flattenuFrom: Alphösor)	Exceptionrpatchr	generatorBytesGeneratorrir=rOrRrrrArl)rrwrrrvs  @@r!)test_add_that_raises_leaves_mailbox_emptyz5TestMailbox.test_add_that_raises_leaves_mailbox_emptyvs))) 	'

dEOO::IvN

#
#K
9	GIIMM%334DEF	GTYY+		!		G	Gs/C##C,u0        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

        Да, они летят.
        rJc	|jj|j}|j|jj	||j|jj|5}|j|j
|jjdtjjddd|j|j|jdy#1swY7xYw)N
uДа, они летят.
)r=rO_non_latin_bin_msgrr`get_filereadreplacer%linesepr_rrrfs   r!test_add_8bit_bodyzTestMailbox.test_add_8bit_bodysiimmD334,,S100	2
YY


$	6QVVX!44<<U "

 1 1 35
6	6	
33354	6		6	6s
6ADDcttjd5}|jt|j	d|j
j
|}ddd|j|j
jjdtjdy#1swYWxYwNwb+rr)
tempfile
TemporaryFilewriterUseekr=rOrr`splitrrrs   r!test_add_binary_filez TestMailbox.test_add_binary_files

#
#E
*	#a
GG)*
FF1I))--"C	#	
,,S177>!''.	0		#	#sAB..B7ctjd5}|j|j|j	d|j
j
|}ddd|j|j
jjd|jjdy#1swY]xYwr)
rrrrrr=rOrr`rrs   r!test_add_binary_nonascii_filez)TestMailbox.test_add_binary_nonascii_files

#
#E
*	#a
GGD++,
FF1I))--"C	#	
,,S177>##))%0	2		#	#sAB::Cctjdd5}|jt|j	d|jt5|jj|}dddddd|j|jjjdtjdy#1swY_xYw#1swYcxYw)Nw+rJrKrr)
rrrrQrrVrWr=rOrr`rrUrs   r!test_add_text_file_warnsz$TestMailbox.test_add_text_file_warnss

#
#D7
;	'q
GGO$
FF1I!!"45
'iimmA&
'	'
	
,,S177>!''.	0
'
'	'	's#<CC0CC	CC#c>|jt5|jjt	j
|jdz}ddd|j|jj|jdzy#1swYBxYw)N0)	rVrWr=rOrSStringIOrPrrYras  r!test_add_StringIO_warnsz#TestMailbox.test_add_StringIO_warnssv


0
1	C))--DNNS,@ ABC	C--c2DNNS4HI	C	Cs<BBc|jt5|jtd5|jjt
j|jdddddd|jt|jd|jj|jy#1swYaxYw#1swYexYwrh)
rVrWrirjr=rOrSrr^rrrArlr>s r!!test_add_nonascii_StringIO_raisesz-TestMailbox.test_add_nonascii_StringIO_raisess


0
1	?''
LA
?		

bkk$*<*<=>
?	?	
TYY+		!	
?
?	?	?s"C9C&CC	CCcN|j|jjyr	)_test_remove_or_delitemr=remover>s r!test_removezTestMailbox.test_removes$$TYY%5%56r#cN|j|jjyr	)rr=__delitem__r>s r!test_delitemzTestMailbox.test_delitems$$TYY%:%:;r#cjjjdzjjjdzjt	jdjt	jdjtfdjtfdjjjjdzjjjdzjt	jdjt	jdjtfdjtfdjjjjdzjt	jdjtfdjtfd	y)
NrrDrEc"jSr	r=key0rsr!<lambda>z5TestMailbox._test_remove_or_delitem.<locals>.<lambda>DIIdOr#cSr	r6)rmethodsr!rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>F4Lr#c"jSr	r)key2rsr!rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr#cSr	r6)rrsr!rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr#c"jSr	r)key1rsr!rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr#cSr	r6)rrsr!rz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>rr#)r=rOrPrrassertRaisesKeyErrorrY)rrrrrs``@@@r!rz#TestMailbox._test_remove_or_delitemsyy}}T^^a/0yy}}T^^a/0TYY+tTYY+($;<($89--d3T^^a5GHyy}}T^^a/0TYY+tTYY+($;<($89--d3T^^a5GHtTYY+($;<($89r#cZjjjdzjjjdz}jt	jdjjjt	jdj
tfdjjjt	jdj
tfdy)NrrDrEc"jSr	rrsr!rz*TestMailbox.test_discard.<locals>.<lambda>rr#c"jSr	rrsr!rz*TestMailbox.test_discard.<locals>.<lambda>rr#)r=rOrPrrdiscardrr)rrepetitionsrrs`  @r!test_discardzTestMailbox.test_discardsyy}}T^^a/0yy}}T^^a/0TYY+		$TYY+($;<		$TYY+($;<r#c|jj|jdz}|jj|}|j	|dd|j	|jd|j
|jjd|j|jjddd|jj|j|j|_|jj|jdz}|jj|}|j	|dd|j	|jdy)Nrfromfoo0
FrD1
)r=rOrPgetrrassertIsNoneassertIsrAr<r;)rrrrs    r!test_getzTestMailbox.test_getsyy}}T^^a/0iimmD!Ve,*E2$))--./

diimmE5159		MM$**-	yy}}T^^a/0iimmD!Ve,*E2r#c|jjjdzj}j|ddj|j	djtfdjjjtfdy)Nrrrrc"jdSNrrr>sr!rz*TestMailbox.test_getitem.<locals>.<lambda>DIIe,<r#c"jSr	rrsr!rz*TestMailbox.test_getitem.<locals>.<lambda>rr#)r=rOrPrrrrr)rrrs` @r!test_getitemzTestMailbox.test_getitemsyy}}T^^a/0iioVe,*E2($<=		$($;<r#c|jj|jdz}|jjt}|jj	|}|j|tj|j|dd|j|jd|j|jj	|y)Nrrrr)r=rOrPrQget_messager
rr
rrr")rrrmsg0s    r!test_get_messagezTestMailbox.test_get_messagesyy}}T^^a/0yy}}_-yy$$T*dGOO4fu-))+U34990067r#c~|jj|jdz}|jjt}|j	|jj||jdzj
d|j	|jj|ty)Nrasciir=rOrPrQrr`r_rUrrrs   r!test_get_byteszTestMailbox.test_get_bytes
syy}}T^^a/0yy}}_-,,T2
^^a
''0	2,,T24IJr#c|jj|jdz}|jjt}|j	|jj||jdz|j	|jj|j
dtj
dy)Nr
r=rOrPrQrrYrrs   r!test_get_stringzTestMailbox.test_get_stringsyy}}T^^a/0yy}}_---d3T^^a5GH--d399$?(..t4	6r#c|jj|jdz}|jjt}|jj	|5}|j}ddd|jj	|5}|j}ddd|j
jdjtjd|jdz|j
jdjtjdty#1swYxYw#1swYxYw)Nrrr)r=rOrPrQrrrdecoderr%r)rrrfiledata0data1s      r!
test_get_filezTestMailbox.test_get_filesyy}}T^^a/0yy}}_-
YY


%	 IIKE	 
YY


%	 IIKE	 g.66rzz4H!+	-g.66rzz4H(	*
	 	 	 	 s#EEE	Ec|jjt}|jj|}|j	|j	yr	)r=rOrQrrArs   r!!test_get_file_can_be_closed_twicez-TestMailbox.test_get_file_can_be_closed_twice*s:iimmO,IIs#				r#cT|j|jjddyNTFdo_keys	do_values)_check_iterationr=iterkeysr>s r!
test_iterkeyszTestMailbox.test_iterkeys1s!dii00$%Pr#cT|j|jjddyr)rr=rZr>s r!	test_keyszTestMailbox.test_keys5sdiinndeLr#cT|j|jjddyNFTr)rr=
itervaluesr>s r!test_itervalueszTestMailbox.test_itervalues9s&dii22E(,		.r#cT|j|jjddyr)rr=__iter__r>s r!	test_iterzTestMailbox.test_iter>s&dii00%(,		.r#cT|j|jjddyr)rr=valuesr>s r!test_valueszTestMailbox.test_valuesCs!dii..Nr#cT|j|jjddyNTr)rr=	iteritemsr>s r!test_iteritemszTestMailbox.test_iteritemsGs&dii114(,		.r#cT|j|jjddyr)rr=itemsr>s r!
test_itemszTestMailbox.test_itemsLsdiioottLr#c6|D]}|jdgg}}t|D]W}|j|jj	|j
|z|j|j
|zY|r|st
|}	nJ|r|st
|}
n5gg}
}	|D]'\}}|	j||
j|)|rH|jt|t	|jt|t|	|rhd}
D]E}|j|dd|jt|j||dz
}G|jt||yy)Nz	Not emptyrrrrD)
failrangerNr=rOrPlistrrset
assertLessintr)
rrrrrrrZrr
returned_keysreturned_valuesrcounts
             r!rzTestMailbox._check_iterationPsqX	#EIIk"	#2f{#	.AKK		

dnnq&89:MM$..1,-	.9 NM
w"68nO-/?M$h
.
U$$S)&&u-
.SYM(:;SYM(:;E(
  v6E$5$5$7 8+F


S[%0
r#c|jd|j|jj|jdz}|j	||j|jd|j|jj|jdz}|j	||j|j	||j|jd|j|jj||j||j|j	||j|jd|j|jj||j||j|j||j|jd|jy)NrrrD)assertNotInr=rOrPrrrs   r!
test_containszTestMailbox.test_containsksD		*yy}}T^^a/0

dDII&		*yy}}T^^a/0

dDII&

dDII&		*		tyy)

dDII&		*		tyy)tyy)		*r#c2g}t|D]}|jt|j||j	|jj|j|z|jt|j|dzt|D]s}|jt|j||z
|jj|||jt|j||z
dz
uy)NrD)rrrr=rNrOrPr)rrrZrs    r!test_lenzTestMailbox.test_len~s{#	4AS^Q/KK		

dnnq&89:S^QU3	4{#	BAS^[1_=IIT!W%S^[1_q-@A	Br#c>jjjdz}jjj	|jdzjjjdz}jjj	|jdzjdzj|<jjj	|jdzjdzj|<jjj	|jdzt
j|<j
j|j|j|<j
j|jdzj|<jjj	|jdzj
j|jtfdjtfdjtjdy)N
original 0
original 1	changed 0	changed 1c<jjddS)Nrbar)r=__setitem__r>sr!rz+TestMailbox.test_set_item.<locals>.<lambda>s$))"7"7u"Er#c"jdSrrr>sr!rz+TestMailbox.test_set_item.<locals>.<lambda>rr#rE)
r=rOrPrrYrQr"rrrrs`  r!
test_set_itemzTestMailbox.test_set_itemsyy}}T^^l:;--d3,6	8yy}}T^^l:;--d3,6	8..;6		$--d3+5	7..;6		$--d3+5	7)		$499T?+))D/		$499T?+..<7		$--d3^^l2	4499T?+(E	G($<=TYY+r#cg}t|D]*}jjj|z,t	|D]=\}jjj
j|z?jjjtjdt	|D]\}jtfd!y)Nrc:jjSr	)r=rYrrsr!rz(TestMailbox.test_clear.<locals>.<lambda>s		0D0DS0Ir#)rr=rOrPrrrYclearrrr)r
iterationsrZrrs`   @r!
test_clearzTestMailbox.test_clearsz"	.AIIMM$..1,-	.o	LFAsTYY11#68JK	L		TYY+o	KFAsh(IJ	Kr#cT|jj|jdz}|j||j|jj|jdz}|j||j|j	|jj|j
d|j||j|j||j|jj|jdz}|j||j|j	|jj|j
d|j||j|j||j|j	|jj|j
d|j||j|j	t|jdy)NrrDrrEz2
r)	r=rOrPrrpoprrrrrrrs    r!test_popzTestMailbox.test_popssyy}}T^^a/0

dDII&yy}}T^^a/0

dDII&t,88:EBtyy)

dDII&yy}}T^^a/0

dDII&t,88:EBtyy)

dDII&t,88:EBtyy)TYY+r#c^g}tdD]9}|jjjj|z;g}tdD]}jj\}j
|j||jjt|j|jjtjd|D]jtfdy)N
rc"jSr	rrsr!rz*TestMailbox.test_popitem.<locals>.<lambda>s		#r#)rrNr=rOrPpopitemrrrrrindexrrr)rrrZrseenrrs`     @r!test_popitemzTestMailbox.test_popitemsr	;AKK		

dnnq&89:	;r	FAyy((*HCMM#t$S$'KKS!23TZZ_E	F	
TYY+	@Ch(>?	@r#cjjjdzjjjdz}jjjdz}jjjdz|tijt
jdjjjjdzjjj|jdzjj|jj|jdzf|jdzfjdzfgjt
jdjjjjdzjjj|jdzjjj|jdzjtfdjt
jdjjjjdzjjj|jdzjjj|jdzy)	Nrrz
original 2r
rFz	changed 2rc\jjddjdziS)Nrrr
)r=updaterPrsr!rz)TestMailbox.test_update.<locals>.<lambda>s/$))"2"2E5*.0L4N#Or#)r=rOrPr'rQrrrYr"rr)rrrrs`  @r!test_updatezTestMailbox.test_updatesyy}}T^^l:;yy}}T^^l:;yy}}T^^l:;		$ <1	2TYY+--d3^^k1	3--d3^^l2	4499T?+		4+!=>4>>K784>>L89;	<	
TYY+--d3^^l2	4--d3^^k1	3--d3^^k1	3(O	P	
TYY+--d3^^k1	3--d3^^k1	3--d3^^k1	3r#cP|j|jjdyNT)_test_flush_or_closer=rkr>s r!
test_flushzTestMailbox.test_flushs!!$))//48r#c|jj|jdz|jj|jdz|jj|jj	|jj|jj	|jjyNrrD)r=rOrPrkr!r>s r!test_popitem_and_flush_twicez(TestMailbox.test_popitem_and_flush_twices~		

dnnq()		

dnnq()										r#c|jtjj|j	|j
j
|jtjj|j	|j
j|jtjj|j	yr	)	assertFalser%r&r)_get_lock_pathr=lockrunlockr>s r!test_lock_unlockzTestMailbox.test_lock_unlocks(;(;(=>?		t':':'<=>		(;(;(=>?r#cP|j|jjdyNF)r+r=rAr>s r!
test_closezTestMailbox.test_closes!!$))//59r#ctdDcgc]}|j|z}}|jj|d|jj|d|jj|d|j}||r|jj	|j|j|_|jj}|jt|d|D]-}|j|jj||/|j	ycc}w)NrFrrDrE)rrPr=rOrAr<r;rZrrrrY)rrshould_call_closercontentsoldboxrZrs        r!r+z TestMailbox._test_flush_or_closes05a91DNNQ&99		

hqk"		

hqk"		

hqk"IIOOMM$**-	yy~~TA&	?CMM$))..s3X>	?:sEc	tjtttjt
fD]}tjjj|jjt
jdtjjtjjtfdy)Nrc<jjdSr	)r=
_dump_message)outputrsr!rz/TestMailbox.test_dump_message.<locals>.<lambda>*s$))"9"9$"Gr#)rrRrQrSrTrUr=r?rgetvaluerr%rr_r	TypeError)rinputr@s` @r!test_dump_messagezTestMailbox.test_dump_message s//@%rzz2G'HJ	KEZZ\FII##E62V__.%--eRZZ5F5F5HI
K		K)G	Ir#c |jdzS)Nz.lock)r;r>s r!r2zTestMailbox._get_lock_path,szzG##r#r)9r-r.r/maxDiffr<rPr?rBr[textwrapdedentr^rbrfrmr}r_rrrrrrrrrrrrrrrrrrrrrrrrrrrr	rrrr$r(r,r/r5r8r+rDr2r6r#r!r8r84s?GH#I.
-3.$HOO%M2."")
*

VG_	6020J
"7<:,
=
3=8K6*QM.
.
O.
M16+&
B,6
K,$@  3D9	@: 
I$r#r8ceZdZdZy)TestMailboxSuperclassctjd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd	|jtfd
|jtfd|jtfd|jtfd
|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfd|jtfdy)Nr&c&jdSN)rOboxsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>6swwr{r#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>7sszz"~r#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>8sr7Jr#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>9ss{{2r#c(jddSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>:ssr27Nr#c$jSr	)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>;s
s||~r#c$jSr	)rZrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda><
sxxzr#c@jjSr	)r__next__rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>=ss~~7G7P7P7Rr#c@jjSr	)rr\rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>>ss||~7N7N7Pr#c$jSr	)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>?
szz|r#c@jjSr	)rr\rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>@ss}}7O7O7Qr#c$jSr	)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>A
syy{r#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>BrRr#c&jdSrN)__getitem__rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>CrUr#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>DrUr#c&jdSrN)rYrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Ess~~b7Ir#c&jdSrN)r`rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Fss}}R7Hr#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Gss||B7Gr#cdvSrNr6rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>HsrSyr#c&jdSrN)__contains__rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Iss7G7G7Kr#c$jSr	)__len__rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>J
s{{}r#c$jSr	)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Krbr#c&jdSrN)rrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>LrRr#c$jSr	)r!rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Mror#c&jdS)N))rOrO)r'rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Nsszz+7Nr#c$jSr	)rkrPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Orbr#c$jSr	)r3rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>PrZr#c$jSr	)r4rPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Qr_r#c$jSr	)rArPsr!rz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>Rrbr#)rMailboxrNotImplementedError)rrQs @r!test_notimplementedz)TestMailboxSuperclass.test_notimplemented3soof%-/BC-/EF-/JK-/FG-/NO-/EF-/AB-/RS-/PQ-/CD-/QR-/BC-/BC-/JK-/JK-/IJ-/HI-/GH-/@A-/KL-/DE-/BC-/BC-/DE-/NO-/BC-/AB-/CD-/BCr#N)r-r.r/rzr6r#r!rKrK1sDr#rKceZdZddZdZdZdZdZdZdZ	d	Z
d
ZddZdZ
d
ZdZdZddZdZdZdZdZdZdZej2eedddZej2eedddZdZy)TestMaildirNc.tj||Sr	)rMaildirrr&factorys   r!rzTestMaildir.<lambda>Wsg0Nr#ctj|tjdk(stj
dk(rd|j_yy)Nntcygwin!)r8r?r%namesysplatformr=colonr>s r!r?zTestMaildir.setUpYs6$GGtO!9!DIIO":r#c|jtjtjj	|j
dgyNtmp)rr%listdirr&joinr;r>s r!rlzTestMaildir.assertMailboxEmpty^s.BGGLLU$CDbIr#ctj|jdz}|jd|j	d|j
j
|}|jtjjtjj|jd||j
jdy)Nrcurr)rr0rP
set_subdirset_infor=rOrr%r&r)rr;r)rrrs   r!test_add_MMzTestMaildir.test_add_MMas$$T^^a%78uUiimmC rww||DJJ25tyyHH(IJ	Kr#ctj|jdz}|jd|j	d|j
j
|}|j
j|}|j|tj|j|jd|j|jdy)NrrRFFR)rr0rPr	set_flagsr=rOrr
r
get_subdir	get_flags)rrrmsg_returneds    r!test_get_MMzTestMaildir.test_get_MMjs$$T^^a%78u

diimmC yy,,S1lG,B,BC002E://148r#c`tj|jdz}|jd|jj|}|jj
|}|j|jd|j|jdtj|jdz}||j|<|jj
|}|j|jd|j|jd|j|jdtj|jdz}|jd	||j|<|jd
z|j|<|jj
|}|j|jd|j|jd|j|jdy)
NrTPnewPTrDrOrrEz2,SrFSz3
)rr0rPrr=rOrrrrrr)rrrrmsg1msg2s      r!test_set_MMzTestMaildir.test_set_MMus%%dnnq&89tiimmD!yy,,S1002E://148%%dnnq&89		#yy,,S1002E://126113U;%%dnnq&89

e		#!+		#yy,,S1002E://137113U;r#ctj|jdz}|jd|j	d|j
j
|}Gddtj}tj|j|}|j
j|_	|j|}|j||y)NrrrceZdZy)8TestMaildir.test_consistent_factory.<locals>.FakeMessageNrqr6r#r!FakeMessagersr#rr)rr0rPrrr=rOr~r;rrr
)rrrrrQrs      r!test_consistent_factoryz#TestMaildir.test_consistent_factorys$$T^^a%78u

diimmC 	'00	oodjj+>IIOO	s#dK0r#c&|jtj|j|_|j|j
|j|j|jd|_|jy)Nr)rBrr~r;r=
_check_basicsr,r<r>s r!test_initialize_newzTestMaildir.test_initialize_newsa

OODJJ/	  ,MM$**dM;	r#c	N|jdD]\}tjtjj	tjj|j|^tj|j|_	|jy)NrOrrr)rBr%mkdirr&normpathrr;rr~r=r)rsubdirs  r!test_initialize_existingz$TestMaildir.test_initialize_existingsj

-	IFHHRWW%%bggll4::v&FGH	IOODJJ/	r#c|j|jjtjj|j|j|jj|dD]z}tjj|j|}tj|tj}|jtj|d|z|y)NrzNot a directory: '%s')rr=r;r%r&abspathr<rstatST_MODErS_ISDIR)rrrr&modes     r!rzTestMaildir._check_basicss"''//$***EF++W5-	PF77<<

F3D774=.DOODLL.0G$0NO	Pr#c|jjd|jjd|jjd|jt|jj	d|jt|jj	tdyNonetwothreerF)rrrr=
add_folderrrlist_foldersrr>s r!test_list_folderszTestMaildir.test_list_folders		U#		U#		W%TYY3356:TYY335601	3r#c|jjd|jjd}|j|jdz|jtjjtjj|jd|jjd}|j|j|jd|jdzy)Nfoo.barrz.foo.barr)r=r
get_folderrOrPrr%r&r'rr;rrYrZ)rfolder0folder1s   r!test_get_folderzTestMaildir.test_get_folders		Y'))&&y1DNNU*+

bggll4::z&JKL))&&y1++GLLN1,=>%/	1r#cz|jjd|jjd|jt|jj	d|jt|jj	td|jj
d|jt|jj	d|jt|jj	td|jjd|jt|jj	d|jt|jj	td|jj
d|jt|jj	d|jt|jj	td|jj
d|jt|jj	d	|j|jj	gy
NrrrE)rrrD)rr)rrrr=rrrrr
remove_folderr>s r!test_add_and_remove_foldersz'TestMaildir.test_add_and_remove_folders		U#		U#TYY3356:TYY3356N8KL		&TYY3356:TYY3356H
F		W%TYY3356:TYY3356<L8MN		(TYY3356:TYY3356H
F		&TYY3356://126r#ctjj|jdd}tjj|jdd}t	|dd5}|jddddt	|dd5}|jdddd|jj|jtjj||jtjj|tj|}tj|tjdz
d	z
|jf|jj|jtjj||jtjj|y#1swYnxYw#1swYSxYw)
NrrrwrJrK@i@rE)r%r&rr;openrr=cleanrr)rutimetimest_mtimer1)rfoo_pathbar_pathrfoo_stats     r!
test_cleanzTestMaildir.test_cleansP77<<

E5977<<

E59
(C'
2	a
GGCL	
(C'
2	a
GGCL			x01x01778$
DIIK&014$--/	0		12x01				s%G#
G0#G-0G:c
Ltj}d|vr|jdd}d|vr|jdd}tj}tjd}d}t|D]J}|jj}tjj|j\}}	|j|tjjtjj|j dd|z|j#|	}
|j%|
d|	z|
j'}||j)t+|d	t+|d	d
|d	d|d	dt+|d	t+|d	k(r8|j)t+|d
t+|d
d|d
d|d
d|jt+|d|d|dd|d|jt+|dt+|dd
zd|dd|dd|j|d|d|dd|d|}|j-t.|j1d	|j|j3t.|j5Mt7tj8tjj|j d}|j||d|d|dy)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 ''rDzNon-monotonic milliseconds: 'rEzProcess ID mismatch: 'z
' should be 'rFzNon-sequential counter: 'rGzHost name mismatch: 'zWrong file count: ')socketgethostnamerr%getpidrecompilerr=_create_tmpr&rrrrrr;matchassertIsNotNonegroupsassertGreaterEqualrrrUrrrArr)
rrhostnamepidpatternprevious_groupsxtmp_fileheadtailrr
file_counts
             r!test_create_tmpzTestMaildir.test_create_tmps%%'(?''W5H(?''W5Hiik**>?{#	Ayy,,.Hx}}5JD$T277??277<<

@E4G$H;dB
DMM$'E  (AD(HI\\^F*''F1IOA<N8O-a0&)=>vay>S);%<<++Cq	NCPQ@R<S!0!3VAY!@A  VAY$Qi./  VAY_Q5G1H11L-a0&)=>  H$Qi34%ONN01MM!X]]_.CDNN=	>BGGLLU$CDE
[ +/	0r#c|j|jji|jj|jdz}|jj|jdz}|j|jji|jj|j|jj|tjjd||tjjd|i|jj|jdz}|j|jj|tjjd||tjjd|i|jj|j|jj|tjjd||tjjd||tjjd|iy)NrrDrrE)	rr=_tocrOrP_refreshr%r&rrs    r!test_refreshzTestMaildir.test_refreshs,yy}}T^^a/0yy}}T^^a/0,		$UD0I*.UD0I*K	Lyy}}T^^a/0$UD0I*.UD0I*K	L		$UD0I*.UD0I*.UD0I*K	Lr#c|jj|jdz}|jj|jdz}|j|j|_|j|jjid|j_|jj|jt|jjjt||gy)NrrD)r=rOrPr<r;rr_skewfactorrsortedrZrs   r! test_refresh_after_safety_periodz,TestMaildir.test_refresh_after_safety_period-syy}}T^^a/0yy}}T^^a/0MM$**-	,!#						 3 3 56d|8LMr#cjtfdjjjdzjjj
tjjdtjtjjjdjjjtjjdijjjtfdjjjiy)Nc:jjdSrr=_lookupr>sr!rz)TestMaildir.test_lookup.<locals>.<lambda>BsDII,=,=e,Dr#rrc:jjSr	rrsr!rz)TestMaildir.test_lookup.<locals>.<lambda>JsDII,=,=d,Cr#)rrr=rOrPrrr%r&rrr;rrk)rrs`@r!test_lookupzTestMaildir.test_lookup@s($DEyy}}T^^a/0**40"'',,ud2KL
		"'',,tzz5$78$UD0I)JK	
		($CD,r#cl|jj|jjyr	)r=r3r4r>s r!r5zTestMaildir.test_lock_unlockMs 				r#cd}|j|j|}|jd}|j|j||j	d}|j|j|y)Ncyr	r6ss r!
dummy_factoryz.TestMaildir.test_folder.<locals>.dummy_factoryUr#rr)r<r;rrr)rrrQfolder
folder1_aliass     r!test_folderzTestMaildir.test_folderRs_	mmDJJ
m>	*

foo}5y1


m,,m<r#c&tdD]4}|jjtjt
6t
jtjj|jdd|jD]}y)Nrrz	stray-dir)rr=rOrr
rQr%rr&rr;)rrrs   r!test_directory_in_folderz$TestMaildir.test_directory_in_folder^skr	<AIIMM'///:;	<	djj%=>99	C	r#umasktest needs os.umask()ctj|jdz}tjd}	|j
j
|}tj|tjj|j|j
j|}tj|j}|j|dzy#tj|wxYw)NrI)rr0rPr%r
r=rOr&rr;rrst_moder1)rr
orig_umaskrr&rs      r!test_file_permissionsz!TestMaildir.test_file_permissionsks$$T^^a%78XXa[
	!))--$CHHZ ww||DJJ		(9(9#(>?wwt}$$&
HHZ sC  C7ctjd}	|jjd}tj|tjj|jd}tj|}|j}|j|dzy#tj|wxYw)Nr	subfolder
maildirfolderr)
r%r
r=rr&rr;rrr1)rrrr&stpermss      r!test_folder_file_permsz"TestMaildir.test_folder_file_permsxsXXa[
	!		,,[9IHHZ ww||IOO_=
WWT]

%%-)
HHZ sB''B>cjjdD]c}tjtjjjj|tjdz
fdzedj_jjfd}jjj|tjjjdd}tj|tj|jjj|y)N)rrrHrErc4jjuSr	)r=r)orig_tocrsr!	refreshedz*TestMaildir.test_reread.<locals>.refresheds99>>11r#rz
stray-file)r=rr%rr&rr;rrrr1rcreate_empty_filer*r)rrrfilenamers`   @r!test_rereadzTestMaildir.test_rereads		%	)FHHRWW\\$))//6:iik!m%a'
)	)!#		
99>>	2	
		%
77<<

E<@##H-
		(			$r#r	rF)r-r.r/r<r?rlrrrrrrrrrrrrrrrr5r
runittest
skipUnlesshasattrr%rrr r6r#r!r|r|UsNH"
JK	9<.
1P317&2$-0^L"N&-

=XW-/FG
'H
'XW-/FG*H*&%r#r|ceZdZdZdZdZy)_TestSingleFilez&Common tests for single-file mailboxesctj|jj}|jj|jdz|jjtj|jj}|j|||jj|j|j|_|jt|jdyr.)r%rr;st_inor=rOrPrkrrAr<r)rinode_beforeinode_afters   r!test_add_doesnt_rewritez'_TestSingleFile.test_add_doesnt_rewriteswwtzz*11		

dnnq()		ggdjj)00{3	
		MM$**-	TYY+r#ctj|jjdz}tj|j||j
j
|jdz|j
j
|jdz}|j
j||j
j|jtj|jj|y)NirrD)r%rr;rchmodr=rOrPrrkr)rrrs   r!test_permissions_after_flushz,_TestSingleFile.test_permissions_after_flushswwtzz"**U2
T"		

dnnq()IIMM$..1,-				,44d;r#N)r-r.r/__doc__r*r-r6r#r!r%r%s0,(<r#r%ceZdZfdZdZdZdZdZdZdZ	dZ
d	Zejejeed
ddZd
ZxZS)
_TestMboxMMDFc*t||jj|j	|j
t
jt
j|j
dzD]}tj|yNz.*
superrBr=rAr,r;globescaperr*rlock_remnant	__class__s  r!rBz_TestMboxMMDF.tearDownf
		  , IIdkk$**&=&DE	+L\*	+r#ct|jd5}|j|jgdddy#1swYyxYwNrbrr;r	readlinesrrs  r!rlz _TestMboxMMDF.assertMailboxEmpty=
$**d
#	0qQ[[]B/	0	0	0!AA
cd}|jj||jdzz}|jj|tz}|j	|jj|d|jdzj
d|j	|jj|dt|j	|jj|d||jdzzj
d|j	|jj|d|j
dtzy)NFrom foo@bar blah
rFfrom_rTrrunixfromrrs    r!test_get_bytes_fromz!_TestMboxMMDF.test_get_bytes_froms(yy}}X(::;yy}}X78,,T,?
^^a
''0	2,,T,?!	#,,T,>
*
*227;	=,,T,>OOG$'<<	>r#cd}|jj||jdzz}|jj|tz}|j	|jj|d|jdz|j	|jj|dj
dtj
d|j	|jj|d||jdzz|j	|jj|dj
d|tzj
dy)NrDrFrErTrrGs    r!test_get_string_fromz"_TestMboxMMDF.test_get_string_froms#(yy}}X(::;yy}}X78--d%-@!+	---d%-@FFtL(..t4	6--d$-?!DNNQ$66	8--d$-?EEdK"_4;;DA	Cr#c|jjd}|j|j|jd|j|j|j	dy)NFrom foo@bar blah
From: foo

0
foo@bar blahrr=rOrget_fromrras  r!test_add_from_stringz"_TestMboxMMDF.test_add_from_stringsWiimmAB3002NC3335u=r#c|jjd}|j|j|jd|j|j|j	dy)NsFrom foo@bar blah
From: foo

0
rNrrOras  r!test_add_from_bytesz!_TestMboxMMDF.test_add_from_bytessWiimmBC3002NC3335u=r#ctjtjfD]%}|d}|jj	|}'y)NrM)rr1r4r=rO)rclass_rrs    r!test_add_mbox_or_mmdf_messagez+_TestMboxMMDF.test_add_mbox_or_mmdf_messages?**G,?,?@	%F>?C))--$C	%r#ctdDcgc]}|j|z}}|D]}|jj||jj	t
jj|j}|j|j|_|jt|jd|jjD]-}|j|jj||/|jj	|j|t
jj|jycc}w)NrF)rrPr=rOrAr%r&getmtimer;r<rrrrrY)rrrrmtimers      r!test_open_close_openz"_TestMboxMMDF.test_open_close_opens.3Ah7$..1$77	!EIIMM% 	!		  ,MM$**-	TYY+99%%'	=CMM$))..s3V<	=		 0 0 <=8sE.c|jjttdD]*}|jj|j|z,|jjt|jj
j
|jj
jd|jj
j}|jjt|jd5}|j||jddd|j|j|_y#1swY*xYw)NrFrr=)r=rOrQrrP_filerkrrrArr;rr<)rrr;rs    r!test_add_and_closez _TestMboxMMDF.test_add_and_close"s		

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

o&				Q99??'')		
$**d
#	1qXqvvx0	1MM$**-		1	1s!EE'
socketpairzTest needs socketpair().cztj\}}|j|j|j|jt	j
}|dk(rl	|jj|jd|jd|jjt	jd|jd	|jtj|jj|jdtj |d|jj|jjy#t	jdwxYw#|jdtj |dwxYw)NrcrDp)exitcode)rr^
addCleanuprAr%forkr=r3sendrecvr4_exitrrExternalClashErrorrwait_process)rcprs    r!test_lock_conflictz _TestMboxMMDF.test_lock_conflict0s)
  "1  ggi!8	
		 tq			  "	
q		2g88"iinn
.
FF4L  q1				
FF4L  q1s(AE6%4F6F
*F:cd}|jj|}|jj|jj|j	|j
|_|jj
|jj|}|jj|j|jj|jjy)NzSubject: sub

body
)	r=rOrkrAr<r;r3r_locked)rrrrs    r!test_relockz_TestMboxMMDF.test_relockUs'yy}}S!				MM$**-			yy}}S!				))*		r#)r-r.r/rBrlrIrKrQrSrVrZr]r
requires_forkr!r"r#rrlro
__classcell__r9s@r!r0r0sv+0>C>>%>.WX68RS!T!F
r#r0c`eZdZddZej
eedddZdZ	dZ
y)	TestMboxNc.tj||Sr	)rmboxrs   r!rzTestMbox.<lambda>gT70Kr#r
rc4	tjd}|jjtj|j
t
j|j
d|_|jjd|jjtj|tj|j
}|j}|j|dzy#tjwxYw)N?T)createrOr)r%r
r=rAr*r;rrvrOrrr1)r	old_umaskrrs    r!test_file_permszTestMbox.test_file_permsis
	 IIIOOIIdjj!TZZ=DIIIMM"IIOOHHY
WWTZZ
 

%%-)	
HHYsB)DDctjj}d|d<|jd|jj|}|jj
|}|j|jdy)Nzjohn@example.comFromzNo newline at the endzNo newline at the end
)	rrr
set_payloadr=rOrrr)rrrs   r!test_terminating_newlinez!TestMbox.test_terminating_newline|sl--''),34IIMM'"))--",,.0IJr#c|jjdt|jd5}|j	}|j|dddddd|jjdt|jd5}|j	}|j|ddddddy#1swYjxYw#1swYyxYw)NzFrom: foo

0rJrKrz0

z
From: foo

0
)r=rOrr;rr)rrdatas   r!test_message_separatorzTestMbox.test_message_separators		

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

()
$**w
/	11668DT"#Y0	1	1	1	1
	1	1s&C&CCCr	)r-r.r/r<r!r"r#r%r|rrr6r#r!rtrtes<KHXW-/FG*H*$K
1r#rtceZdZddZy)TestMMDFNc.tj||Sr	)rMMDFrs   r!rzTestMMDF.<lambda>rwr#r	)r-r.r/r<r6r#r!rrsKHr#rcJeZdZddZdZdZdZdZdZdZ	d	Z
d
ZdZy)
TestMHNc.tj||Sr	)rMHrs   r!rzTestMH.<lambda>s

40Ir#cd|jtj|jdgy)Nz
.mh_sequences)rr%rr;r>s r!rlzTestMH.assertMailboxEmptys"DJJ//1BCr#c|jjd|jjd|jjd|jt|jj	d|jt|jj	tdyrrr>s r!rzTestMH.test_list_foldersrr#cd}|j|j||_|jjd}|jj	d}|j|jdz|jtjjtjj|jd|jj	d}|j|j|jd|jdz|j|j|jj|j|j|jjy)Ncyr	r6rs r!rz-TestMH.test_get_folder.<locals>.dummy_factoryrr#rrr)r<r;r=rrrOrPrr%r&r'rrrYrZr)rr
new_folderrrs     r!rzTestMH.test_get_folders
	MM$**m<	YY)))4
))&&y1DNNU*+

bggll4::y&IJK))&&y1++GLLN1,=>%/	1
	


j))499+=+=>

g&&		(:(:;r#cz|jjd|jjd|jt|jj	d|jt|jj	td|jj
d|jt|jj	d|jt|jj	td|jjd|jt|jj	d|jt|jj	td|jj
d|jt|jj	d|jt|jj	td|jj
d|jt|jj	d	|j|jj	gyrrr>s r!rz"TestMH.test_add_and_remove_foldersrr#c|j|jjitj|j
dz}|j
d|jj|}|j|jjd|gitj|j
dz}|jgd|jj|}|j|jj||g|g|gd|jdg||j|<|j|jj|g|g|g|gd|jj||j|jjd|giy)NrrrD)rrepliedrrrrflagged)rrrr)
rr=
get_sequencesrr2rPadd_sequencerO
set_sequencesrrrrrrs     r!test_sequenceszTestMH.test_sequencessn002B7  !!34% yy}}T"002UD6NC  !!3445yy}}T"002!4L4&I	KI;'		$002!F4&TF!%(	)	
		002Yv4FGr#ctj|jdz}|jd|jj|}|jj
|}y)Nrr)rr2rPrr=rOr)rrrrefmsg0s    r!test_issue2625zTestMH.test_issue2625sO  !!34% yy}}T"))''-r#ctj|jdz}|jj	|}|jj|jj
||jjy)Nr)rr2rPr=rOr3rr4)rrrs   r!test_issue7627zTestMH.test_issue7627s]  !!34yy}}T"						r#c	tj|jdz}tj|jdz}tj|jdz}tj|jdz}|jddg|jdg|jddg|jgd|jj|}|jj|}|jj|}|jj|}|j
|jj||||g|g|g|g|gd	|jj||j
|jj|||g|g|g|gd
|jj|j
|jjgd|}|dz}|dz}|j
|jjgddgdgdgd
|jj|}|jj|}|jj|}|jj|}|jj||jj||jj|jj|jj|j
|jjgddgdgdgd
y)
NrrDrErFrunseenrr)rrrrr)rrrr)rDrErF)rDrErFrGrH)
rr2rPrr=rOrrrpackrZr3r4)	rrrrmsg3rrrkey3s	         r!	test_packzTestMH.test_packs  !!34  !!34  !!34  !!34E8,-E7#E9-.45yy}}T"yy}}T"yy}}T"yy}}T"002!$tD1TF!%tfH	I	
		002!$t,vdV!%(	)	
		)95axax002%A31#N	Pyy}}T"yy}}T"yy}}T"yy}}T"										002+ !s1#!>	?r#cVtjj|jdS)Nz.mh_sequences.lock)r%r&rr;r>s r!r2zTestMH._get_lock_pathsww||DJJ(<==r#r	)
r-r.r/r<rlrrrrrrrr2r6r#r!rrs7IHD3<&7&H(.*?X>r#rc2eZdZddZdZfdZdZxZS)	TestBabylc.tj||Sr	)rBabylrs   r!rzTestBabyl.<lambda>!s

dG0Lr#ct|jd5}|j|jgdddy#1swYyxYwr<r>r@s  r!rlzTestBabyl.assertMailboxEmpty#rArBc*t||jj|j	|j
t
jt
j|j
dzD]}tj|yr2r3r7s  r!rBzTestBabyl.tearDown'r:r#c|j|jjgtj|j
dz}|j
d|jj|}|j|jjdgtj|j
dz}|jgd|jj|}|jt|jjtddg|jddg||j|<|jt|jjtgd|jj||jt|jjtdgy)	NrrrD)ransweredrrblahfiled)rrr)rr=
get_labelsrr3rP	add_labelrO
set_labelsrrrs     r!test_labelszTestBabyl.test_labels.s[--/4##DNNQ$67uyy}}T"--/%9##DNNQ$6723yy}}T"TYY1134c5%.6IJ)*		$TYY1134/0	2		TYY1134c6(mDr#r	)r-r.r/r<rlrBrrqrrs@r!rrsLH0+Er#rceZdZdZdZy)FakeFileLikeObjectcd|_yr7closedr>s r!__init__zFakeFileLikeObject.__init__Cs	r#cd|_yr*rr>s r!rAzFakeFileLikeObject.closeFs	r#N)r-r.r/rrAr6r#r!rrAsr#rceZdZdZdZy)FakeMailBoxctjj|ddtdDcgc]}t	c}|_ycc}w)NrOcyr	r6)rs r!rz&FakeMailBox.__init__.<locals>.<lambda>Msr#r)rrxrrrfiles)rrs  r!rzFakeMailBox.__init__Ls6  r+<=49"I>q(*>
>sA
c |j|Sr	)rras  r!rzFakeMailBox.get_filePszz#r#N)r-r.r/rrr6r#r!rrJs?r#rceZdZdZy)TestFakeMailBoxc"t}tdD]*}|j|j|j,tdD]}||	tdD]*}|j|j|j,y)Nr)rrr1rrr)rrQrs   r!test_closing_fdzTestFakeMailBox.test_closing_fdVsmr	2ASYYq\001	2r	AF	r	1AOOCIIaL//0	1r#N)r-r.r/rr6r#r!rrTs1r#rcleZdZejZdZdZdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZy
)TestMessagec.tj|_yr	)rr:r;r>s r!r?zTestMessage.setUpds%%
r#c:|j|jyr	)r,r;r>s r!rBzTestMessage.tearDowngs  ,r#ctjt}|j|}|j	||j|yr	)rrRrQr<_post_initialize_hookr"reMMrs   r!test_initialize_with_eMMz$TestMessage.test_initialize_with_eMMjs<''8mmC ""3'3r#cr|jt}|j||j|yr	)r<rQrr"rrs  r!test_initialize_with_stringz'TestMessage.test_initialize_with_stringqs,mmO,""3'3r#ct|jdd5}|jt|j	d|j|}|j
||j|dddy#1swYyxYw)NrrJrKr)rr;rrQrr<rr"rrrs   r!test_initialize_with_filez%TestMessage.test_initialize_with_filewsj
$**dW
5	$
GGO$
FF1I--"C&&s+s#	$	$	$sAA<<Bct|jd5}|jt|j	d|j|}|j
||j|dddy#1swYyxYw)Nrr)rr;rrUrr<rr"rs   r! test_initialize_with_binary_filez,TestMessage.test_initialize_with_binary_filesi
$**e
$	$
GG)*
FF1I--"C&&s+s#	$	$	$sAA::Bc|j}|j||j|tjj
|j|tj
|j||j|j|jg|j|j|j|jyr	)
r<rr
rrr
rrrZr1rrrrs  r!test_initialize_with_nothingz(TestMessage.test_initialize_with_nothingsmmo""3'c5==#8#89c7??3c4==1R())+,#//+,r#c8jtfdy)Nc6jtSr	)r<objectr>sr!rz9TestMessage.test_initialize_incorrectly.<locals>.<lambda>sT]]68-Dr#)rrBr>s`r!test_initialize_incorrectlyz'TestMessage.test_initialize_incorrectlys)%DEr#ctjt}|jt}|jD].}|j||jdj
|0y)Nz{} attribute does not exist)rrRrQr<__dict__rformat)rrrattrs    r!test_all_eMM_attributes_existz)TestMessage.test_all_eMM_attributes_existsU''8mmO,LL	<DMM$-44T:
<	<r#ctjt}|j}|j	||j|yr	)rrRrQr<_become_messager"rs   r!test_become_messagezTestMessage.test_become_messages9''8mmoC 3r#c|j|jD]}|jtjj|j
tfdy)Nc&jSr	)_explain_to)r	other_msgsr!rz-TestMessage.test_explain_to.<locals>.<lambda>sS__Y-Gr#)r<r5rrrr
rrB)rrUrrs  @@r!test_explain_tozTestMessage.test_explain_tos]mmo,,	'FIOOI&	'MM))+	)%GHr#cyr	r6rs  r!rz!TestMessage._post_initialize_hooksr#N)r-r.r/rr
r<r?rBrrrrrrrrrrr6r#r!rr`sIH&-  $$	-F< I
r#rcHeZdZejZdZdZdZdZ	dZ
dZy)TestMaildirMessagect|j|jd|j|jdy)NrrO)r_subdir_infors  r!rz(TestMaildirMessage._post_initialize_hooks*e,B'r#c2tjt|jj	djd|jj	djd|jj	d|j
tfd|jj	djd|jj	d|jy)Nrrc&jdSr)rrsr!rz0TestMaildirMessage.test_subdir.<locals>.<lambda>scnnU.Cr#)	rr0rQrrrrrjr"rs @r!test_subdirzTestMaildirMessage.test_subdirs$$_5)51u)51u)51*&CD)51u)513r#ctjt}|j|j	d|j|jd|j
d|j|jd|j|j	d|j
d|j|j	d|jd|j|j	d|jd|j|j	d	|j|jd|j|y)
NrOrFSDTPDPSTFTDFPSTTDRPFS)
rr0rQrrrradd_flagremove_flagr"rs  r!
test_flagszTestMaildirMessage.test_flagss$$_5"-)51

c)51#.

f&1T'2$/)513r#ctjt}|jt	|jt
jz
d|jd|j|jdy)N<)	rr0rQrabsget_daterset_daterrs  r!	test_datezTestMaildirMessage.test_datesX$$_5CLLNTYY[892>S-r#c.tjt|jj	djd|jj	d|j
tfd|jy)NrOz	1,foo=barc&jdSr	)rrsr!rz.TestMaildirMessage.test_info.<locals>.<lambda>sS\\$-?r#)	rr0rQrget_inforrrBr"rs @r!	test_infozTestMaildirMessage.test_infosj$$_5,[!5)%?@3r#c tjt}|j|j	d|jd|j|j
d|j|j	d|jd|j|j
d|j|j	d|jd|j|j
d|j|j	d|jd|j|j
d|j|j	d|j|y)	NrOSFrz2,FSz1,RPTDz2,D)rr0rQrrrrrrrr"rs  r!test_info_and_flagsz&TestMaildirMessage.test_info_and_flagss$$_5,

d$/0T"-."-.S#./3r#N)r-r.r/rr0r<rrrrr	rr6r#r!rrs+%%H(  ".  r#rcDeZdZejZdZdZdZdZ	ddZ
y)_TestMboxMMDFMessagec&|j|yr	)_check_fromrs  r!rz*_TestMboxMMDFMessage._post_initialize_hooksr#ctjt}|jdtj|}|j|j
d|j
y)NzFrom foo@bar blahrN)rr
rQset_unixfromr1rrPrs  r!test_initialize_with_unixfromz2_TestMboxMMDFMessage.test_initialize_with_unixfromsMooo.,-!!#&Hr#cntjt}|j||j	d|j|j
d|j	dd|j|d|j	dtj|j|dy)Nzfoo barfoo@barTz	blah@temp)	rr1rQrset_fromrrPr	localtimers  r!	test_fromz_TestMboxMMDFMessage.test_froms!!/2Y3Y%i([$.."23k*r#c tjt}|j|j	d|jd|j|j	d|jd|j|j	d|j
d|j|j	d|jd|j|j	d|j|y)	NrOrXODRRODXFARODFAXFDXARO)	rr1rQrrrrrr"rs  r!rz_TestMboxMMDFMessage.test_flagss!!/2"-

c#.

f&1T(3$/3r#Ncx|d}|jtj|dz|jy)Nz
MAILER-DAEMONz. \w{3} \w{3} [\d ]\d [\d ]\d:\d{2}:\d{2} \d{4})rrrrP)rrsenders   r!rz _TestMboxMMDFMessage._check_from's7>$FRXXJJ 	!r#r	)r-r.r/r_mboxMMDFMessager<rrrrrr6r#r!rrs'''HI	+ !r#rc$eZdZejZy)TestMboxMessageN)r-r.r/rr1r<r6r#r!r&r&0
""Hr#r&c0eZdZejZdZdZy)
TestMHMessagec<|j|jgyr	)r
_sequencesrs  r!rz#TestMHMessage._post_initialize_hook9s,r#ctjt}|j|j	g|jdg|j|j	dg|jg|j|j	g|j
d|j|j	dg|j
d|j|j	ddg|j
d|j|j	ddg|jd|j|j	dg|j
d|j|j	ddg|jd|j|j	ddg|jddg|j|j	ddgy)Nfoobarrrr)rr2rQrrrrremove_sequencers  r!rzTestMHMessage.test_sequences<s0**,b18*%**,xj9"**,b1"**,xj9#**,x.CD#**,x.CDH%**,yk:"**,y(.CDI&**,y(.CD8Y/0**,x.CDr#N)r-r.r/rr2r<rrr6r#r!r)r)5s  H-Er#r)c6eZdZejZdZdZdZy)TestBabylMessagec<|j|jgyr	)r_labelsrs  r!rz&TestBabylMessage._post_initialize_hookXsb)r#ctjt}|j|j	g|jdg|j|j	dg|jg|j|j	g|j
d|j|j	dg|j
d|j|j	ddg|j
d|j|j	ddg|jd|j|j	dg|j
d|j|j	ddg|jd|j|j	ddg|jddg|j|j	ddgy)Nr-rresentrr)rr3rQrrrrremove_labelrs  r!rzTestBabylMessage.test_labels[s""?3)2.z")H:6r)2.

g)G95

h)GX+>?

h)GX+>?!)H:6

h)Hh+?@")Hh+?@*-.)Hj+ABr#ctjt}|j}|j	|jg|j
|jd|d<d|d<|j	|jjg|j||j}|j	|jddg|j	|dd|j	|dd|j
|j|j|j	|jddg|j
|j|j}|j	|jgddD]}|j	||||y)Nz
FooBar 1.0
User-AgentBlahz
X-Whatever)r7Dater~ToSubject)
rr3rQget_visiblerrZrrset_visibleupdate_visible)rrvisibleheaders    r!test_visiblezTestBabylMessage.test_visiblers""?3//#,'--/0 , &*//126 //#,)EF.=.7'--/0,)EF'--/0//#*5	6E	;FWV_c&k:	;r#N)	r-r.r/rr3r<rrrAr6r#r!r0r0Ts##H*C.;r#r0c$eZdZejZy)TestMMDFMessageN)r-r.r/rr4r<r6r#r!rCrCr'r#rCceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZy)TestMessageConversionc|jD]4}tjt}||}|j	|6yr	)r5rr
rQr")rrU	msg_plainrs    r!test_plain_to_xz%TestMessageConversion.test_plain_to_xs=,,	$F8I#Cs#	$r#c|jD]4}|t}tj|}|j	|6yr	)r5rQrr
r")rrUrrGs    r!test_x_to_plainz%TestMessageConversion.test_x_to_plains=,,	*F)C,Iy)	*r#c`|jD]}|t}|j|!yr	)r5rUr")rrUrs   r!test_x_from_bytesz'TestMessageConversion.test_x_from_bytess0,,	$F./Cs#	$r#cZ|jD]|jtfdy)NcdSr7r6)rUsr!rz9TestMessageConversion.test_x_to_invalid.<locals>.<lambda>sr#)r5rrB)rrUs @r!test_x_to_invalidz'TestMessageConversion.test_x_to_invalids+,,	@Fi)>?	@r#c|jDcic]}||tj}}|jD]y}|jD]h}||ur|t}||}||Dcgc]}|||vr|
}}|D]/}	|j|	|jdj	||1j{ycc}wcc}w)Nzwhile converting {} to {})r5rQrrr)
rrU	referenceclass1class2sourcer+a
type_specificrs
          r!3test_type_specific_attributes_removed_on_conversionzITestMessageConversion.test_type_specific_attributes_removed_on_conversions&*&<&<>"VO4===>	>,,
	LF00	
LV#0,5f,=!Bq&'y/@&@"#!B
!B)LD$$T6??3::66JLL	
L
	L>!BsB8-B=ctjt}|jd|j	d|j}tj|}|j
||j|jd|j|jd|j|j|y)NDFPRSTr)
rr0rQrrrr"rrr)rmsg_maildirdaters    r!test_maildir_to_maildirz-TestMessageConversion.test_maildir_to_maildirs,,_=h'u%##%$$[13(3)51.r#c,d}tjtjfD]}tjt}|jd|D]\}}|j
|||}|j|j||j|jdtjtjdz|jd|j||jdy)N))r
rOrr)PrO)RA)rr`)Tr
)rYRDFArzMAILER-DAEMON %srRODFA)rr1r4r0rQrrrrrPrasctimegmtimer)rpairsrUrZsettingresultrs       r!test_maildir_to_mboxmmdfz.TestMessageConversion.test_maildir_to_mboxmmdfs1**G,?,?@
	GF!00AK  %#(
=%%g.[)  &9  1C!\\$++c*:;2<=	
=
""5)VK0::<gF
	Gr#c	tjt}ddgfdddgfddgfdddgfdgfd	dgfd
ddgff}|D]I\}}|j||j	tj
|j
|Ky)Nr
rrrr_r`rrrbrY)rr0rQrrr2rrrZrgrhris     r!test_maildir_to_mhz(TestMessageConversion.test_maildir_to_mhs,,_=z"S8Y*?$@z"S8Y*?$@3)z"X	9/E$FH %	%OGV!!'*W..{;IIK#
%	%r#c	tjt}ddgfddgfdddgfdddgfdgfd	dd
gfdgdff}|D]I\}}|j||j	tj
|j
|Ky)
Nr
rrr_	forwardedr`rrrbdeletedrY)rprro)rr0rQrrr3rrls     r!test_maildir_to_babylz+TestMessageConversion.test_maildir_to_babyls,,_=z"S8*$5+./#*7M1NrS8Y"78@AC %	%OGV!!'*W11+>IIK#
%	%r#ctjtjfD]}|t}|j	dtjdd}|D]k\}}|j|tj|}|j|j||j|jdm|jd|jtj|jdy)Nrr))r`r)OrO)r
rbr^)rar`)rdFRSTrsr)
rr1r4rQrrrfrr0rrrr)rrUmsg_mboxMMDFrgrhrirs       r!test_mboxmmdf_to_maildirz.TestMessageConversion.test_mboxmmdf_to_maildirs**G,?,?@	$F!/2L!!)T[[-=>(E#(
6&&w/,,\:  &9  5	
6

""3'W33LALLN"
$	$r#ctjtjfD]}|t}|j	d|jdtjtjfD]J}||}|j
|jd|j
|jdLy)Nrdr)	rr1r4rQrrrrrP)rrUruclass2_rs     r!test_mboxmmdf_to_mboxmmdfz/TestMessageConversion.test_mboxmmdf_to_mboxmmdfs**G,?,?@	=F!/2L""7+!!),#//1D1DE
=|,  !17;  )<
=		=r#c	:tjtjfD]x}|t}dgfddgfddgfdddgfdddgfd	ddgff}|D]I\}}|j	||jtj|j|Kzy)
Nr`rsrr
rrrarrd)rr1r4rQrrr2r)rrUrurgrhris      r!test_mboxmmdf_to_mhz)TestMessageConversion.test_mboxmmdf_to_mhs**G,?,?@		)F!/2L2Yxj 1C(3DHi01Hi01	9568E$)
)&&w/  !2!2<!@!N!N!P!')
)
		)r#c	:tjtjfD]x}|t}dgfddgfdddgfddgfdddgfd	ddgff}|D]I\}}|j	||jtj|j|Kzy)
Nr`rsrr
rprrarrd)rr1r4rQrrr3r)rrUrrgrhris      r!test_mboxmmdf_to_babylz,TestMessageConversion.test_mboxmmdf_to_babyls**G,?,?@	QF)C2Yxj 1Hi01C(3DHj12	:679E$)
Q

g&  !5!5c!:!E!E!GP
Q
	Qr#cd}|D]\}}tjt}|j||j	tj
|j
||j	tj
|jdtjt}|jd|jd|jd|j	tj
|j
d|j	tj
|jdy)N)rrO)rRS)rrrrrrr)rr2rQrrr0rrrrgrhrirs     r!test_mh_to_maildirz(TestMessageConversion.test_mh_to_maildir!sF$	NOGV##O4CW%W33C8BBDfMW33C8CCEuM		N
0"##//4>>@$G//4??A5Ir#c4d}|D]z\}}tjt}|j|tjtj
fD](}|j
||j|*|tjt}|jd|jd|jdtjtj
fD](}|j
||jd*y)N)rrs)rROA)rROFrrrOFA)rr2rQrr1r4rr)rrgrhrirrUs      r!test_mh_to_mboxmmdfz)TestMessageConversion.test_mh_to_mboxmmdf0sI$	BOGV##O4CW%"..0C0CD
B  !6!6!8&A
B	B
0"##**G,?,?@	=FVC[224e<	=r#ctjt}|jd|jd|jd|j	tj|jgdy)Nrrr)rrr)rr2rQrrrrs  r!
test_mh_to_mhz#TestMessageConversion.test_mh_to_mh?sc0"##**3/==?9	;r#cddgfddgfdgff}|D]b\}}tjt}|j||j	tj
|j
|dtjt}|jd|jd|jd|j	tj
|j
ddgy)Nrrrr)rr2rQrrr3rrs     r!test_mh_to_babylz&TestMessageConversion.test_mh_to_babylHsXJ')j\)BR"$	MOGV##O4CW%W11#6AACVL	M0"##--c2==?"J/	1r#cjd}|D]\}}tjt}|j||j	tj
|j
||j	tj
|jdtjt}dD]}|j||j	tj
|j
d|j	tj
|jdy)N)r)rpST)rr)rr)roPS)editedr)r4rrrrprrrorr4PRT)rr3rQrrr0rrrrgrhrirlabels      r!test_babyl_to_maildirz+TestMessageConversion.test_babyl_to_maildirWs# %	NOGV&&7CMM'"W33C8BBDfMW33C8CCEuM		N
""?3*	!EMM% 	!	
//4>>@%H//4??A5Ir#cd}|D]z\}}tjtjfD]R}tjt}|j||j
||j|T|tjt}dD]}|j|tjtjfD](}|j
||jd*y)N)r)rpROD)rr!)rr)ror!)rr!)r4r!rODA)rr1r4r3rQrrr)rrgrhrirUrrs       r!test_babyl_to_mboxmmdfz,TestMessageConversion.test_babyl_to_mboxmmdfhs# %	BOGV"..0C0CD
B**?;

g&  !6!6!8&A
B	B
""?3*	!EMM% 	!**G,?,?@	=FVC[224e<	=r#cddgfdgfdgfddgfdgfdgfdgff}|D]b\}}tjt}|j||j	tj
|j
|dtjt}d	D]}|j||j	tj
|j
ddgy)
Nrrprrrrorr4r)rr3rQrrr2rrs      r!test_babyl_to_mhz&TestMessageConversion.test_babyl_to_mhysXJ')R7B-yk*[",="~B! %	MOGV&&7CMM'"W..s3AACVL	M""?3*	!EMM% 	!	
**3/==?"I.	0r#c6tjt}|jdD]}|j	|tj|}|j|j
gd|j|jj|jj|jjD]6}|j|j||j|8y)Nr)	rr3rQr>rrrr<rZ)rrrrrs     r!test_babyl_to_babylz)TestMessageConversion.test_babyl_to_babyls""?3*	!EMM% 	!##C(*-7	8	
*//143C3C3E3J3J3LM??$))+	NCS__.s3T5E5E5G5LM	Nr#N)r-r.r/rHrJrLrOrWr\rjrmrqrvryr{r}rrrrrrrrr6r#r!rErEsr$*$@

L
/G 	%
%$ 	=)
Q
J
=;
1J"="0 
Nr#rEc0eZdZdZdZdZdZdZdZy)TestProxyFileBasec|jd|j|jd|jd|j|jd|jd|j|jdd|jd|j|jdd|jd|j|jdd	y)
NrbarrDsarrEsbar)rrrrproxys  r!
_test_readzTestProxyFileBase._test_reads

1
v.

1
u-

1
A.

1
B/

1
D)40r#cdtjj}|jd|j	|jd|z|j	|jd|z|j	|jd|z|j	|jd|jd|j	|jd|z|jddt
tjzz|j	|jd|z|jddt
tjzz|j	|jdd	|j	|jd
d|zy)NrfoorfredbobrEorIsfrised)r%rr_rrreadlinerrrrs   r!_test_readlinez TestProxyFileBase._test_readlines>**##%

1
)6G+;<)6G+;<)7W+<=)62

1
)4'>:

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

1q3rzz?**+*E2,ego>r#cDtjj}|jd|j	|jd|zd|zd|zdg|jd|j	|jdd|zg|jdt
|z|j	|jdt
|zd|zd|zg|jd|j	|jd	|d|zd|zdgy)
NrrrrrrErFrGr)r%rr_rrr?rrs   r!_test_readlinesz!TestProxyFileBase._test_readliness**##%

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

1
+fw.>-?@

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

1
.&7:J/6/@&1J	Kr#ctjj}|jdt	|}|jt
|d|z|jt
|d|z|jt
|d|z|jt
|d|jtt|y)Nrrrrr)	r%rr_riterrnextr
StopIteration)rrriterators    r!_test_iterationz!TestProxyFileBase._test_iterations**##%

1
;h')9:h')9:h7):;h0-x8r#ctjj}|jd|j	|jd|j	|j
t|||jdd|j	|j
dt|zd|z|jdt|z
d|j	|j
dd|jdd|j	|j
d|zdz|z|jd	|j|j
y)
NrFrErDrrrrrd)	r%rr_rrtellrrr1rs   r!_test_seek_and_tellz%TestProxyFileBase._test_seek_and_tells**##%

1
q)CL17;

1aAG$45tg~F

2G$a(A/

1atg~'>'HI

3&r#c|j|j|j|j|j|j|j|jyr	)r1rrArrs  r!_test_closezTestProxyFileBase._test_closesF&

%

%r#N)	r-r.r/rrrrrrr6r#r!rrs!1? K 	9
'&r#rcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)
TestProxyFilecdtj|_t|jd|_yNrrr:r;rr\r>s r!r?zTestProxyFile.setUp!%%
$**e,
r#cn|jj|j|jyr	r\rAr,r;r>s r!rBzTestProxyFile.tearDown$

  ,r#c|jjd|jj}tj|j}|j|j||j|jj|tj|jd}|j|jd|j|jj|y)Nrr)r\rrr
_ProxyFiler)rposproxy0proxy1s    r!test_initializezTestProxyFile.test_initializes

 jjoo##DJJ/,*C0##DJJ2**C0r#c|jjd|jtj|jy)Nr)r\rrrrr>s r!	test_readzTestProxyFile.test_reads/

 **4::67r#c|jjtdtjdtjdtjdd|jt
j|jyNrrfredbobr)r\rbytesr%rrrrr>s r!
test_readlinezTestProxyFile.test_readlinesU



BJJ24** >?FH	IG..tzz:;r#c|jjtdtjdtjdtjdd|jt
j|jyr)r\rrr%rrrrr>s r!test_readlineszTestProxyFile.test_readlines
U



BJJ24** >?FH	IW//

;<r#c|jjtdtjdtjdtjdd|jt
j|jyr)r\rrr%rrrrr>s r!test_iterationzTestProxyFile.test_iterationrr#c|jjtdtjdtjd|jt
j|jyNrrr)r\rrr%rrrrr>s r!test_seek_and_tellz TestProxyFile.test_seek_and_tellsE

rzz2::FPQ  !3!3DJJ!?@r#c|jjtdtjdtjd|jt
j|jyr)r\rrr%rrrrr>s r!r8zTestProxyFile.test_closesE

rzz2::FPQ++DJJ78r#Nr-r.r/r?rBrrrrrrr8r6r#r!rrs0--	18<
=
=
A9r#rcBeZdZdZdZdZdZdZdZdZ	dZ
d	Zy
)TestPartialFilecdtj|_t|jd|_yrrr>s r!r?zTestPartialFile.setUprr#cn|jj|j|jyr	rr>s r!rBzTestPartialFile.tearDown#rr#c|jjtdtjzdzd|jj}t
j|jdd}|j|jd|j|jj|y)NrrrrErHr)	r\rrr%rrr_PartialFiler)rrrs   r!rzTestPartialFile.test_initialize's

urzz1E97CDjjoo$$TZZA6q)*C0r#c|jjtdd|jt	j
|jddy)Nz	***bar***rrFrI)r\rrrrrr>s r!rzTestPartialFile.test_read/s:

{G45,,TZZA>?r#cP|jjtdtjdtjdtjdd|jt
j|jdddttjzzy)	Nz!!!!!foorrzbob!!!!!rrHrF)	r\rrr%rrrrrr>s r!rzTestPartialFile.test_readline3sr

**bjj"** >?FH	IG00Q13a#bjj/6I1IK	Lr#cP|jjtdtjdtjdtjdd|jt
j|jdddttjzzy)	Nrrrzbob?????rr
rF)	r\rrr%rrrrrr>s r!rzTestPartialFile.test_readlines9r

**bjj"** >?FH	IW11$**a24q3rzz?7J2JL	Mr#cP|jjtdtjdtjdtjdd|jt
j|jdddttjzzy)	N____foorrzbob####rrGrF)	r\rrr%rrrrrr>s r!rzTestPartialFile.test_iteration?rr#c.|jjtdtjdtjdd|jt
j|jdddttjzzy)Nz(((foorz$$$rrF	rE)	r\rrr%rrrrrr>s r!rz"TestPartialFile.test_seek_and_tellEsb

RZZLgVW  !5!5djj!67!c"**o:M6M"O	Pr#c.|jjtdtjdtjdd|jt
j|jdddttjzzy)Nz&foor^rrDrIrF)	r\rrr%rrrrrr>s r!r8zTestPartialFile.test_closeJsb

RZZH'RS--djj!./!c"**o2E.EG	Hr#Nrr6r#r!rrs5--1@LMMP
Hr#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.
c8eZdZdZdZd	dZdZdZdZdZ	y)
MaildirTestCasectj|_tjj|jr tj|jnHtjj|jrtj|jtj|jtjtjj|jdtjtjj|jdtjtjj|jdd|_g|_y)NrrrrD)
rr:_dirr%r&r'r(isfiler*rr_counter	_msgfilesr>s r!r?zMaildirTestCase.setUp]s$$	
77==#TYY'
WW^^DII
&TYY'

dii/0
dii/0
dii/0
r#c
tttj|jtjtjj|jdtjtjj|jdtjtjj|jdtj|jy)Nrrr)
rmapr%r*rrrmdirr&rrr>s r!rBzMaildirTestCase.tearDownksSDNN
+,TYY67TYY67TYY67		"r#cRttjdz}|j}|xjdz
c_djt	|t	|ddf}t
jj|jd|}t
jj|j||}t|dd	5}|jj||r|jt|jtddd	tj|||jj||S#1swY=xYw#tt f$r:t|d5}|jtdddn#1swYnxYwYqwxYw)
Ni@BrD.
myhostnamemydomainrrrJrK)rrrrstrr%r&rrrrNrFROM_
DUMMY_MESSAGElinkAttributeErrorPermissionError)	rdirrvtrrtmpnamenewnamefps	         r!
createMessagezMaildirTestCase.createMessagers>		g%&mm


88SVSX|ZHI'',,tyy%:'',,tyy#x8
'3
1	$RNN!!'*HH]#		$
	(GGGW%	
g&	$	$0	(gs#
(r'
(
(
(	(s7
AEEEF&8F	F&F 	F&%F&ctjtj|_|j|jj
|j|jj
y)zTest an empty maildir mailboxN)rr~rr:rvrrr>s r!test_empty_maildirz"MaildirTestCase.test_empty_maildirsNOOI$4$45		
$))..*+$))..*+r#cl|jdtjtj|_|j
|j
j|j|j
j|j|j
jy)Nr	rrr~rr:rvrrrr>s r!test_nonempty_maildir_curz)MaildirTestCase.test_nonempty_maildir_curq5!OOI$4$45	TYY^^-.$))..*+$))..*+r#cl|jdtjtj|_|j
|j
j|j|j
j|j|j
jy)Nrrr>s r!test_nonempty_maildir_newz)MaildirTestCase.test_nonempty_maildir_newrr#c|jd|jdtjtj|_|j
|j
j|j
|j
j|j|j
j|j|j
jy)Nrrrr>s r!test_nonempty_maildir_bothz*MaildirTestCase.test_nonempty_maildir_boths5!5!OOI$4$45	TYY^^-.TYY^^-.$))..*+$))..*+r#N)F)
r-r.r/r?rBrr
rrrr6r#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+--
r))zReturn-Pathz<gkj@gregorykjohnson.com>)z
X-Original-Togkj+person@localhost)Delivered-Tor)Receivedzfrom 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))rz gkj@sundance.gregorykjohnson.com)rzfrom 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))rzfrom 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))rztby andy.gregorykjohnson.com (Postfix, from userid 1000)
        id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT))r9zWed, 13 Jul 2005 17:23:11 -0400)r~z."Gregory K. Johnson" <gkj@gregorykjohnson.com>)r:zgkj@gregorykjohnson.com)r;zSample message)zMime-Versionz1.0)zContent-Typez,multipart/mixed; boundary="NMuMz9nt05w80d4+")zContent-Dispositioninline)r7zMutt/1.5.9i)z1This is a sample message.

--
Gregory K. Johnson
zRH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs
3FYlAAAA
ceZdZdZy)MiscTestCasec@tj|tddhy)Nrfcntl)not_exported)rcheck__all__rr>s r!test__all__zMiscTestCase.test__all__	sT7+4g*>	@r#N)r-r.r/r r6r#r!rr	s@r#rc,tjyr	)r
reap_childrenr6r#r!tearDownModuler#	sr#__main__);r%rrrrr
email.messagerrSrtestrtest.supportrrr!rHrr5has_gethostnameSkipTestrr8TestCaserKr|r%r0rtrrrrrxrrrrrr&r)r0rCrErrrrrrrQr_rUrrrr#r-mainr6r#r!<module>r,s	

		"&$$
(

9
::%%8z$(z$z!DHh&7&7!DHX%+x00X%v
&<k&<RIOIX+1}h//+1\L}h//L
D>[(++D>NE!2!2ED'//	1h''	1S
(H--S
lG h&7&7G T-!-!`#*K#
EK!2!2E>4;{H$5$54;n#*K#
FNHh&7&7FNRP&P&f.9%x'8'8.9b0H'):):0Hj	B
M,h''M,d-^(..w74@8$$@zHMMOr#