
    0hh=                       S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
Jr  S SKJr  S SKJr  S SKJr  S SKJr  S SKJr  S SKrS SKrS SKrS SKr\R.                  (       d  \R0                  " S5      e " S	 S
5      r " S S\5      r " S S\\R6                  5      r " S S\\R6                  5      r " S S\5      r " S S\5      r " S S\\R6                  \5      r  " S S\\R6                  5      r! " S S\\R6                  5      r" " S S\\R6                  5      r# " S S5      r$ " S S \RJ                  5      r& " S! S"\R6                  5      r' " S# S$\\R6                  5      r( " S% S&\(\R6                  5      r) " S' S(5      r* " S) S*\*\(5      r+ " S+ S,\(\R6                  5      r, " S- S.\(\R6                  5      r- " S/ S0\*\(5      r. " S1 S2\\R6                  5      r/ " S3 S4\5      r0 " S5 S6\0\R6                  5      r1 " S7 S8\0\R6                  5      r2S9r3S:r4 " S; S<\R6                  5      r5S=r6\6Ro                  S>5      r8/ S?Qr9S@r: " SA SB\R6                  5      r;SC r<\=SD:X  a  \R|                  " 5         gg)E    N)support)import_helper)	os_helper)refleak_helper)socket_helper)ExtraAssertionsztest requires gethostname()c                       \ rS rSr\R
                  \R                  \R                  \R                  \R                  \R                  4rS rS rSrg)TestBase   c                    U R                  U[        R                  R                  5        U R                  U[        R                  5        [
         H%  u  p#U R                  X1R                  U5      5        M'     U R                  UR                  5       5        U R                  [        UR                  5       5      [        [        5      5        [        [        5       H  u  pEUR                  U5      nU R                  U[        R                  R                  5        U R                  U[        R                  5        U R                  UR                  5       U5        M     g N)assertIsInstanceemailmessageMessagemailbox_sample_headersassertInget_all
assertTrueis_multipartassertEquallenget_payload_sample_payloads	enumerateassertNotIsInstance)selfmsgkeyvalueipayloadparts          :/opt/python-3.13.8/usr/lib/python3.13/test/test_mailbox.py_check_sampleTestBase._check_sample!   s    c5==#8#89c7??3)JCMM%S!12 *((*+S__./5E1FG#$45JA??1%D!!$(=(=>$$T7??;T--/9	 6    c                     [         R                  R                  U5      (       a  [        R                  " U5        g [         R                  R                  U5      (       a  [        R                  " U5        g g r   )ospathisdirr   rmtreeexistsunlink)r   targets     r%   _delete_recursivelyTestBase._delete_recursively/   sI    77==  V$WW^^F##V$ $r(    N)__name__
__module____qualname____firstlineno__r   r   MaildirMessagemboxMessage	MHMessageBabylMessageMMDFMessageall_mailbox_typesr&   r1   __static_attributes__r3   r(   r%   r
   r
      sF     '*@*@ ,,g.?.? --w/B/BD:%r(   r
   c                      \ rS rSrSrSrSrS rS rS r	\
R                  " S5      rS rS	 rS
 rS r\
R                  " S5      R#                  S5      rS rS rS rS rS rS rS rS rS rS6S jrS rS rS rS r S r!S r"S r#S r$S  r%S! r&S" r'S# r(S$ r)S% r*S6S& jr+S' r,S6S( jr-S) r.S6S* jr/S+ r0S6S, jr1S- r2S. r3S/ r4S0 r5S1 r6S2 r7S3 r8S4 r9S5r:g)7TestMailbox7   NzFrom: foo

%s
c                     [         R                  U l        U R                  U R                  5        U R	                  U R                  5      U l        g r   )r   TESTFN_pathr1   _factory_boxr   s    r%   setUpTestMailbox.setUp>   s5    %%
  ,MM$**-	r(   c                 n    U R                   R                  5         U R                  U R                  5        g r   )rF   closer1   rD   rG   s    r%   tearDownTestMailbox.tearDownC   s"    		  ,r(   c           
         / nUR                  U R                  R                  U R                  S-  5      5        U R	                  [        U R                  5      S5        UR                  U R                  R                  [        R                  " [        5      5      5        U R	                  [        U R                  5      S5        UR                  U R                  R                  [        R                  " [        5      5      5        U R	                  [        U R                  5      S5        UR                  U R                  R                  [        R                  " [        5      5      5        U R	                  [        U R                  5      S5        UR                  U R                  R                  [        5      5        U R	                  [        U R                  5      S5        UR                  U R                  R                  [        5      5        U R	                  [        U R                  5      S5        U R                  [        5         UR                  U R                  R                  [        R                   " [        R                  " [        5      SS	95      5        S S S 5        U R	                  [        U R                  5      S
5        U R	                  U R                  R#                  US   5      U R                  S-  5        S H#  nU R%                  U R                  X      5        M%     g ! , (       d  f       N= f)Nr                     utf-8encoding   )rO   rP   rQ   rR   rS   rT   )appendrF   add	_templater   r   r   r   _sample_messager   message_from_stringioBytesIO_bytes_sample_messageassertWarnsDeprecationWarningTextIOWrapper
get_stringr&   )r   keysr"   s      r%   test_addTestMailbox.test_addG   s   DIIMM$..1"456TYY+DIIMM'///"BCDTYY+DIIMM%";";O"LMNTYY+DIIMM"**-B"CDETYY+DIIMM/23TYY+DIIMM"789TYY+01KK		  ,A!BWUW X 2 	TYY+--d1g68JK#Atyy12 $ 21s   AL77
Mu{               From: foo
            Subject: Falinaptár házhozszállítással. Már rendeltél?

            0
            c                 >   U R                   R                  U R                  R                  S5      5      nU R	                  [        U R                   5      S5        U R	                  U R                   R                  U5      U R                  R                  S5      5        g )Nlatin-1rO   )rF   rZ   _nonascii_msgencoder   r   	get_bytesr   r    s     r%   "test_add_invalid_8bit_bytes_header.TestMailbox.test_add_invalid_8bit_bytes_headere   sp    iimmD..55i@ATYY+,,S1%%i0	2r(   c                     U R                   R                  5       S   nU R                  R                  UR	                  S5      5      nU R                  U R                  R                  U5      S5        g )NrO   ri   zZSubject: =?unknown-8bit?b?RmFsaW5hcHThciBo4Xpob3pzeuFsbO104XNzYWwuIE3hciByZW5kZWx06Ww/?=

)rj   
splitlinesrF   rZ   rk   r   rd   )r   subjr    s      r%   &test_invalid_nonascii_header_as_string2TestMailbox.test_invalid_nonascii_header_as_stringk   sZ    !!,,.q1iimmDKK	23--c2-	.r(   c                 L   U R                  [        S5         U R                  R                  U R                  5        S S S 5        U R                  R                  5         U R                  [        U R                  5      S5        U R                  5         g ! , (       d  f       N^= fNz
ASCII-onlyr   )	assertRaisesRegex
ValueErrorrF   rZ   rj   flushr   r   assertMailboxEmptyrG   s    r%   &test_add_nonascii_string_header_raises2TestMailbox.test_add_nonascii_string_header_raisesr   sh    ##J=IIMM$,,- >		TYY+!	 >=s   &B
B#c                   ^^  " S S[         5      mSmUU4S jn[        R                  " U [        R                  R
                  SU5        U R                  TT5         U R                  R                  [        R                  " S5      5        S S S 5        U R                  [        U R                  5      S5        U R                  R                  5         U R                  5         g ! , (       d  f       N^= f)Nc                       \ rS rSrSrg)JTestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.CustomErrorz   r3   Nr4   r5   r6   r7   r>   r3   r(   r%   CustomErrorr   z   s    cr(   r   za fake errorc                     > T" T5      er   r3   )argskwr   exc_msgs     r%   raiserETestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.raiser}   s    g&&r(   flattenu   From: Alphösor   )	Exceptionr   patchr   	generatorBytesGeneratorrw   rF   rZ   r]   r   r   rK   rz   )r   r   r   r   s     @@r%   )test_add_that_raises_leaves_mailbox_empty5TestMailbox.test_add_that_raises_leaves_mailbox_emptyy   s    ))) 	'dEOO::IvN##K9IIMM%334DEF :TYY+		!	 :9s   0C&&
C4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

        Да, они летят.
        rU   c           	      (   U R                   R                  U R                  5      nU R                  U R                   R	                  U5      U R                  5        U R                   R                  U5       nU R                  UR                  5       U R                  R                  S[        R                  R                  5       5      5        S S S 5        U R                  U R                   U   R                  5       S5        g ! , (       d  f       N<= f)N   
u   Да, они летят.
)rF   rZ   _non_latin_bin_msgr   rl   get_filereadreplacer*   lineseprk   r   r   r    fs      r%   test_add_8bit_bodyTestMailbox.test_add_8bit_body   s    iimmD334,,S100	2YY$QVVX!44<<U "

 1 1 356 % 	33354	6	 %$s   6AD
Dc                    [         R                  " S5       nUR                  [        5        UR	                  S5        U R
                  R                  U5      nS S S 5        U R                  U R
                  R                  W5      R                  S5      [        R                  S5      5        g ! , (       d  f       N\= fNwb+r   r   )
tempfileTemporaryFilewriter`   seekrF   rZ   r   rl   splitr   r   r    s      r%   test_add_binary_file TestMailbox.test_add_binary_file   s    ##E*aGG)*FF1I))--"C + 	,,S177>!''.	0	 +*s   AB//
B=c                    [         R                  " S5       nUR                  U R                  5        UR	                  S5        U R
                  R                  U5      nS S S 5        U R                  U R
                  R                  W5      R                  S5      U R                  R                  S5      5        g ! , (       d  f       Nb= fr   )
r   r   r   r   r   rF   rZ   r   rl   r   r   s      r%   test_add_binary_nonascii_file)TestMailbox.test_add_binary_nonascii_file   s    ##E*aGGD++,FF1I))--"C + 	,,S177>##))%0	2	 +*s   AB;;
C	c                    [         R                  " SSS9 nUR                  [        5        UR	                  S5        U R                  [        5         U R                  R                  U5      nS S S 5        S S S 5        U R                  U R                  R                  W5      R                  S5      [        R                  S5      5        g ! , (       d  f       Nd= f! , (       d  f       Nm= f)Nw+rU   rV   r   r   )r   r   r   r\   r   ra   rb   rF   rZ   r   rl   r   r`   r   s      r%   test_add_text_file_warns$TestMailbox.test_add_text_file_warns   s    ##D7;qGGO$FF1I!!"45iimmA& 6 <
 	,,S177>!''.	0 65 <;s#   <CC.C
C	C
C+c                 J   U R                  [        5         U R                  R                  [        R
                  " U R                  S-  5      5      nS S S 5        U R                  U R                  R                  W5      U R                  S-  5        g ! , (       d  f       NG= f)N0)	ra   rb   rF   rZ   r^   StringIOr[   r   rd   rm   s     r%   test_add_StringIO_warns#TestMailbox.test_add_StringIO_warns   sk    01))--DNNS,@ ABC 2--c2DNNS4HI 21s   =B
B"c                    U R                  [        5         U R                  [        S5         U R                  R                  [        R                  " U R                  5      5        S S S 5        S S S 5        U R                  [        U R                  5      S5        U R                  R                  5         U R                  5         g ! , (       d  f       Nf= f! , (       d  f       No= frv   )ra   rb   rw   rx   rF   rZ   r^   r   rj   r   r   rK   rz   rG   s    r%   !test_add_nonascii_StringIO_raises-TestMailbox.test_add_nonascii_StringIO_raises   s    01''
LA		bkk$*<*<=> B 2 	TYY+		!	 BA 21s"   C:C'C
C	C
C&c                 N    U R                  U R                  R                  5        g r   )_test_remove_or_delitemrF   removerG   s    r%   test_removeTestMailbox.test_remove   s    $$TYY%5%56r(   c                 N    U R                  U R                  R                  5        g r   )r   rF   __delitem__rG   s    r%   test_delitemTestMailbox.test_delitem   s    $$TYY%:%:;r(   c                   ^ ^^^^ T R                   R                  T R                  S-  5      mT R                   R                  T R                  S-  5      mT R                  [	        T R                   5      S5        T" T5        T R                  [	        T R                   5      S5        T R                  [        UU 4S j5        T R                  [        UU4S j5        T R                  T R                   R                  T5      T R                  S-  5        T R                   R                  T R                  S-  5      mT R                  [	        T R                   5      S5        T" T5        T R                  [	        T R                   5      S5        T R                  [        UU 4S j5        T R                  [        UU4S j5        T R                  T R                   R                  T5      T R                  S-  5        T" T5        T R                  [	        T R                   5      S5        T R                  [        UU 4S j5        T R                  [        UU4S	 j5        g )
Nr   rO   rP   c                  "   > TR                   T    $ r   rF   key0r   s   r%   <lambda>5TestMailbox._test_remove_or_delitem.<locals>.<lambda>       DIIdOr(   c                     > T" T 5      $ r   r3   )r   methods   r%   r   r      	    F4Lr(   c                  "   > TR                   T    $ r   r   )key2r   s   r%   r   r      r   r(   c                     > T" T 5      $ r   r3   )r   r   s   r%   r   r      r   r(   c                  "   > TR                   T    $ r   r   )key1r   s   r%   r   r      r   r(   c                     > T" T 5      $ r   r3   )r   r   s   r%   r   r      r   r(   )rF   rZ   r[   r   r   assertRaisesKeyErrorrd   )r   r   r   r   r   s   ``@@@r%   r   #TestMailbox._test_remove_or_delitem   s   yy}}T^^a/0yy}}T^^a/0TYY+tTYY+($;<($89--d3T^^a5GHyy}}T^^a/0TYY+tTYY+($;<($89--d3T^^a5GHtTYY+($;<($89r(   c                 ^  ^ ^ T R                   R                  T R                  S-  5      mT R                   R                  T R                  S-  5      nT R                  [	        T R                   5      S5        T R                   R                  T5        T R                  [	        T R                   5      S5        T R                  [        UU 4S j5        T R                   R                  T5        T R                  [	        T R                   5      S5        T R                  [        UU 4S j5        g )Nr   rO   rP   c                  "   > TR                   T    $ r   r   r   s   r%   r   *TestMailbox.test_discard.<locals>.<lambda>   r   r(   c                  "   > TR                   T    $ r   r   r   s   r%   r   r      r   r(   )rF   rZ   r[   r   r   discardr   r   )r   repetitionsr   r   s   `  @r%   test_discardTestMailbox.test_discard   s    yy}}T^^a/0yy}}T^^a/0TYY+		$TYY+($;<		$TYY+($;<r(   c                    U R                   R                  U R                  S-  5      nU R                   R                  U5      nU R	                  US   S5        U R	                  UR                  5       S5        U R                  U R                   R                  S5      5        U R                  U R                   R                  SS5      S5        U R                   R                  5         U R                  U R                  5      U l         U R                   R                  U R                  S-  5      nU R                   R                  U5      nU R	                  US   S5        U R	                  UR                  5       S5        g )Nr   fromfoo0
FrO   1
)rF   rZ   r[   getr   r   assertIsNoneassertIsrK   rE   rD   )r   r   r   r   s       r%   test_getTestMailbox.test_get   s   yy}}T^^a/0iimmD!Ve,*E2$))--./diimmE5159		MM$**-	yy}}T^^a/0iimmD!Ve,*E2r(   c                   ^ ^ T R                   R                  T R                  S-  5      mT R                   T   nT R                  US   S5        T R                  UR	                  5       S5        T R                  [        U 4S j5        T R                   R                  T5        T R                  [        UU 4S j5        g )Nr   r   r   r   c                  "   > T R                   S   $ Nr   r   rG   s   r%   r   *TestMailbox.test_getitem.<locals>.<lambda>      DIIe,<r(   c                  "   > TR                   T    $ r   r   r   s   r%   r   r     r   r(   )rF   rZ   r[   r   r   r   r   r   )r   r   r   s   ` @r%   test_getitemTestMailbox.test_getitem   s    yy}}T^^a/0iioVe,*E2($<=		$($;<r(   c                    U R                   R                  U R                  S-  5      nU R                   R                  [        5      nU R                   R	                  U5      nU R                  U[        R                  5        U R                  US   S5        U R                  UR                  5       S5        U R                  U R                   R	                  U5      5        g )Nr   r   r   r   )rF   rZ   r[   r\   get_messager   r   r   r   r   r&   )r   r   r   msg0s       r%   test_get_messageTestMailbox.test_get_message  s    yy}}T^^a/0yy}}_-yy$$T*dGOO4fu-))+U34990067r(   c                 ~   U R                   R                  U R                  S-  5      nU R                   R                  [        5      nU R	                  U R                   R                  U5      U R                  S-  R                  S5      5        U R	                  U R                   R                  U5      [        5        g )Nr   asciirF   rZ   r[   r\   r   rl   rk   r`   r   r   r   s      r%   test_get_bytesTestMailbox.test_get_bytes  s    yy}}T^^a/0yy}}_-,,T2^^a''0	2,,T24IJr(   c                    U R                   R                  U R                  S-  5      nU R                   R                  [        5      nU R	                  U R                   R                  U5      U R                  S-  5        U R	                  U R                   R                  U5      R                  S5      [        R                  S5      5        g )Nr   
rF   rZ   r[   r\   r   rd   r   r   s      r%   test_get_stringTestMailbox.test_get_string  s    yy}}T^^a/0yy}}_---d3T^^a5GH--d399$?(..t4	6r(   c                    U R                   R                  U R                  S-  5      nU R                   R                  [        5      nU R                   R	                  U5       nUR                  5       nS S S 5        U R                   R	                  U5       nUR                  5       nS S S 5        U R                  WR                  S5      R                  [        R                  S5      U R                  S-  5        U R                  WR                  S5      R                  [        R                  S5      [        5        g ! , (       d  f       N= f! , (       d  f       N= f)Nr   r   r   )rF   rZ   r[   r\   r   r   r   decoder   r*   r   )r   r   r   filedata0data1s         r%   test_get_fileTestMailbox.test_get_file   s    yy}}T^^a/0yy}}_-YY%IIKE &YY%IIKE &g.66rzz4H!+	-g.66rzz4H(	* &%%%s   #E E 
E
Ec                     U R                   R                  [        5      nU R                   R                  U5      nUR	                  5         UR	                  5         g r   )rF   rZ   r\   r   rK   r   s      r%   !test_get_file_can_be_closed_twice-TestMailbox.test_get_file_can_be_closed_twice-  s:    iimmO,IIs#				r(   c                 N    U R                  U R                  R                  SSS9  g NTFdo_keys	do_values)_check_iterationrF   iterkeysrG   s    r%   test_iterkeysTestMailbox.test_iterkeys4  s!    dii00$%Pr(   c                 N    U R                  U R                  R                  SSS9  g r  )r  rF   re   rG   s    r%   	test_keysTestMailbox.test_keys8  s    diinndeLr(   c                 N    U R                  U R                  R                  SSS9  g NFTr  )r  rF   
itervaluesrG   s    r%   test_itervaluesTestMailbox.test_itervalues<  s&    dii22E(, 	 	.r(   c                 N    U R                  U R                  R                  SSS9  g r  )r  rF   __iter__rG   s    r%   	test_iterTestMailbox.test_iterA  s&    dii00%(, 	 	.r(   c                 N    U R                  U R                  R                  SSS9  g r  )r  rF   valuesrG   s    r%   test_valuesTestMailbox.test_valuesF  s!    dii..Nr(   c                 N    U R                  U R                  R                  SSS9  g NTr  )r  rF   	iteritemsrG   s    r%   test_iteritemsTestMailbox.test_iteritemsJ  s&    dii114(, 	 	.r(   c                 N    U R                  U R                  R                  SSS9  g r   )r  rF   itemsrG   s    r%   
test_itemsTestMailbox.test_itemsO  s    diioottLr(   c                 |   U" 5        H  nU R                  S5        M     / / pv[        U5       HX  nUR                  U R                  R	                  U R
                  U-  5      5        UR                  U R
                  U-  5        MZ     U(       a  U(       d  [        U" 5       5      n	OTU(       a  U(       d  [        U" 5       5      n
O5/ / pU" 5        H'  u  pU	R                  U5        U
R                  U5        M)     U(       aH  U R                  [        U5      [        W	5      5        U R                  [        U5      [        U	5      5        U(       aj  SnW
 HF  nU R                  US   S5        U R                  [        UR                  5       5      U5        US-  nMH     U R                  [        U5      U5        g g )Nz	Not emptyr   r   r   rO   )failrangerY   rF   rZ   r[   listr   r   set
assertLessintr   )r   r   r	  r
  r   r!   re   r  r"   returned_keysreturned_valuesr    counts                r%   r  TestMailbox._check_iterationS  sW   XEIIk" 2f{#AKK		dnnq&89:MM$..1,- $ 9 NMw"68nO-/?$h
$$S)&&u- ' SYM(:;SYM(:;E(  v6E$5$5$7 8+F
 ) S[%0 r(   c                    U R                  SU R                  5        U R                  R                  U R                  S-  5      nU R	                  XR                  5        U R                  SU R                  5        U R                  R                  U R                  S-  5      nU R	                  X R                  5        U R	                  XR                  5        U R                  SU R                  5        U R                  R                  U5        U R                  XR                  5        U R	                  X R                  5        U R                  SU R                  5        U R                  R                  U5        U R                  X R                  5        U R                  XR                  5        U R                  SU R                  5        g )Nr   r   rO   )assertNotInrF   rZ   r[   r   r   r   s      r%   test_containsTestMailbox.test_containsn  s6   		*yy}}T^^a/0dII&		*yy}}T^^a/0dII&dII&		*		yy)dII&		*		yy)yy)		*r(   c                 4   / n[        U5       H  nU R                  [        U R                  5      U5        UR	                  U R                  R                  U R                  U-  5      5        U R                  [        U R                  5      US-   5        M     [        U5       Hq  nU R                  [        U R                  5      X-
  5        U R                  R                  X#   5        U R                  [        U R                  5      X-
  S-
  5        Ms     g )NrO   )r*  r   r   rF   rY   rZ   r[   r   )r   r   re   r"   s       r%   test_lenTestMailbox.test_len  s    {#AS^Q/KK		dnnq&89:S^QU3 $ {#AS^[_=IITW%S^[_q-@A $r(   c                 B  ^  T R                   R                  T R                  S-  5      nT R                  T R                   R	                  U5      T R                  S-  5        T R                   R                  T R                  S-  5      nT R                  T R                   R	                  U5      T R                  S-  5        T R                  S-  T R                   U'   T R                  T R                   R	                  U5      T R                  S-  5        T R                  S-  T R                   U'   T R                  T R                   R	                  U5      T R                  S-  5        [
        T R                   U'   T R                  T R                   U   5        T R                   U   T R                   U'   T R                  T R                   U   5        T R                  S-  T R                   U'   T R                  T R                   R	                  U5      T R                  S-  5        T R                  T R                   U   5        T R                  [        U 4S j5        T R                  [        U 4S j5        T R                  [        T R                   5      S5        g )N
original 0
original 1	changed 0	changed 1c                  <   > T R                   R                  SS5      $ )Nr   bar)rF   __setitem__rG   s   r%   r   +TestMailbox.test_set_item.<locals>.<lambda>  s    $))"7"7u"Er(   c                  "   > T R                   S   $ r   r   rG   s   r%   r   rB    r   r(   rP   )
rF   rZ   r[   r   rd   r\   r&   r   r   r   r   s   `  r%   test_set_itemTestMailbox.test_set_item  s   yy}}T^^l:;--d3,6	8yy}}T^^l:;--d3,6	8..;6		$--d3+5	7..;6		$--d3+5	7)		$499T?+))D/		$499T?+..<7		$--d3^^l2	4499T?+(E	G($<=TYY+r(   c                   ^ ^ / n[        U5       H+  nT R                  R                  T R                  U-  5        M-     [	        U5       H>  u  nmT R                  T R                  R                  T5      T R                  U-  5        M@     T R                  R                  5         T R                  [        T R                  5      S5        [	        U5       H!  u  nmT R                  [        UU 4S j5        M#     g )Nr   c                  :   > TR                   R                  T 5      $ r   )rF   rd   r    r   s   r%   r   (TestMailbox.test_clear.<locals>.<lambda>  s    		0D0DS0Ir(   )r*  rF   rZ   r[   r   r   rd   clearr   r   r   )r   
iterationsre   r"   r    s   `   @r%   
test_clearTestMailbox.test_clear  s    z"AIIMM$..1,- #oFAsTYY11#68JK &		TYY+oFAsh(IJ &r(   c                 D   U R                   R                  U R                  S-  5      nU R                  XR                   5        U R                   R                  U R                  S-  5      nU R                  X R                   5        U R	                  U R                   R                  U5      R                  5       S5        U R                  XR                   5        U R                  X R                   5        U R                   R                  U R                  S-  5      nU R                  X0R                   5        U R	                  U R                   R                  U5      R                  5       S5        U R                  X0R                   5        U R                  X R                   5        U R	                  U R                   R                  U5      R                  5       S5        U R                  X R                   5        U R	                  [        U R                   5      S5        g )Nr   rO   r   rP   z2
r   )	rF   rZ   r[   r   r   popr   r4  r   r   r   r   r   s       r%   test_popTestMailbox.test_pop  sc   yy}}T^^a/0dII&yy}}T^^a/0dII&t,88:EByy)dII&yy}}T^^a/0dII&t,88:EByy)dII&t,88:EByy)TYY+r(   c                 l  ^ ^ / n[        S5       H:  nUR                  T R                  R                  T R                  U-  5      5        M<     / n[        S5       H  nT R                  R                  5       u  mnT R                  TU5        T R                  TU5        UR                  T5        T R                  [        UR                  5       5      UR                  T5      5        M     T R                  [        T R                  5      S5        U H  mT R                  [        UU 4S j5        M      g )N
   r   c                  "   > TR                   T    $ r   r   rH  s   r%   r   *TestMailbox.test_popitem.<locals>.<lambda>  s    		#r(   )r*  rY   rF   rZ   r[   popitemr   r4  r   r.  r   indexr   r   r   )r   rK  re   r"   seenr   r    s   `     @r%   test_popitemTestMailbox.test_popitem  s    rAKK		dnnq&89: rAyy((*HCMM#t$S$'KKS!23TZZ_E  	TYY+Ch(>? r(   c                   ^ ^ T R                   R                  T R                  S-  5      mT R                   R                  T R                  S-  5      nT R                   R                  T R                  S-  5      nT R                   R                  TT R                  S-  U[        05        T R                  [        T R                   5      S5        T R                  T R                   R                  T5      T R                  S-  5        T R                  T R                   R                  U5      T R                  S-  5        T R                  T R                   U   5        T R                   R                  UT R                  S-  4UT R                  S-  4TT R                  S-  4/5        T R                  [        T R                   5      S5        T R                  T R                   R                  T5      T R                  S-  5        T R                  T R                   R                  U5      T R                  S-  5        T R                  T R                   R                  U5      T R                  S-  5        T R                  [        UU 4S j5        T R                  [        T R                   5      S5        T R                  T R                   R                  T5      T R                  S-  5        T R                  T R                   R                  U5      T R                  S-  5        T R                  T R                   R                  U5      T R                  S-  5        g )	Nr;  r<  z
original 2r=  rQ   z	changed 2r>  c                  \   > TR                   R                  SST TR                  S-  05      $ )Nr   r@  r=  )rF   updater[   r   s   r%   r   )TestMailbox.test_update.<locals>.<lambda>  s-    $))"2"2E5*.0L4N #Or(   )rF   rZ   r[   r^  r\   r   r   rd   r&   r   r   )r   r   r   r   s   `  @r%   test_updateTestMailbox.test_update  s   yy}}T^^l:;yy}}T^^l:;yy}}T^^l:;		$ <1 	2TYY+--d3^^k1	3--d3^^l2	4499T?+		4+!=>4>>K784>>L89; 	< 	TYY+--d3^^l2	4--d3^^k1	3--d3^^k1	3(O	P 	TYY+--d3^^k1	3--d3^^k1	3--d3^^k1	3r(   c                 P    U R                  U R                  R                  S5        g NT)_test_flush_or_closerF   ry   rG   s    r%   
test_flushTestMailbox.test_flush  s    !!$))//48r(   c                    U R                   R                  U R                  S-  5        U R                   R                  U R                  S-  5        U R                   R                  5         U R                   R	                  5         U R                   R                  5         U R                   R	                  5         U R                   R                  5         g Nr   rO   )rF   rZ   r[   ry   rW  rG   s    r%   test_popitem_and_flush_twice(TestMailbox.test_popitem_and_flush_twice  s~    		dnnq()		dnnq()										r(   c                    U R                  [        R                  R                  U R	                  5       5      5        U R
                  R                  5         U R                  [        R                  R                  U R	                  5       5      5        U R
                  R                  5         U R                  [        R                  R                  U R	                  5       5      5        g r   )	assertFalser*   r+   r.   _get_lock_pathrF   lockr   unlockrG   s    r%   test_lock_unlockTestMailbox.test_lock_unlock  s    (;(;(=>?		t':':'<=>		(;(;(=>?r(   c                 P    U R                  U R                  R                  S5        g NF)rd  rF   rK   rG   s    r%   
test_closeTestMailbox.test_close  s    !!$))//59r(   c                    [        S5       Vs/ s H  o0R                  U-  PM     nnU R                  R                  US   5        U R                  R                  US   5        U R                  R                  US   5        U R                  nU" 5         U(       a  U R                  R	                  5         U R                  U R                  5      U l        U R                  R                  5       nU R                  [        U5      S5        U H.  nU R                  U R                  R                  U5      U5        M0     UR	                  5         g s  snf )NrQ   r   rO   rP   )r*  r[   rF   rZ   rK   rE   rD   re   r   r   r   rd   )r   r   should_call_closer"   contentsoldboxre   r    s           r%   rd   TestMailbox._test_flush_or_close  s    05a91NNQ&9		hqk"		hqk"		hqk"IIOOMM$**-	yy~~TA&CMM$))..s3X>  :s   Ec           	        ^ ^ [         R                  " [        5      [        [        R                  " [
        5      4 H  n[        R                  " 5       mT R                  R                  UT5        T R                  TR                  5       [
        R                  S[        R                  R                  5       5      5        M     [        R                  " 5       mT R                  [        UU 4S j5        g )Nr   c                  <   > TR                   R                  S T 5      $ r   )rF   _dump_message)outputr   s   r%   r   /TestMailbox.test_dump_message.<locals>.<lambda>-  s    $))"9"9$"Gr(   )r   r]   r\   r^   r_   r`   rF   r}  r   getvaluer   r*   r   rk   r   	TypeError)r   inputr~  s   ` @r%   test_dump_messageTestMailbox.test_dump_message#  s    //@%rzz2G'HJEZZ\FII##E62V__.%--eRZZ5F5F5HIK	J )G	Ir(   c                      U R                   S-   $ )Nz.lockrD   rG   s    r%   rm  TestMailbox._get_lock_path/  s    zzG##r(   )rF   rD   rT  );r4   r5   r6   r7   maxDiffrE   r[   rH   rL   rf   textwrapdedentrj   rn   rs   r{   r   rk   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r"  r&  r  r5  r8  rD  rL  rQ  rZ  r`  re  ri  rp  rt  rd  r  rm  r>   r3   r(   r%   r@   r@   7   s;   GH#I.
-3. OO % M2."" " 
* 
 VG_ 	6020J
"7<:,
=3=8K6*QM.
.
O.
M16+&
B,6
K,$@  3D9	@: 
I$r(   r@   c                       \ rS rSrS rSrg)TestMailboxSuperclassi4  c                   ^ [         R                  " S5      mU R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S	 j5        U R                  [        U4S
 j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        U R                  [        U4S j5        g )Nr+   c                  &   > T R                  S5      $ N )rZ   boxs   r%   r   ;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>9      swwr{r(   c                  &   > T R                  S5      $ r  )r   r  s   r%   r   r  :  s    szz"~r(   c                  &   > T R                  S5      $ r  )r   r  s   r%   r   r  ;      sr7Jr(   c                  &   > T R                  S5      $ r  )r   r  s   r%   r   r  <  s    s{{2r(   c                  (   > T R                  SS5      $ r  )rA  r  s   r%   r   r  =  s    sr27Nr(   c                  $   > T R                  5       $ r   )r  r  s   r%   r   r  >  s    s||~r(   c                  $   > T R                  5       $ r   )re   r  s   r%   r   r  ?      sxxzr(   c                  @   > T R                  5       R                  5       $ r   )r  __next__r  s   r%   r   r  @  s    s~~7G7P7P7Rr(   c                  @   > T R                  5       R                  5       $ r   )r  r  r  s   r%   r   r  A  s    s||~7N7N7Pr(   c                  $   > T R                  5       $ r   )r  r  s   r%   r   r  B      szz|r(   c                  @   > T R                  5       R                  5       $ r   )r!  r  r  s   r%   r   r  C  s    s}}7O7O7Qr(   c                  $   > T R                  5       $ r   )r%  r  s   r%   r   r  D      syy{r(   c                  &   > T R                  S5      $ r  )r   r  s   r%   r   r  E  r  r(   c                  &   > T R                  S5      $ r  )__getitem__r  s   r%   r   r  F  r  r(   c                  &   > T R                  S5      $ r  )r   r  s   r%   r   r  G  r  r(   c                  &   > T R                  S5      $ r  )rd   r  s   r%   r   r  H  s    s~~b7Ir(   c                  &   > T R                  S5      $ r  )rl   r  s   r%   r   r  I  s    s}}R7Hr(   c                  &   > T R                  S5      $ r  )r   r  s   r%   r   r  J  s    s||B7Gr(   c                     > ST ;   $ r  r3   r  s   r%   r   r  K  s	    rSyr(   c                  &   > T R                  S5      $ r  )__contains__r  s   r%   r   r  L  s    s7G7G7Kr(   c                  $   > T R                  5       $ r   )__len__r  s   r%   r   r  M      s{{}r(   c                  $   > T R                  5       $ r   )rJ  r  s   r%   r   r  N  r  r(   c                  &   > T R                  S5      $ r  )rO  r  s   r%   r   r  O  r  r(   c                  $   > T R                  5       $ r   )rW  r  s   r%   r   r  P  r  r(   c                  &   > T R                  S5      $ )N))r  r  )r^  r  s   r%   r   r  Q  s    szz+7Nr(   c                  $   > T R                  5       $ r   )ry   r  s   r%   r   r  R  r  r(   c                  $   > T R                  5       $ r   )rn  r  s   r%   r   r  S  r  r(   c                  $   > T R                  5       $ r   )ro  r  s   r%   r   r  T  r  r(   c                  $   > T R                  5       $ r   )rK   r  s   r%   r   r  U  r  r(   )r   Mailboxr   NotImplementedError)r   r  s    @r%   test_notimplemented)TestMailboxSuperclass.test_notimplemented6  s   oof%-/BC-/EF-/JK-/FG-/NO-/EF-/AB-/RS-/PQ-/CD-/QR-/BC-/BC-/JK-/JK-/IJ-/HI-/GH-/@A-/KL-/DE-/BC-/BC-/DE-/NO-/BC-/AB-/CD-/BCr(   r3   N)r4   r5   r6   r7   r  r>   r3   r(   r%   r  r  4  s    Dr(   r  c                   N   \ rS rSrS%S jrS rS rS rS rS r	S	 r
S
 rS rS rS%S jrS rS rS rS rS&S jrS rS rS rS rS rS rS rS rS rS rS rS r\ RB                  " \"" \#S5      S 5      S! 5       r$\ RB                  " \"" \#S5      S 5      S" 5       r%S# r&S$r'g)'TestMaildiriX  Nc                 .    [         R                  " X5      $ r   )r   Maildirr   r+   factorys      r%   r   TestMaildir.<lambda>Z  s    0Nr(   c                     [         R                  U 5        [        R                  S:X  d  [        R
                  S:X  a  SU R                  l        g g )Nntcygwin!)r@   rH   r*   namesysplatformrF   colonrG   s    r%   rH   TestMaildir.setUp\  s6    $GGtO!9!DIIO ":r(   c                     U R                  [        R                  " [        R                  R	                  U R
                  S5      5      / 5        g Ntmp)r   r*   listdirr+   joinrD   rG   s    r%   rz   TestMaildir.assertMailboxEmptya  s.    BGGLLU$CDbIr(   c                    [         R                  " U R                  S-  5      nUR                  S5        UR	                  S5        U R
                  R                  U5      nU R                  [        R                  R                  [        R                  R                  U R                  SU< U R
                  R                  < S35      5      5        g )Nr   curr   )r   r8   r[   
set_subdirset_inforF   rZ   r   r*   r+   r.   r  rD   r  r   r   r    s      r%   test_add_MMTestMaildir.test_add_MMd  s    $$T^^a%78uUiimmC rww||DJJ25tyyHH (I J 	Kr(   c                    [         R                  " U R                  S-  5      nUR                  S5        UR	                  S5        U R
                  R                  U5      nU R
                  R                  U5      nU R                  U[         R                  5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nr   r  RFFR)r   r8   r[   r  	set_flagsrF   rZ   r   r   r   
get_subdir	get_flags)r   r   r    msg_returneds       r%   test_get_MMTestMaildir.test_get_MMm  s    $$T^^a%78udiimmC yy,,S1lG,B,BC002E://148r(   c                 b   [         R                  " U R                  S-  5      nUR                  S5        U R                  R                  U5      nU R                  R                  U5      nU R                  UR                  5       S5        U R                  UR                  5       S5        [         R                  " U R                  S-  5      nX@R                  U'   U R                  R                  U5      nU R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        [         R                  " U R                  S-  5      nUR                  S	5        XPR                  U'   U R                  S
-  U R                  U'   U R                  R                  U5      nU R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       S5        g )Nr   TPnewPTrO   r  r   rP   z2,SrQ   Sz3
)r   r8   r[   r  rF   rZ   r   r   r  r  r   r  )r   r   r    r  msg1msg2s         r%   test_set_MMTestMaildir.test_set_MMx  s   %%dnnq&89tiimmD!yy,,S1002E://148%%dnnq&89		#yy,,S1002E://126113U;%%dnnq&89e		#!+		#yy,,S1002E://137113U;r(   c                    [         R                  " U R                  S-  5      nUR                  S5        UR	                  S5        U R
                  R                  U5      n " S S[         R                  5      n[         R                  " U R                  US9nU R
                  R                  Ul	        UR                  U5      nU R                  XS5        g )Nr   r  r  c                       \ rS rSrSrg)8TestMaildir.test_consistent_factory.<locals>.FakeMessagei  r3   Nr   r3   r(   r%   FakeMessager    s    r(   r  r  )r   r8   r[   r  r  rF   rZ   r  rD   r  r   r   )r   r   r    r  r  r  s         r%   test_consistent_factory#TestMaildir.test_consistent_factory  s    $$T^^a%78udiimmC 	'00 	oodjj+>IIOO	s#d0r(   c                 "   U R                  5         [        R                  " U R                  5      U l        U R                  5         U R                  U R                  5        U R                  U R                  S S9U l        U R                  5         g )Nr  )rL   r   r  rD   rF   _check_basicsr1   rE   rG   s    r%   test_initialize_newTestMaildir.test_initialize_new  sa    OODJJ/	  ,MM$**dM;	r(   c           	      V   U R                  5         S H^  n[        R                  " [        R                  R	                  [        R                  R                  U R                  U5      5      5        M`     [        R                  " U R                  5      U l	        U R                  5         g )Nr  r  r  r  )rL   r*   mkdirr+   normpathr  rD   r   r  rF   r  )r   subdirs     r%   test_initialize_existing$TestMaildir.test_initialize_existing  sc    -FHHRWW%%bggll4::v&FGH .OODJJ/	r(   c           	      $   U R                  5         S H^  n[        R                  " [        R                  R	                  [        R                  R                  U R                  U5      5      5        M`     S HW  n[        R                  R                  U R                  USU-   5      n[        US5       nUR                  S5        S S S 5        MY     [        R                  " U R                  5      U l        U R                  SU R                  5        U R                  SU R                  5        U R                  SU R                  5        U R                  [        U R                  R                  5       5      / 5        g ! , (       d  f       GM  = f)	Nr  )r  r  r  z.foowb   @z.footmpz.foonewz.foocur)rL   r*   r  r+   r  r  rD   openr   r   r  rF   r4  r   r+  r  )r   r  fnamer   s       r%   test_filename_leading_dot%TestMaildir.test_filename_leading_dot  s   -FHHRWW%%bggll4::v&FGH .)FGGLLVVf_EEeT"a #" * OODJJ/	DII.DII.DII.dii0023R8 #"s   4E??
F	c                    U R                  U R                  R                  [        R                  R                  U R                  5      5        U R                  U R                  R                  U5        S H`  n[        R                  R                  U R                  U5      nU R                  [        R                  R                  U5      SU< 35        Mb     g )Nr  zNot a directory: )
r   rF   rD   r*   r+   abspathrE   r  r   r,   )r   r  r  r+   s       r%   r  TestMaildir._check_basics  s    "''//$***EF++W5-F77<<

F3DOOBGGMM$/3DTH1MN .r(   c                    U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        g NonetwothreerQ   )r  r  r  rF   
add_folderr   r   list_foldersr,  rG   s    r%   test_list_foldersTestMaildir.test_list_folders      		U#		U#		W%TYY3356:TYY335601	3r(   c                    U R                   R                  S5        U R                   R                  S5      nUR                  U R                  S-  5        U R                  [        R                  R                  [        R                  R                  U R                  S5      5      5        U R                   R                  S5      nU R                  UR                  UR                  5       S   5      U R                  S-  5        g )Nfoo.barr@  z.foo.barr   )rF   r  
get_folderrZ   r[   r   r*   r+   r,   r  rD   r   rd   re   )r   folder0folder1s      r%   test_get_folderTestMaildir.test_get_folder  s    		Y'))&&y1DNNU*+bggll4::z&JKL))&&y1++GLLN1,=>%/	1r(   c                 z   U R                   R                  S5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S	5        U R                  U R                   R	                  5       / 5        g 
Nr  r  rP   )r  r  rO   )r  r  )r  r  r   rF   r  r   r   r  r,  remove_folderrG   s    r%   test_add_and_remove_folders'TestMaildir.test_add_and_remove_folders     		U#		U#TYY3356:TYY3356N8KL		&TYY3356:TYY3356HF		W%TYY3356:TYY3356<L8MN		(TYY3356:TYY3356HF		&TYY3356://126r(   c                    [         R                  R                  U R                  SS5      n[         R                  R                  U R                  SS5      n[	        USSS9 nUR                  S5        S S S 5        [	        USSS9 nUR                  S5        S S S 5        U R                  R                  5         U R                  [         R                  R                  U5      5        U R                  [         R                  R                  U5      5        [         R                  " U5      n[         R                  " U[        R                  " 5       S-
  S	-
  UR                  45        U R                  R                  5         U R                  [         R                  R                  U5      5        U R                  [         R                  R                  U5      5        g ! , (       d  f       GNs= f! , (       d  f       GN`= f)
Nr  r   r@  wrU   rV   @i@ rP   )r*   r+   r  rD   r  r   rF   cleanr   r.   statutimetimest_mtimerl  )r   foo_pathbar_pathr   foo_stats        r%   
test_cleanTestMaildir.test_clean  s@   77<<

E5977<<

E59(C'2aGGCL 3(C'2aGGCL 3		x01x01778$
DIIK&014$--/ 	0		12x01 3222s   "G G2 
G/2
Hc           
      x   [         R                  " 5       nSU;   a  UR                  SS5      nSU;   a  UR                  SS5      n[        R                  " 5       n[
        R                  " S5      nS n[        U5       GHV  nU R                  R                  5       n[        R                  R                  UR                  5      u  pU R                  U[        R                  R                  [        R                  R                  U R                   S5      5      SU-  5        UR#                  U	5      n
U R%                  U
SU	-  5        U
R'                  5       nUGb  U R)                  [+        US	   5      [+        US	   5      S
US	   < SUS	   < S35        [+        US	   5      [+        US	   5      :X  a:  U R)                  [+        US   5      [+        US   5      SUS   < SUS   < S35        U R                  [+        US   5      USUS   < SU< S35        U R                  [+        US   5      [+        US   5      S-   SUS   < SUS   < S35        U R                  US   USUS   < SU< S35        UnUR-                  [.        5        UR1                  S	5        U R                  UR3                  5       [.        5        UR5                  5         GMY     [7        [        R8                  " [        R                  R                  U R                   S5      5      5      nU R                  XSU< SU< S35        g )N/z\057:z\072zF(?P<time>\d+)\.M(?P<M>\d{1,6})P(?P<P>\d+)Q(?P<Q>\d+)\.(?P<host>[^:/]*)r  zFile in wrong location: '%s'zInvalid file name: '%s'r   zNon-monotonic seconds: 'z
' before ''rO   zNon-monotonic milliseconds: 'rP   zProcess ID mismatch: 'z' should be 'rQ   zNon-sequential counter: 'rR   zHost name mismatch: 'zWrong file count: ')socketgethostnamer   r*   getpidrecompiler*  rF   _create_tmpr+   r   r  r   r  r  rD   matchassertIsNotNonegroupsassertGreaterEqualr.  r   r`   r   r   rK   r   r  )r   r   hostnamepidpatternprevious_groupsxtmp_fileheadtailr:  r<  
file_counts                r%   test_create_tmpTestMaildir.test_create_tmp  s   %%'(?''W5H(?''W5Hiik** > ?{#Ayy,,.Hx}}5JDT277??277<<

@E4G $H;dBD MM$'E  (AD(HI\\^F*''F1IOA<N8O-a0&)=> vay>S);%<<++Cq	NCPQ@R<S!0!3VAY!@A   VAY$Qi./   VAY_Q5G1H11L-a0&)=>   H$Qi34 %ONN01MM!X]]_.CDNN= $> BGGLLU$CDE
[ +/	0r(   c                    U R                  U R                  R                  0 5        U R                  R                  U R                  S-  5      nU R                  R                  U R                  S-  5      nU R                  U R                  R                  0 5        U R                  R                  5         U R                  U R                  R                  U[        R                  R                  SU5      U[        R                  R                  SU5      05        U R                  R                  U R                  S-  5      nU R                  U R                  R                  U[        R                  R                  SU5      U[        R                  R                  SU5      05        U R                  R                  5         U R                  U R                  R                  U[        R                  R                  SU5      U[        R                  R                  SU5      U[        R                  R                  SU5      05        g )Nr   rO   r  rP   )	r   rF   _tocrZ   r[   _refreshr*   r+   r  rP  s       r%   test_refreshTestMaildir.test_refresh,  s   ,yy}}T^^a/0yy}}T^^a/0,		$UD0I*.UD0I*K 	Lyy}}T^^a/0$UD0I*.UD0I*K 	L		$UD0I*.UD0I*.UD0I*K 	Lr(   c                    U R                   R                  U R                  S-  5      nU R                   R                  U R                  S-  5      nU R                  U R                  5      U l         U R                  U R                   R                  0 5        SU R                   l        U R                   R                  5         U R                  [        U R                   R                  R                  5       5      [        X/5      5        g )Nr   rO   )rF   rZ   r[   rE   rD   r   rJ  _skewfactorrK  sortedre   r   s      r%    test_refresh_after_safety_period,TestMaildir.test_refresh_after_safety_period=  s     yy}}T^^a/0yy}}T^^a/0MM$**-	, !#						 3 3 56|8LMr(   c                   ^ ^ T R                  [        U 4S j5        T R                  R                  T R                  S-  5      mT R                  T R                  R                  T5      [        R                  R                  ST5      5        [        R                  " [        R                  R                  T R                  ST5      5        T R                  T R                  R                  T[        R                  R                  ST5      05        T R                  R                  5         T R                  [        UU 4S j5        T R                  T R                  R                  0 5        g )Nc                  :   > T R                   R                  S5      $ r   rF   _lookuprG   s   r%   r   )TestMaildir.test_lookup.<locals>.<lambda>R  s    DII,=,=e,Dr(   r   r  c                  :   > TR                   R                  T 5      $ r   rV  r   s   r%   r   rX  Z  s    DII,=,=d,Cr(   )r   r   rF   rZ   r[   r   rW  r*   r+   r  r   rD   rJ  ry   )r   r   s   `@r%   test_lookupTestMaildir.test_lookupP  s    ($DEyy}}T^^a/0**40"'',,ud2KL
		"'',,tzz5$78$UD0I)JK 			($CD,r(   c                 l    U R                   R                  5         U R                   R                  5         g r   )rF   rn  ro  rG   s    r%   rp  TestMaildir.test_lock_unlock]  s     				r(   c                 j   [         R                  " U R                  S-  5      nU R                  R	                  U5      nU R                  U R                  R                  U5      S5        UR                  S5        XR                  U'   U R                  U R                  R                  U5      S5        g )Nr   r  OurTestInfo)r   r8   r[   rF   rZ   r   get_infor  r  s      r%   test_get_infoTestMaildir.test_get_infob  s    $$T^^a%78iimmC ++C0"5]#		#++C0-@r(   c                    ^ ^ [         R                  " T R                  S-  5      nT R                  R	                  U5      mUU 4S jnU" SS5        U" SS5        U" SS5        U" SS5        U" SS5        g )Nr   c                 P  > [         R                  R                  TR                  R                  TR                  R                  T5      5      nTR                  R                  T5      R                  TR                  R                  5      S   nU(       a  UTR                  R                  U-   -  n[         R                  R                  TR                  R                  U5      nTR                  TR                  R                  T5      U 5        U (       d?  TR                  TR                  R                  T5      TR                  R                  5        TR                  [         R                  R                  U5      5        X:w  a.  TR                  [         R                  R                  U5      5        TR                  R                  TU5        U(       d?  TR                  TR                  R                  T5      TR                  R                  5        X:w  a.  TR                  [         R                  R                  U5      5        TR                  [         R                  R                  U5      5        TR                  TR                  R                  T5      U5        g Nr   )r*   r+   r  rF   rD   rW  r   r  r   r`  r4  r   r.   rl  r  )oldinfonewinfooldfilename
newsubpathnewfilenamer    r   s        r%   
check_info-TestMaildir.test_set_info.<locals>.check_infop  s   '',,tyy		8I8I#8NOK**3/55diiooFqIJdiioo77
'',,tyy
CKTYY//4g>  !2!23!7IOOBGGNN;78!  !<=IIsG,  !2!23!7I!  !<=OOBGGNN;78TYY//4g>r(   r  info1info2)r   r8   r[   rF   rZ   )r   r   rk  r    s   `  @r%   test_set_infoTestMaildir.test_set_infok  si     $$T^^a%78iimmC 	?. 	2w7G$7G$7B2rr(   c                 j   [         R                  " U R                  S-  5      nU R                  R	                  U5      nU R                  U R                  R                  U5      S5        UR                  S5        XR                  U'   U R                  U R                  R                  U5      S5        g )Nr   r  Tr   r8   r[   rF   rZ   r   r  r  r  s      r%   test_get_flagsTestMaildir.test_get_flags  s    $$T^^a%78iimmC ,,S126c		#,,S137r(   c                 d   [         R                  " U R                  S-  5      nU R                  R	                  U5      nU R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        g )Nr   r  r  rs  r  s      r%   test_set_flagsTestMaildir.test_set_flags  s    $$T^^a%78iimmC ,,S126		C%,,S137r(   c                    [         R                  " U R                  S-  5      nU R                  R	                  U5      nU R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        g )Nr   r  BACABC)r   r8   r[   rF   rZ   r   r  add_flagr  s      r%   test_add_flagTestMaildir.test_add_flag  s    $$T^^a%78iimmC ,,S126		3$,,S137		3$,,S137		3%,,S159r(   c                    [         R                  " U R                  S-  5      nU R                  R	                  U5      nU R                  R                  US5        U R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        U R                  R                  US5        U R                  U R                  R                  U5      S5        g )Nr   abcbacr  )	r   r8   r[   rF   rZ   r  r   r  remove_flagr  s      r%   test_remove_flagTestMaildir.test_remove_flag  s    $$T^^a%78iimmC 		C',,S159		c3',,S148		c3',,S148		c4(,,S126r(   c                     S nU R                  U R                  US9nUR                  S5      nU R                  UR                   U5        UR	                  S5      nU R                  UR                   U5        g )Nc                     g r   r3   ss    r%   dummy_factory.TestMaildir.test_folder.<locals>.dummy_factory      r(   r  r  )rE   rD   r  r   r  )r   r  r  folderfolder1_aliass        r%   test_folderTestMaildir.test_folder  s_    	mmDJJm>	*foo}5y1m,,m<r(   c                 2   [        S5       H6  nU R                  R                  [        R                  " [
        5      5        M8     [        R                  " [        R                  R                  U R                  SS5      5        U R                   H  nM     g )NrT  r  z	stray-dir)r*  rF   rZ   r   r   r\   r*   r  r+   r  rD   )r   r"   r   s      r%   test_directory_in_folder$TestMaildir.test_directory_in_folder  sa     rAIIMM'///:;  	djj%=> 99C r(   umasktest needs os.umask()c                    [         R                  " U R                  S-  5      n[        R                  " S5      n U R
                  R                  U5      n[        R                  " U5        [        R                  R                  U R                  U R
                  R                  U5      5      n[        R                  " U5      R                  nU R                  US-  5        g ! [        R                  " U5        f = f)Nr   I   )r   r8   r[   r*   r  rF   rZ   r+   r  rD   rW  r'  st_moderl  )r   r   
orig_umaskr    r+   modes         r%   test_file_permissions!TestMaildir.test_file_permissions  s     $$T^^a%78XXa[
	!))--$CHHZ ww||DJJ		(9(9#(>?wwt}$$& HHZ s   C$ $C<c                    [         R                  " S5      n U R                  R                  S5      n[         R                  " U5        [         R                  R                  UR                  S5      n[         R                  " U5      nUR                  nU R                  US-  5        g ! [         R                  " U5        f = f)Nr   	subfoldermaildirfolderr  )
r*   r  rF   r  r+   r  rD   r'  r  rl  )r   r  r  r+   stpermss         r%   test_folder_file_perms"TestMaildir.test_folder_file_perms  s     XXa[
	!		,,[9IHHZ ww||IOO_=WWT]

%%-) HHZ s   B* *Cc                   ^ ^ T R                   R                  5         S Hf  n[        R                  " [        R                  R                  T R                   R                  U5      [        R                  " 5       S-
  4S-  5        Mh     ST R                   l        T R                   R                  mUU 4S jnT R                   R                  5         T R                  U" 5       5        [        R                  R                  T R                  SS5      n[        R                  " U5        [        R                  " U5        T R                   R                  5         T R                  U" 5       5        g )N)r  r  rS   rP   rO  c                  4   > TR                   R                  T L$ r   )rF   rJ  )orig_tocr   s   r%   	refreshed*TestMaildir.test_reread.<locals>.refreshed  s    99>>11r(   r  z
stray-file)rF   rK  r*   r(  r+   r  rD   r)  rP  rJ  rl  r   create_empty_filer/   r   )r   r  r  filenamer  s   `   @r%   test_rereadTestMaildir.test_reread  s    		 %FHHRWW\\$))//6:iik!m%a') % !#		
 99>>	2 			%
 77<<

E<@##H-
		(			$r(   r   r   r  )(r4   r5   r6   r7   rE   rH   rz   r  r  r  r  r  r  r  r  r  r  r   r.  rG  rL  rR  rZ  rp  ra  ro  rt  rw  r~  r  r  r  unittest
skipUnlesshasattrr*   r  r  r  r>   r3   r(   r%   r  r  X  s    NH"
JK	9<.19O317&2$-0^L"N&-
A$L88	:
7
= W-/FG
' H
' W-/FG* H*&%r(   r  c                   `    \ rS rSrS rS r\R                  " \" \	S5      S5      S 5       r
Srg)	_TestSingleFilei  c                    [         R                  " U R                  5      R                  nU R                  R                  U R                  S-  5        U R                  R                  5         [         R                  " U R                  5      R                  nU R                  X5        U R                  R                  5         U R                  U R                  5      U l        U R                  [        U R                  5      S5        g rh  )r*   r'  rD   st_inorF   rZ   r[   ry   r   rK   rE   r   )r   inode_beforeinode_afters      r%   test_add_doesnt_rewrite'_TestSingleFile.test_add_doesnt_rewrite  s     wwtzz*11		dnnq()		ggdjj)003 			MM$**-	TYY+r(   c                    [         R                  " U R                  5      R                  S-  n[         R                  " U R                  U5        U R
                  R                  U R                  S-  5        U R
                  R                  U R                  S-  5      nU R
                  R                  U5        U R
                  R                  5         U R                  [         R                  " U R                  5      R                  U5        g )N  r   rO   )r*   r'  rD   r  chmodrF   rZ   r[   r   ry   r   )r   r  r"   s      r%   test_permissions_after_flush,_TestSingleFile.test_permissions_after_flush-  s     wwtzz"**U2
T"		dnnq()IIMM$..1,-				,44d;r(   chownzrequires os.chownc                    [         R                  " S5      n[         R                  " S5      n[        R                  " U R                  5      nUR                  5        H+  nUR                  UR                  :w  d  M  UR                  n  O   U R                  S5        UR                  5        H+  nUR                  UR                  :w  d  M  UR                  n  O   U R                  S5         [        R                  " U R                  WW5        UR                  S-  n[        R                  " U R                  U5        U R                   R#                  U R$                  S-  5        U R                   R#                  U R$                  S-  5      nU R                   R'                  U5        U R                   R)                  5         [        R                  " U R                  5      nU R+                  UR                  W5        U R+                  UR                  W5        U R+                  UR                  U5        g ! [         a    U R                  S5         GNHf = f)	Npwdgrpztest needs more than one userztest needs more than one groupztest needs root privileger  r   rO   )r   import_moduler*   r'  rD   getpwallpw_uidst_uidskipTestgetgrallgr_gidst_gidr  OSErrorr  r  rF   rZ   r[   r   ry   r   )	r   r  r  r  e	other_uid	other_gidr  r"   s	            r%   test_ownership_after_flush*_TestSingleFile.test_ownership_after_flush>  s    ))%0))%0WWTZZ Axx299$HH	  
 MM9:Axx299$HH	  
 MM:;	7HHTZZI6 zzE!
T"		dnnq()IIMM$..1,-				WWTZZ I.I.T*  	7MM56	7s   ."H: :IIr   N)r4   r5   r6   r7   r  r  r  r  r  r*   r  r>   r3   r(   r%   r  r    s6    ,(<" W-/BC&+ D&+r(   r  c                      ^  \ rS rSrU 4S jrS rS rS rS rS r	S r
S	 rS
 r\R                  " 5       \R                   " \" \S5      S5      S 5       5       rS rSrU =r$ )_TestMboxMMDFih  c                 4  > [         TU ]  5         U R                  R                  5         U R	                  U R
                  5        [        R                  " [        R                  " U R
                  5      S-   5       H  n[        R                  " U5        M     g Nz.*
superrL   rF   rK   r1   rD   globescaper   r/   r   lock_remnant	__class__s     r%   rL   _TestMboxMMDF.tearDownj  b    		  , IIdkk$**&=&DEL\* Fr(   c                     [        U R                  S5       nU R                  UR                  5       / 5        S S S 5        g ! , (       d  f       g = fNrbr  rD   r   	readlinesr   r   s     r%   rz    _TestMboxMMDF.assertMailboxEmptyq  4    $**d#qQ[[]B/ $##   !A
Ac                    SnU R                   R                  XR                  S-  -   5      nU R                   R                  U[        -   5      nU R	                  U R                   R                  USS9U R                  S-  R                  S5      5        U R	                  U R                   R                  USS9[        5        U R	                  U R                   R                  USS9XR                  S-  -   R                  S5      5        U R	                  U R                   R                  USS9UR                  S5      [        -   5        g )NFrom foo@bar blah
r   Ffrom_r   Tr   r   unixfromr   r   s       r%   test_get_bytes_from!_TestMboxMMDF.test_get_bytes_fromu  s   (yy}}X(::;yy}}X78,,T,?^^a''0	2,,T,?!	#,,T,>**227;	=,,T,>OOG$'<<	>r(   c                    SnU R                   R                  XR                  S-  -   5      nU R                   R                  U[        -   5      nU R	                  U R                   R                  USS9U R                  S-  5        U R	                  U R                   R                  USS9R                  S5      [        R                  S5      5        U R	                  U R                   R                  USS9XR                  S-  -   5        U R	                  U R                   R                  USS9R                  S5      U[        -   R                  S5      5        g )Nr  r   Fr  r   Tr   r  s       r%   test_get_string_from"_TestMboxMMDF.test_get_string_from  s   (yy}}X(::;yy}}X78--d%-@!+	---d%-@FFtL(..t4	6--d$-?!NNQ$66	8--d$-?EEdK"_4;;DA	Cr(   c                 H   U R                   R                  S5      nU R                  U R                   U   R                  5       S5        U R                  U R                   U   R	                  5       S5        U R                  U R                   U   R                  5       S5        g )NFrom foo@bar blah
From: foo

0
foo@bar blahFrom foo@bar blahr   rF   rZ   r   get_fromget_unixfromr   rm   s     r%   test_add_from_string"_TestMboxMMDF.test_add_from_string  sy    iimmAB3002NC34468KL3335u=r(   c                 H   U R                   R                  S5      nU R                  U R                   U   R                  5       S5        U R                  U R                   U   R	                  5       S5        U R                  U R                   U   R                  5       S5        g )Ns   From foo@bar blah
From: foo

0
r  r  r   r  rm   s     r%   test_add_from_bytes!_TestMboxMMDF.test_add_from_bytes  sy    iimmBC3002NC34468KL3335u=r(   c                     [         R                  [         R                  4 H&  nU" S5      nU R                  R	                  U5      nM(     g )Nr  )r   r9   r<   rF   rZ   )r   class_r   r    s       r%   test_add_mbox_or_mmdf_message+_TestMboxMMDF.test_add_mbox_or_mmdf_message  s;    **G,?,?@F>?C))--$C Ar(   c                    [        S5       Vs/ s H  oR                  U-  PM     nnU H  nU R                  R                  U5        M      U R                  R	                  5         [
        R                  R                  U R                  5      nU R                  U R                  5      U l        U R                  [        U R                  5      S5        U R                  R                  5        H.  nU R                  U R                  R                  U5      U5        M0     U R                  R	                  5         U R                  U[
        R                  R                  U R                  5      5        g s  snf )NrQ   )r*  r[   rF   rZ   rK   r*   r+   getmtimerD   rE   r   r   r  r   rd   )r   r"   r  r!   mtimer    s         r%   test_open_close_open"_TestMboxMMDF.test_open_close_open  s    .3Ah7h..1$h7EIIMM%  		  ,MM$**-	TYY+99%%'CMM$))..s3V< (		 0 0 <= 8s   E4c                    U R                   R                  [        5        [        S5       H+  nU R                   R                  U R                  U-  5        M-     U R                   R                  [        5        U R                   R
                  R                  5         U R                   R
                  R                  S5        U R                   R
                  R                  5       nU R                   R                  5         [        U R                  S5       nU R                  X#R                  5       5        S S S 5        U R                  U R                  5      U l         g ! , (       d  f       N/= f)NrQ   r   r  )rF   rZ   r\   r*  r[   _filery   r   r   rK   r  rD   r   rE   )r   r"   rx  r   s       r%   test_add_and_close _TestMboxMMDF.test_add_and_close  s    		o&qAIIMM$..1,- 		o&				Q99??'')		$**d#qXvvx0 $MM$**-	 $#s    E
E-
socketpairzTest needs socketpair().c                 z   [         R                  " 5       u  pU R                  UR                  5        U R                  UR                  5        [        R
                  " 5       nUS:X  am   U R                  R                  5         UR                  S5        UR                  S5        U R                  R                  5         [        R                  " S5        UR                  S5         U R                  [        R                  U R                  R                  5        UR                  S5        [        R                   " USS9  U R                  R                  5         U R                  R                  5         g ! [        R                  " S5        f = f! UR                  S5        [        R                   " USS9  f = f)Nr      crO      p)exitcode)r4  r
  
addCleanuprK   r*   forkrF   rn  sendrecvro  _exitr   r   ExternalClashErrorr   wait_process)r   cpr?  s       r%   test_lock_conflict _TestMboxMMDF.test_lock_conflict  s'   
   "  ggi!8			 t q			  " 	
q		2g88"iinn. FF4L  q1				  FF4L  q1s   *AE7 (4F 7F(F:c                    SnU R                   R                  U5      nU R                   R                  5         U R                   R                  5         U R	                  U R
                  5      U l         U R                   R                  5         U R                   R                  U5      nU R                   R                  5         U R                  U R                   R                  5        U R                   R                  5         g )NzSubject: sub

body
)	rF   rZ   ry   rK   rE   rD   rn  r   _locked)r   r   r   r   s       r%   test_relock_TestMboxMMDF.test_relock  s     'yy}}S!				MM$**-			yy}}S!				))*		r(   r   )r4   r5   r6   r7   rL   rz   r  r  r  r  r  r  r  r   requires_forkr  r  r  r4  r  r  r>   __classcell__r  s   @r%   r  r  h  sw    +0>C>>%>. 68RS! T !F r(   r  c                   j    \ rS rSrS
S jr\R                  " \" \S5      S5      S 5       r	S r
S rS	rg)TestMboxi  Nc                 .    [         R                  " X5      $ r   )r   mboxr  s      r%   r   TestMbox.<lambda>      T0Kr(   r  r  c                 :    [         R                  " S5      nU R                  R                  5         [         R                  " U R
                  5        [        R                  " U R
                  SS9U l        U R                  R                  S5        U R                  R                  5         [         R                  " U5        [         R                  " U R
                  5      nUR                  nU R                  US-  5        g ! [         R                  " W5        f = f)N?   T)creater  r  )r*   r  rF   rK   r/   rD   r   r$  rZ   r'  r  rl  )r   	old_umaskr  r  s       r%   test_file_permsTestMbox.test_file_perms  s    
	 IIIOOIIdjj!TZZ=DIIIMM"IIOOHHYWWTZZ 

%%-)	 HHYs   B)D Dc                    [         R                  R                  5       nSUS'   UR                  S5        U R                  R                  U5      nU R                  R                  U5      nU R                  UR                  5       S5        g )Nzjohn@example.comFromzNo newline at the endzNo newline at the end
)	r   r   r   set_payloadrF   rZ   r   r   r   )r   r   r"   s      r%   test_terminating_newline!TestMbox.test_terminating_newline  sl    --''),34IIMM'" ))--",,.0IJr(   c                    U R                   R                  S5        [        U R                  SS9 nUR	                  5       nU R                  US5        S S S 5        U R                   R                  S5        [        U R                  SS9 nUR	                  5       nU R                  US5        S S S 5        g ! , (       d  f       Ni= f! , (       d  f       g = f)NzFrom: foo

0rU   rV   z0

zFrom: foo

0
)rF   rZ   r  rD   r   assertEndsWith)r   r   datas      r%   test_message_separatorTestMbox.test_message_separator  s    		&'$**w/1668Dg. 0 			()$**w/1668Dg. 0/ 0/
 0/s   #B6
#C6
C
Cr   r   )r4   r5   r6   r7   rE   r  r  r  r*   r+  r0  r5  r>   r3   r(   r%   r"  r"    s:    KHW-/FG* H*$K
/r(   r"  c                       \ rS rSrSS jrSrg)TestMMDFi$  Nc                 .    [         R                  " X5      $ r   )r   MMDFr  s      r%   r   TestMMDF.<lambda>&  r&  r(   r3   r   )r4   r5   r6   r7   rE   r>   r3   r(   r%   r8  r8  $  s    KHr(   r8  c                   `    \ rS rSrSS jrS rS rS rS rS r	S	 r
S
 rS rS rS rS rSrg)TestMHi)  Nc                 .    [         R                  " X5      $ r   )r   MHr  s      r%   r   TestMH.<lambda>+  s    

40Ir(   c                 f    U R                  [        R                  " U R                  5      S/5        g )N.mh_sequences)r   r*   r  rD   rG   s    r%   rz   TestMH.assertMailboxEmpty-  s"    DJJ//1BCr(   c                    U R                   R                  S5        U R                   R                  S5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        g r  r  rG   s    r%   r  TestMH.test_list_folders0  r  r(   c                    S nU R                  U R                  U5      U l        U R                  R                  S5      nU R                  R	                  S5      nUR                  U R                  S-  5        U R                  [        R                  R                  [        R                  R                  U R                  S5      5      5        U R                  R	                  S5      nU R                  UR                  UR                  5       S   5      U R                  S-  5        U R                  UR                   U R                  R                   5        U R                  UR                   U R                  R                   5        g )Nc                     g r   r3   r  s    r%   r  -TestMH.test_get_folder.<locals>.dummy_factory;  r  r(   r  r@  r   )rE   rD   rF   r  r  rZ   r[   r   r*   r+   r,   r  r   rd   re   r   )r   r  
new_folderr  r  s        r%   r  TestMH.test_get_folder9  s
   	MM$**m<	YY)))4
))&&y1DNNU*+bggll4::y&IJK))&&y1++GLLN1,=>%/	1
 	j))499+=+=>g&&		(:(:;r(   c                 z   U R                   R                  S5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S5        U R                  [        U R                   R	                  5       5      [        S5      5        U R                   R                  S5        U R                  [        U R                   R	                  5       5      S	5        U R                  U R                   R	                  5       / 5        g r  r  rG   s    r%   r   "TestMH.test_add_and_remove_foldersL  r"  r(   c                     U R                  U R                  R                  5       0 5        [        R                  " U R
                  S-  5      nUR                  S5        U R                  R                  U5      nU R                  U R                  R                  5       SU/05        [        R                  " U R
                  S-  5      nUR                  / SQ5        U R                  R                  U5      nU R                  U R                  R                  5       X$/U/U/S.5        UR                  S/5        XR                  U'   U R                  U R                  R                  5       U/U/U/U/S.5        U R                  R                  U5        U R                  U R                  R                  5       SU/05        U R                  R                  SU/05        U R                  U R                  R                  5       SU/05        g )Nr   r   rO   )r@  repliedr   r   r@  rN  flagged)r   r@  rN  rP  )
r   rF   get_sequencesr   r:   r[   add_sequencerZ   set_sequencesr   r   r   r   r  r   s        r%   test_sequencesTestMH.test_sequences_  s   002B7  !!34% yy}}T"002UD6NC  !!3445yy}}T"002!L4&I	KI;'		$002!F4&TF!%(	) 			002Yv4FG		v/002UD6NCr(   c                    [         R                  R                  U R                  S5      n[         R                  " U5        U R                  U5      nU R                  [         R                  " U5      / 5        U R                  UR                  5       0 5        U R                  [         R                  " U5      / 5        UR                  0 5        U R                  [         R                  " U5      S/5        g Nr  rB  )
r*   r+   r  rD   r  rE   r   r  rQ  rS  r   r+   r  s      r%   test_no_dot_mh_sequences_file$TestMH.test_no_dot_mh_sequences_filev  s    ww||DJJ	2
mmD!D)2.**,b1D)2."D)O+<=r(   c                    [         R                  R                  U R                  S5      n[         R                  " U5        U R                  U5      nU R                  [         R                  " U5      / 5        UR                  5         UR                  5         U R                  [         R                  " U5      S/5        g rX  )
r*   r+   r  rD   r  rE   r   r  rn  ro  rY  s      r%   )test_lock_unlock_no_dot_mh_sequences_file0TestMH.test_lock_unlock_no_dot_mh_sequences_file  sz    ww||DJJ	2
mmD!D)2.


D)O+<=r(   c                     [         R                  " U R                  S-  5      nUR                  S5        U R                  R                  U5      nU R                  R                  U5      ng )Nr   r   )r   r:   r[   rR  rF   rZ   r   )r   r   r   refmsg0s       r%   test_issue2625TestMH.test_issue2625  sO      !!34% yy}}T"))''-r(   c                    [         R                  " U R                  S-  5      nU R                  R	                  U5      nU R                  R                  5         U R                  R                  U5        U R                  R                  5         g re  )r   r:   r[   rF   rZ   rn  r   ro  )r   r   r   s      r%   test_issue7627TestMH.test_issue7627  s]      !!34yy}}T"						r(   c           	         [         R                  " U R                  S-  5      n[         R                  " U R                  S-  5      n[         R                  " U R                  S-  5      n[         R                  " U R                  S-  5      nUR                  SS/5        UR                  S/5        UR                  SS/5        UR                  / SQ5        U R                  R                  U5      nU R                  R                  U5      nU R                  R                  U5      nU R                  R                  U5      nU R                  U R                  R                  5       XVXx/U/U/U/U/S	.5        U R                  R                  U5        U R                  U R                  R                  5       XVU/U/U/U/S
.5        U R                  R                  5         U R                  U R                  R                  5       / SQ5        UnUS-   nUS-   nU R                  U R                  R                  5       / SQS/S/S/S
.5        U R                  R                  U5      nU R                  R                  U5      nU R                  R                  U5      nU R                  R                  U5      nU R                  R                  U5        U R                  R                  U5        U R                  R                  5         U R                  R                  5         U R                  R                  5         U R                  U R                  R                  5       / SQS/S/S/S
.5        g )Nr   rO   rP   rQ   r   unseenrP  rO  )r   rg  rP  r@  rN  )r   rg  r@  rN  )rO   rP   rQ   )rO   rP   rQ   rR   rS   )r   r:   r[   rS  rF   rZ   r   rQ  r   packre   rn  ro  )	r   r   r  r  msg3r   r   r   key3s	            r%   	test_packTestMH.test_pack  s     !!34  !!34  !!34  !!34E8,-E7#E9-.45yy}}T"yy}}T"yy}}T"yy}}T"002!t1TF!%tfH	I 			002!t,vdV!%(	) 			)95axax002%A31#N	P yy}}T"yy}}T"yy}}T"yy}}T"										002+ !s1#!>	?r(   c                 V    [         R                  R                  U R                  S5      $ )Nz.mh_sequences.lock)r*   r+   r  rD   rG   s    r%   rm  TestMH._get_lock_path  s    ww||DJJ(<==r(   r   r   )r4   r5   r6   r7   rE   rz   r  r  r   rU  rZ  r]  ra  rd  rk  rm  r>   r3   r(   r%   r=  r=  )  sA    IHD3<&7&D.>>.*?X>r(   r=  c                   >   ^  \ rS rSrSS jrS rU 4S jrS rSrU =r	$ )	TestBabyli  c                 .    [         R                  " X5      $ r   )r   Babylr  s      r%   r   TestBabyl.<lambda>  s    d0Lr(   c                     [        U R                  S5       nU R                  UR                  5       / 5        S S S 5        g ! , (       d  f       g = fr  r  r  s     r%   rz   TestBabyl.assertMailboxEmpty  r  r  c                 4  > [         TU ]  5         U R                  R                  5         U R	                  U R
                  5        [        R                  " [        R                  " U R
                  5      S-   5       H  n[        R                  " U5        M     g r  r  r  s     r%   rL   TestBabyl.tearDown  r  r(   c                    U R                  U R                  R                  5       / 5        [        R                  " U R
                  S-  5      nUR                  S5        U R                  R                  U5      nU R                  U R                  R                  5       S/5        [        R                  " U R
                  S-  5      nUR                  / SQ5        U R                  R                  U5      nU R                  [        U R                  R                  5       5      [        SS/5      5        UR                  SS/5        XR                  U'   U R                  [        U R                  R                  5       5      [        / SQ5      5        U R                  R                  U5        U R                  [        U R                  R                  5       5      [        S/5      5        g )	Nr   r   rO   )r@  answeredr   r@  blahfiled)r   r@  rz  )r   rF   
get_labelsr   r;   r[   	add_labelrZ   
set_labelsr,  r   rT  s        r%   test_labelsTestBabyl.test_labels  sY   --/4##DNNQ$67uyy}}T"--/%9##DNNQ$6723yy}}T"TYY1134c5%.6IJ)*		$TYY1134/0	2		TYY1134c6(mDr(   r3   r   )
r4   r5   r6   r7   rE   rz   rL   r  r>   r  r   s   @r%   rp  rp    s    LH0+E Er(   rp  c                        \ rS rSrS rS rSrg)FakeFileLikeObjecti  c                     SU l         g rs  closedrG   s    r%   __init__FakeFileLikeObject.__init__  s	    r(   c                     SU l         g rc  r  rG   s    r%   rK   FakeFileLikeObject.close  s	    r(   r  N)r4   r5   r6   r7   r  rK   r>   r3   r(   r%   r  r    s    r(   r  c                        \ rS rSrS rS rSrg)FakeMailBoxi  c                     [         R                  R                  U SS 5        [        S5       Vs/ s H  n[	        5       PM     snU l        g s  snf )Nr  c                     g r   r3   )r   s    r%   r   &FakeMailBox.__init__.<locals>.<lambda>  s    r(   rT  )r   r  r  r*  r  files)r   r"   s     r%   r  FakeMailBox.__init__  s:      r+<=49"I>Iq(*I>
>s   Ac                      U R                   U   $ r   r  rm   s     r%   r   FakeMailBox.get_file  s    zz#r(   r  N)r4   r5   r6   r7   r  r   r>   r3   r(   r%   r  r    s    ?r(   r  c                       \ rS rSrS rSrg)TestFakeMailBoxi  c                 ,   [        5       n[        S5       H+  nU R                  UR                  U   R                  5        M-     [        S5       H  nX     M	     [        S5       H+  nU R                  UR                  U   R                  5        M-     g )NrT  )r  r*  rl  r  r  r   )r   r  r"   s      r%   test_closing_fdTestFakeMailBox.test_closing_fd  sn    mrASYYq\001 rAF rAOOCIIaL//0 r(   r3   N)r4   r5   r6   r7   r  r>   r3   r(   r%   r  r    s    1r(   r  c                   t    \ rS rSr\R
                  rS rS rS r	S r
S rS rS rS	 rS
 rS rS rS rSrg)TestMessagei  c                 .    [         R                  U l        g r   )r   rC   rD   rG   s    r%   rH   TestMessage.setUp  s    %%
r(   c                 :    U R                  U R                  5        g r   )r1   rD   rG   s    r%   rL   TestMessage.tearDown  s      ,r(   c                     [         R                  " [        5      nU R                  U5      nU R	                  U5        U R                  U5        g r   )r   r]   r\   rE   _post_initialize_hookr&   r   eMMr   s      r%   test_initialize_with_eMM$TestMessage.test_initialize_with_eMM  s<    ''8mmC ""3'3r(   c                 r    U R                  [        5      nU R                  U5        U R                  U5        g r   )rE   r\   r  r&   r   r   s     r%   test_initialize_with_string'TestMessage.test_initialize_with_string  s,    mmO,""3'3r(   c                    [        U R                  SSS9 nUR                  [        5        UR	                  S5        U R                  U5      nU R                  U5        U R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   rU   rV   r   )r  rD   r   r\   r   rE   r  r&   r   r   r   s      r%   test_initialize_with_file%TestMessage.test_initialize_with_file  sa    $**dW5GGO$FF1I--"C&&s+s# 655s   AA99
Bc                    [        U R                  S5       nUR                  [        5        UR	                  S5        U R                  U5      nU R                  U5        U R                  U5        S S S 5        g ! , (       d  f       g = f)Nr   r   )r  rD   r   r`   r   rE   r  r&   r  s      r%    test_initialize_with_binary_file,TestMessage.test_initialize_with_binary_file'  s`    $**e$GG)*FF1I--"C&&s+s# %$$s   AA::
Bc                    U R                  5       nU R                  U5        U R                  U[        R                  R
                  5        U R                  U[        R
                  5        U R                  XR                   5        U R                  UR                  5       / 5        U R                  UR                  5       5        U R                  UR                  5       5        g r   )rE   r  r   r   r   r   r   r   re   rl  r   r   r   r  s     r%   test_initialize_with_nothing(TestMessage.test_initialize_with_nothing0  s    mmo""3'c5==#8#89c7??3c==1R())+,#//+,r(   c                 :   ^  T R                  [        U 4S j5        g )Nc                  6   > T R                  [        5       5      $ r   )rE   objectrG   s   r%   r   9TestMessage.test_initialize_incorrectly.<locals>.<lambda>=  s    T]]68-Dr(   )r   r  rG   s   `r%   test_initialize_incorrectly'TestMessage.test_initialize_incorrectly;  s    )%DEr(   c                     [         R                  " [        5      nU R                  [        5      nUR                   H.  nU R                  X2R                  SR                  U5      5        M0     g )Nz{} attribute does not exist)r   r]   r\   rE   __dict__r   format)r   r  r   attrs       r%   test_all_eMM_attributes_exist)TestMessage.test_all_eMM_attributes_exist?  sN    ''8mmO,LLDMM$-44T:< !r(   c                     [         R                  " [        5      nU R                  5       nUR	                  U5        U R                  U5        g r   )r   r]   r\   rE   _become_messager&   r  s      r%   test_become_messageTestMessage.test_become_messageG  s9    ''8mmoC 3r(   c                    ^^ U R                  5       mU R                   H  nU" 5       mTR                  T5        M     [        R                  R                  5       mU R                  [        UU4S j5        g )Nc                  &   > T R                  T5      $ r   )_explain_to)r   	other_msgs   r%   r   -TestMessage.test_explain_to.<locals>.<lambda>V  s    S__Y-Gr(   )rE   r=   r  r   r   r   r   r  )r   r  r   r  s     @@r%   test_explain_toTestMessage.test_explain_toN  sX     mmo,,FIOOI& - MM))+	)%GHr(   c                     g r   r3   r  s     r%   r  !TestMessage._post_initialize_hookX  s    r(   r  N)r4   r5   r6   r7   r   r   rE   rH   rL   r  r  r  r  r  r  r  r  r  r  r>   r3   r(   r%   r  r    sI    H&-  $$	-F< Ir(   r  c                   P    \ rS rSr\R
                  rS rS rS r	S r
S rS rSrg	)
TestMaildirMessagei]  c                 t    U R                  UR                  S5        U R                  UR                  S5        g )Nr  r  )r   _subdir_infor  s     r%   r  (TestMaildirMessage._post_initialize_hooka  s*    e,B'r(   c                 6  ^ [         R                  " [        5      mU R                  TR	                  5       S5        TR                  S5        U R                  TR	                  5       S5        TR                  S5        U R                  TR	                  5       S5        U R                  [        U4S j5        U R                  TR	                  5       S5        TR                  S5        U R                  TR	                  5       S5        U R                  T5        g )Nr  r  c                  &   > T R                  S5      $ r  )r  r   s   r%   r   0TestMaildirMessage.test_subdir.<locals>.<lambda>m  s    cnnU.Cr(   )	r   r8   r\   r   r  r  r   rx   r&   r  s    @r%   test_subdirTestMaildirMessage.test_subdire  s    $$_5)51u)51u)51*&CD)51u)513r(   c                    [         R                  " [        5      nU R                  UR	                  5       S5        U R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S	5        U R                  UR                  5       S5        U R                  U5        g )
Nr  r  FSDTPDPSTFTDFPSTTDRPFS)
r   r8   r\   r   r  r  r  r}  r  r&   r  s     r%   
test_flagsTestMaildirMessage.test_flagss  s   $$_5"-)51c)51#.f&1T'2$/)513r(   c                    [         R                  " [        5      nU R                  [	        UR                  5       [        R                  " 5       -
  5      S5        UR                  S5        U R                  UR                  5       S5        g )N<           )	r   r8   r\   r-  absget_dater)  set_dater   r  s     r%   	test_dateTestMaildirMessage.test_date  sX    $$_5CLLNTYY[892>S-r(   c                 2  ^ [         R                  " [        5      mU R                  TR	                  5       S5        TR                  S5        U R                  TR	                  5       S5        U R                  [        U4S j5        U R                  T5        g )Nr  z	1,foo=barc                  &   > T R                  S 5      $ r   )r  r  s   r%   r   .TestMaildirMessage.test_info.<locals>.<lambda>  s    S\\$-?r(   )	r   r8   r\   r   r`  r  r   r  r&   r  s    @r%   	test_infoTestMaildirMessage.test_info  sj    $$_5,[!5)%?@3r(   c                 "   [         R                  " [        5      nU R                  UR	                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR                  5       S5        U R                  UR	                  5       S5        U R                  U5        g )	Nr  SFr  z2,FSz1,RPTDz2,D)r   r8   r\   r   r`  r  r  r  r  r}  r&   r  s     r%   test_info_and_flags&TestMaildirMessage.test_info_and_flags  s   $$_5,d$/0T"-."-.S#./3r(   r3   N)r4   r5   r6   r7   r   r8   rE   r  r  r  r  r  r  r>   r3   r(   r%   r  r  ]  s+    %%H(  ".  r(   r  c                   N    \ rS rSr\R
                  rS rS rS r	S r
S	S jrSrg)
_TestMboxMMDFMessagei  c                 &    U R                  U5        g r   )_check_fromr  s     r%   r  *_TestMboxMMDFMessage._post_initialize_hook  s    r(   c                    [         R                  " [        5      nUR                  S5        [         R                  " U5      nU R                  UR                  5       S5        U R                  UR                  5       S5        g )Nr  r  )r   r   r\   set_unixfromr9   r   r  r  r  s     r%   test_initialize_with_unixfrom2_TestMboxMMDFMessage.test_initialize_with_unixfrom  s_    ooo.,-!!#&8))+-@Ar(   c                 j   [         R                  " [        5      nU R                  U5        U R	                  UR                  5       5        UR                  S5        U R                  UR                  5       S5        U R	                  UR                  5       5        UR                  SS5        U R                  US5        U R	                  UR                  5       5        UR                  S[        R                  " 5       5        U R                  US5        U R	                  UR                  5       5        g )Nzfoo barfoo@barTz	blah@temp)r   r9   r\   r  r   r  set_fromr   r  r)  	localtimer  s     r%   	test_from_TestMboxMMDFMessage.test_from  s    !!/2#**,-Y3#**,-Y%i(#**,-[$.."23k*#**,-r(   c                 "   [         R                  " [        5      nU R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        UR                  S5        U R                  UR	                  5       S5        U R                  U5        g )	Nr  r  XODRRODXFARODFAXFDXARO)	r   r9   r\   r   r  r  r}  r  r&   r  s     r%   r  _TestMboxMMDFMessage.test_flags  s    !!/2"-c#.f&1T(3$/3r(   Nc                 |    Uc  SnU R                  [        R                  " US-   UR                  5       5      5        g )NzMAILER-DAEMONz. \w{3} \w{3} [\d ]\d [\d ]\d:\d{2}:\d{2} \d{4})r;  r7  r:  r  )r   r   senders      r%   r   _TestMboxMMDFMessage._check_from  s7    >$FRXXJJ  	!r(   r3   r   )r4   r5   r6   r7   r   _mboxMMDFMessagerE   r  r  r  r  r  r>   r3   r(   r%   r  r    s'    ''HB. !r(   r  c                   ,    \ rS rSr\R
                  rSrg)TestMboxMessagei  r3   N)r4   r5   r6   r7   r   r9   rE   r>   r3   r(   r%   r  r        ""Hr(   r  c                   8    \ rS rSr\R
                  rS rS rSr	g)TestMHMessagei  c                 <    U R                  UR                  / 5        g r   )r   
_sequencesr  s     r%   r  #TestMHMessage._post_initialize_hook  s    ,r(   c                 
   [         R                  " [        5      nU R                  UR	                  5       / 5        UR                  S/5        U R                  UR	                  5       S/5        UR                  / 5        U R                  UR	                  5       / 5        UR                  S5        U R                  UR	                  5       S/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  S5        U R                  UR	                  5       S/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  SS/5        U R                  UR	                  5       SS/5        g )Nfoobarrg  rP  rN  )r   r:   r\   r   rQ  rS  rR  remove_sequencer  s     r%   rU  TestMHMessage.test_sequences  s   0**,b18*%**,xj9"**,b1"**,xj9#**,x.CD#**,x.CDH%**,yk:"**,y(.CDI&**,y(.CD8Y/0**,x.CDr(   r3   N)
r4   r5   r6   r7   r   r:   rE   r  rU  r>   r3   r(   r%   r  r    s      H-Er(   r  c                   >    \ rS rSr\R
                  rS rS rS r	Sr
g)TestBabylMessagei   c                 <    U R                  UR                  / 5        g r   )r   _labelsr  s     r%   r  &TestBabylMessage._post_initialize_hook  s    b)r(   c                 
   [         R                  " [        5      nU R                  UR	                  5       / 5        UR                  S/5        U R                  UR	                  5       S/5        UR                  / 5        U R                  UR	                  5       / 5        UR                  S5        U R                  UR	                  5       S/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  S5        U R                  UR	                  5       S/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  S5        U R                  UR	                  5       SS/5        UR                  SS/5        U R                  UR	                  5       SS/5        g )Nr  r{  resentrg  ry  )r   r;   r\   r   r|  r~  r}  remove_labelr  s     r%   r  TestBabylMessage.test_labels  s   ""?3)2.z")H:6r)2.g)G95h)GX+>?h)GX+>?!)H:6h)Hh+?@")Hh+?@*-.)Hj+ABr(   c                    [         R                  " [        5      nUR                  5       nU R	                  UR                  5       / 5        U R                  UR                  5       5        SUS'   SUS'   U R	                  UR                  5       R                  5       / 5        UR                  U5        UR                  5       nU R	                  UR                  5       SS/5        U R	                  US   S5        U R	                  US   S5        U R                  UR                  5       5        UR                  5         U R	                  UR                  5       SS/5        U R                  UR                  5       5        UR                  5       nU R	                  UR                  5       / SQ5        S H  nU R	                  X#   X   5        M     g )Nz
FooBar 1.0
User-AgentBlahz
X-Whatever)r&  Dater.  ToSubject)
r   r;   r\   get_visibler   re   r   r   set_visibleupdate_visible)r   r   visibleheaders       r%   test_visibleTestBabylMessage.test_visible  sw   ""?3//#,'--/0 , &*//126 //#,)EF.=.7'--/0,)EF'--/0//# *5 	6EFW_ck: Fr(   r3   N)r4   r5   r6   r7   r   r;   rE   r  r  r0  r>   r3   r(   r%   r  r     s    ##H*C.;r(   r  c                   ,    \ rS rSr\R
                  rSrg)TestMMDFMessagei7  r3   N)r4   r5   r6   r7   r   r<   rE   r>   r3   r(   r%   r3  r3  7  r  r(   r3  c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rSrg)TestMessageConversioni<  c                     U R                    H6  n[        R                  " [        5      nU" U5      nU R	                  U5        M8     g r   )r=   r   r   r\   r&   )r   r  	msg_plainr   s       r%   test_plain_to_x%TestMessageConversion.test_plain_to_x>  s8    ,,F8I#Cs# -r(   c                     U R                    H6  nU" [        5      n[        R                  " U5      nU R	                  U5        M8     g r   )r=   r\   r   r   r&   )r   r  r   r7  s       r%   test_x_to_plain%TestMessageConversion.test_x_to_plainE  s8    ,,F)C,Iy) -r(   c                 d    U R                    H   nU" [        5      nU R                  U5        M"     g r   )r=   r`   r&   )r   r  r   s      r%   test_x_from_bytes'TestMessageConversion.test_x_from_bytesL  s+    ,,F./Cs# -r(   c                 `   ^ U R                    H  mU R                  [        U4S j5        M     g )Nc                     > T " S5      $ rs  r3   )r  s   r%   r   9TestMessageConversion.test_x_to_invalid.<locals>.<lambda>U  s	    r(   )r=   r   r  )r   r  s    @r%   test_x_to_invalid'TestMessageConversion.test_x_to_invalidR  s$    ,,Fi)>? -r(   c                    U R                    Vs0 s H  nX" [        5      R                  _M     nnU R                    H  nU R                    Ho  nX4L a  M	  U" [        5      nU" U5      nX#    Vs/ s H  nXrU   ;  d  M  UPM     nnU H.  n	U R                  XR                  SR	                  X45      5        M0     Mq     M     g s  snf s  snf )Nzwhile converting {} to {})r=   r\   r  r4  r  )
r   r  	referenceclass1class2sourcer0   atype_specificr  s
             r%   3test_type_specific_attributes_removed_on_conversionITestMessageConversion.test_type_specific_attributes_removed_on_conversionW  s    &*&<&<>&<F VO4===&< 	 >,,F00#0,5,= !B,=q&'/@&@ "#,= !B)D$$T??3::6JL * 1 ->!Bs    C/C	?C	c                    [         R                  " [        5      nUR                  S5        UR	                  S5        UR                  5       n[         R                  " U5      nU R                  U5        U R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       U5        g )NDFPRSTr  )
r   r8   r\   r  r  r  r&   r   r  r  )r   msg_maildirdater   s       r%   test_maildir_to_maildir-TestMessageConversion.test_maildir_to_maildirf  s    ,,_=h'u%##%$$[13(3)51.r(   c                 z   Sn[         R                  [         R                  4 GH  n[         R                  " [        5      nUR                  S5        U H  u  pEUR                  U5        U" U5      nU R                  UR                  5       U5        U R                  UR                  5       S[        R                  " [        R                  " S5      5      -  5        U R                  UR                  5       5        M     UR                  S5        U R                  U" U5      R                  5       S5        GM     g )N))r  r  r  r  )Pr  )RA)r  rW  )rr  r  )rO  RDFAr  zMAILER-DAEMON %sr  RODFA)r   r9   r<   r8   r\   r  r  r   r  r  r)  asctimegmtimer   r  r  )r   pairsr  rP  settingresultr   s          r%   test_maildir_to_mboxmmdf.TestMessageConversion.test_maildir_to_mboxmmdfr  s    1**G,?,?@F!00AK  %#(%%g.[)  &9  1C!\\$++c*:;2< =!!#"2"2"45 $) ""5)VK0::<gF Ar(   c           	         [         R                  " [        5      nSS/4SSS/4SS/4SSS/4S/ 4S	S/4S
SS/44nU HJ  u  p4UR                  U5        U R	                  [         R
                  " U5      R                  5       U5        ML     g )Nr  rg  r  rP  rV  rW  rN  r  rr  rO  )r   r8   r\   r  r   r:   rQ  r   rP  r]  r^  r_  s        r%   test_maildir_to_mh(TestMessageConversion.test_maildir_to_mh  s    ,,_=z"S8Y*?$@z"S8Y*?$@3)z"X	9/E$FH  %OG!!'*W..{;IIK#%  %r(   c           	         [         R                  " [        5      nSS/4SS/4SSS/4SSS/4S/ 4S	SS
/4S/ SQ44nU HJ  u  p4UR                  U5        U R	                  [         R
                  " U5      R                  5       U5        ML     g )Nr  rg  r  rV  	forwardedrW  ry  r  rr  deletedrO  )rh  ry  rg  )r   r8   r\   r  r   r;   r|  rc  s        r%   test_maildir_to_babyl+TestMessageConversion.test_maildir_to_babyl  s    ,,_=z"S8*$5+./#*7M1NrS8Y"78@AC  %OG!!'*W11+>IIK#%  %r(   c                 (   [         R                  [         R                  4 H  nU" [        5      nUR	                  S[
        R                  " S5      5        SnU Hl  u  pEUR                  U5        [         R                  " U5      nU R                  UR                  5       U5        U R                  UR                  5       S5        Mn     UR                  S5        U R                  [         R                  " U5      R                  5       S5        M     g )Nr  r  ))rW  r  )Or  )r  rr  rU  )rX  rW  )rZ  FRSTrl  r  )r   r9   r<   r\   r   r)  r\  r  r8   r   r  r  r  )r   r  msg_mboxMMDFr]  r^  r_  r   s          r%   test_mboxmmdf_to_maildir.TestMessageConversion.test_mboxmmdf_to_maildir  s    **G,?,?@F!/2L!!)T[[-=>(E#(&&w/,,\:  &9  5	 $)
 ""3'W33LALLN"$ Ar(   c                    [         R                  [         R                  4 H  nU" [        5      nUR	                  S5        UR                  S5        U R                  UR                  5       5        [         R                  [         R                  4 Hj  nU" U5      nU R                  UR                  5       S5        U R                  UR                  5       S5        U R                  UR                  5       5        Ml     M     g )NrZ  r  )r   r9   r<   r\   r  r   r   r  r   r  r  )r   r  rn  class2_r  s        r%   test_mboxmmdf_to_mboxmmdf/TestMessageConversion.test_mboxmmdf_to_mboxmmdf  s    **G,?,?@F!/2L""7+!!),l779:#//1D1DE|,  !17;  )<!!$"3"3"56	 F Ar(   c           	      B   [         R                  [         R                  4 H{  nU" [        5      nS/ 4SS/4SS/4SSS/4SSS/4S	SS/44nU HJ  u  pEUR	                  U5        U R                  [         R                  " U5      R                  5       U5        ML     M}     g )
NrW  rl  rg  r  r  rP  rX  rN  rZ  )r   r9   r<   r\   r  r   r:   rQ  )r   r  rn  r]  r^  r_  s         r%   test_mboxmmdf_to_mh)TestMessageConversion.test_mboxmmdf_to_mh  s    **G,?,?@F!/2L2Yxj 1C(3DHi01Hi01	9568E $)&&w/  !2!2<!@!N!N!P!') $) Ar(   c           	      B   [         R                  [         R                  4 H{  nU" [        5      nS/ 4SS/4SSS/4SS/4SSS/4S	SS/44nU HJ  u  pEUR	                  U5        U R                  [         R                  " U5      R                  5       U5        ML     M}     g )
NrW  rl  rg  r  rh  r  rX  ry  rZ  )r   r9   r<   r\   r  r   r;   r|  )r   r  r   r]  r^  r_  s         r%   test_mboxmmdf_to_babyl,TestMessageConversion.test_mboxmmdf_to_babyl  s    **G,?,?@F)C2Yxj 1Hi01C(3DHj12	:679E $)g&  !5!5c!:!E!E!GP $) Ar(   c                    SnU H  u  p#[         R                  " [        5      nUR                  U5        U R	                  [         R
                  " U5      R                  5       U5        U R	                  [         R
                  " U5      R                  5       S5        M     [         R                  " [        5      nUR                  S5        UR                  S5        UR                  S5        U R	                  [         R
                  " U5      R                  5       S5        U R	                  [         R
                  " U5      R                  5       S5        g )N)rg  r  )rN  RS)rP  r  r  rg  rN  rP  r  )r   r:   r\   rR  r   r8   r  r  r   r]  r^  r_  r   s        r%   test_mh_to_maildir(TestMessageConversion.test_mh_to_maildir  s    F$OG##O4CW%W33C8BBDfMW33C8CCEuM	  %
 0"##//4>>@$G//4??A5Ir(   c                 B   SnU H}  u  p#[         R                  " [        5      nUR                  U5        [         R                  [         R
                  4 H)  nU R                  U" U5      R                  5       U5        M+     M     [         R                  " [        5      nUR                  S5        UR                  S5        UR                  S5        [         R                  [         R
                  4 H)  nU R                  U" U5      R                  5       S5        M+     g )N)rg  rl  )rN  ROA)rP  ROFrg  rN  rP  OFA)r   r:   r\   rR  r9   r<   r   r  )r   r]  r^  r_  r   r  s         r%   test_mh_to_mboxmmdf)TestMessageConversion.test_mh_to_mboxmmdf  s    I$OG##O4CW%"..0C0CD  !6!6!8&A E  %
 0"##**G,?,?@FVC[224e< Ar(   c                 
   [         R                  " [        5      nUR                  S5        UR                  S5        UR                  S5        U R	                  [         R                  " U5      R                  5       / SQ5        g )Nrg  rN  rP  )rg  rN  rP  )r   r:   r\   rR  r   rQ  r  s     r%   test_mh_to_mh#TestMessageConversion.test_mh_to_mh  sc    0"##**3/==?9	;r(   c                    SS/4SS/4S/ 44nU Hd  u  p#[         R                  " [        5      nUR                  U5        U R	                  [         R
                  " U5      R                  5       U5        Mf     [         R                  " [        5      nUR                  S5        UR                  S5        UR                  S5        U R	                  [         R
                  " U5      R                  5       SS/5        g )Nrg  rN  ry  rP  )r   r:   r\   rR  r   r;   r|  r~  s        r%   test_mh_to_babyl&TestMessageConversion.test_mh_to_babyl  s    XJ')j\)BR"$OG##O4CW%W11#6AACVL  % 0"##--c2==?"J/	1r(   c                 |   SnU H  u  p#[         R                  " [        5      nUR                  U5        U R	                  [         R
                  " U5      R                  5       U5        U R	                  [         R
                  " U5      R                  5       S5        M     [         R                  " [        5      nS H  nUR                  U5        M     U R	                  [         R
                  " U5      R                  5       S5        U R	                  [         R
                  " U5      R                  5       S5        g )N)r|  )rh  ST)r{  r  )ry  r}  )rg  PS)editedr  )r"  r  r  rg  rh  r{  ry  rg  r  r"  PRT)r   r;   r\   r}  r   r8   r  r  r   r]  r^  r_  r   labels         r%   test_babyl_to_maildir+TestMessageConversion.test_babyl_to_maildir  s    #  %OG&&7CMM'"W33C8BBDfMW33C8CCEuM	  %
 ""?3*EMM% * 	//4>>@%H//4??A5Ir(   c                    SnU H}  u  p#[         R                  [         R                  4 HT  n[         R                  " [        5      nUR                  U5        U R                  U" U5      R                  5       U5        MV     M     [         R                  " [        5      nS H  nUR                  U5        M     [         R                  [         R                  4 H)  nU R                  U" U5      R                  5       S5        M+     g )N)r  )rh  ROD)r{  r
  )ry  r  )rg  r
  )r  r
  )r"  r
  r  ODA)r   r9   r<   r;   r\   r}  r   r  )r   r]  r^  r_  r  r   r  s          r%   test_babyl_to_mboxmmdf,TestMessageConversion.test_babyl_to_mboxmmdf  s    #  %OG"..0C0CD**?;g&  !6!6!8&A E  %
 ""?3*EMM% * **G,?,?@FVC[224e< Ar(   c                    SS/4S/ 4S/ 4SS/4S/ 4S/ 4S/ 44nU Hd  u  p#[         R                  " [        5      nUR                  U5        U R	                  [         R
                  " U5      R                  5       U5        Mf     [         R                  " [        5      nS	 H  nUR                  U5        M     U R	                  [         R
                  " U5      R                  5       SS/5        g )
Nrg  rh  r{  ry  rN  rg  r  r"  r  )r   r;   r\   r}  r   r:   rQ  r  s         r%   test_babyl_to_mh&TestMessageConversion.test_babyl_to_mh(  s    XJ')R7B-yk*[",="~B!  %OG&&7CMM'"W..s3AACVL  % ""?3*EMM% * 	**3/==?"I.	0r(   c                 B   [         R                  " [        5      nUR                  5         S H  nUR	                  U5        M     [         R                  " U5      nU R                  UR                  5       / SQ5        U R                  UR                  5       R                  5       UR                  5       R                  5       5        UR                  5       R                  5        H7  nU R                  UR                  5       U   UR                  5       U   5        M9     g )Nr  )	r   r;   r\   r-  r}  r   r|  r+  re   )r   r   r  r  r    s        r%   test_babyl_to_babyl)TestMessageConversion.test_babyl_to_babyl8  s    ""?3*EMM% * ##C(* -7 	8 	*//143C3C3E3J3J3LM??$))+CS__.s3T5E5E5G5LM ,r(   r3   N)r4   r5   r6   r7   r8  r;  r>  rC  rL  rR  r`  rd  ri  ro  rs  rv  ry  r  r  r  r  r  r  r  r  r>   r3   r(   r%   r5  r5  <  sr    $*$@
L
/G"	%
%$ 7)
QJ=;1J"="0 Nr(   r5  c                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestProxyFileBaseiH  c                    UR                  S5        U R                  UR                  5       S5        UR                  S5        U R                  UR                  5       S5        UR                  S5        U R                  UR                  S5      S5        UR                  S5        U R                  UR                  S5      S5        UR                  S5        U R                  UR                  S5      S	5        g )
Nr      barrO   s   arrP   s   ba     r)r   r   r   r   proxys     r%   
_test_readTestProxyFileBase._test_readJ  s    

1v.

1u-

1A.

1B/

1D)40r(   c                 d   [         R                  R                  5       nUR                  S5        U R	                  UR                  5       SU-   5        U R	                  UR                  5       SU-   5        U R	                  UR                  5       SU-   5        U R	                  UR                  5       S5        UR                  S5        U R	                  UR                  5       SU-   5        UR                  SS[        [         R                  5      -  -   5        U R	                  UR                  5       SU-   5        UR                  SS[        [         R                  5      -  -   5        U R	                  UR                  S5      S	5        U R	                  UR                  S
5      SU-   5        g )Nr      foor     fred   bobrP      orT   s   fris   ed)r*   r   rk   r   r   readliner   r   r  r   s      r%   _test_readline TestProxyFileBase._test_readlineW  s>   **##%

1)6G+;<)6G+;<)7W+<=)62

1)4'>:

1q3rzz?**+)7W+<=

1q3rzz?**+*E2,ego>r(   c                 D   [         R                  R                  5       nUR                  S5        U R	                  UR                  5       SU-   SU-   SU-   S/5        UR                  S5        U R	                  UR                  S5      SU-   /5        UR                  S[        U5      -   5        U R	                  UR                  S[        U5      -   5      SU-   SU-   /5        UR                  S5        U R	                  UR                  S	5      USU-   SU-   S/5        g )
Nr   r  r  r  r  rP   rQ   rR   r  )r*   r   rk   r   r   r  r   r  s      r%   _test_readlines!TestProxyFileBase._test_readlinesg  s   **##%

1*Vg-=+1G+;+2W+<f-F 	G 	

1+fw.>-?@

1s7|#$S\)9:w&'(9:	<

1.&7:J/6/@&1J 	Kr(   c                    [         R                  R                  5       nUR                  S5        [	        U5      nU R                  [        U5      SU-   5        U R                  [        U5      SU-   5        U R                  [        U5      SU-   5        U R                  [        U5      S5        U R                  [        [        U5        g )Nr   r  r  r  r  )	r*   r   rk   r   iterr   nextr   StopIteration)r   r  r   iterators       r%   _test_iteration!TestProxyFileBase._test_iterationw  s    **##%

1;h')9:h')9:h7):;h0-x8r(   c                    [         R                  R                  5       nUR                  S5        U R	                  UR                  5       S5        U R	                  UR                  [        U5      5      U5        UR                  SS5        U R	                  UR                  S[        U5      -   5      SU-   5        UR                  S[        U5      -
  S5        U R	                  UR                  S5      S5        UR                  SS5        U R	                  UR                  5       SU-   S-   U-   5        UR                  S	5        U R                  UR                  5       5        g )
NrQ   rP   rO   r  rO  r  r   r  d   )	r*   r   rk   r   r   tellr   r   rl  r  s      r%   _test_seek_and_tell%TestProxyFileBase._test_seek_and_tell  s   **##%

1q)CL17;

1aAG$45tg~F

2G$a(A/

1atg~'>'HI

3&r(   c                     U R                  UR                  5        UR                  5         U R                  UR                  5        UR                  5         U R                  UR                  5        g r   )rl  r  rK   r   r  s     r%   _test_closeTestProxyFileBase._test_close  sF    &%%r(   r3   N)r4   r5   r6   r7   r  r  r  r  r  r  r>   r3   r(   r%   r  r  H  s!    1? K 	9'&r(   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestProxyFilei  c                 d    [         R                  U l        [        U R                  S5      U l        g Nr   r   rC   rD   r  r  rG   s    r%   rH   TestProxyFile.setUp  !    %%
$**e,
r(   c                 n    U R                   R                  5         U R                  U R                  5        g r   r  rK   r1   rD   rG   s    r%   rL   TestProxyFile.tearDown  $    

  ,r(   c                    U R                   R                  S5        U R                   R                  5       n[        R                  " U R                   5      nU R                  UR                  5       U5        U R                  U R                   R                  5       U5        [        R                  " U R                   S5      nU R                  UR                  5       S5        U R                  U R                   R                  5       U5        g )Nr  r   )r  r   r  r   
_ProxyFiler   )r   posproxy0proxy1s       r%   test_initializeTestProxyFile.test_initialize  s    

 jjoo##DJJ/,*C0##DJJ2**C0r(   c                     U R                   R                  S5        U R                  [        R                  " U R                   5      5        g )Nr  )r  r   r  r   r  rG   s    r%   	test_readTestProxyFile.test_read  s/    

 **4::67r(   c                    U R                   R                  [        S[        R                  < S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   5      5        g Nr   r@  fredbobr   )r  r   bytesr*   r   r  r   r  rG   s    r%   test_readlineTestProxyFile.test_readline  sU    



BJJ24** >?FH 	IG..tzz:;r(   c                    U R                   R                  [        S[        R                  < S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   5      5        g r  )r  r   r  r*   r   r  r   r  rG   s    r%   test_readlinesTestProxyFile.test_readlines  U    



BJJ24** >?FH 	IW//

;<r(   c                    U R                   R                  [        S[        R                  < S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   5      5        g r  )r  r   r  r*   r   r  r   r  rG   s    r%   test_iterationTestProxyFile.test_iteration  r  r(   c                     U R                   R                  [        S[        R                  < S[        R                  < 3S5      5        U R                  [        R                  " U R                   5      5        g Nr   r@  r   )r  r   r  r*   r   r  r   r  rG   s    r%   test_seek_and_tell TestProxyFile.test_seek_and_tell  sE    

rzz2::FPQ  !3!3DJJ!?@r(   c                     U R                   R                  [        S[        R                  < S[        R                  < 3S5      5        U R                  [        R                  " U R                   5      5        g r  )r  r   r  r*   r   r  r   r  rG   s    r%   rt  TestProxyFile.test_close  sE    

rzz2::FPQ++DJJ78r(   r  rD   Nr4   r5   r6   r7   rH   rL   r  r  r  r  r  r  rt  r>   r3   r(   r%   r  r    s0    --	18<
=
=
A9r(   r  c                   J    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSrg)TestPartialFilei  c                 d    [         R                  U l        [        U R                  S5      U l        g r  r  rG   s    r%   rH   TestPartialFile.setUp  r  r(   c                 n    U R                   R                  5         U R                  U R                  5        g r   r  rG   s    r%   rL   TestPartialFile.tearDown  r  r(   c                    U R                   R                  [        S[        R                  -   S-   S5      5        U R                   R                  5       n[        R                  " U R                   SS5      nU R                  UR                  5       S5        U R                  U R                   R                  5       U5        g )Nr   r@  r   rP   rS   r   )	r  r   r  r*   r   r  r   _PartialFiler   )r   r  r  s      r%   r  TestPartialFile.test_initialize  s    

urzz1E97CDjjoo$$TZZA6q)*C0r(   c                     U R                   R                  [        SS5      5        U R                  [        R
                  " U R                   SS5      5        g )Nz	***bar***r   rQ   rT   )r  r   r  r  r   r  rG   s    r%   r  TestPartialFile.test_read  s:    

{G45,,TZZA>?r(   c                 X   U R                   R                  [        S[        R                  < S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   SSS[        [        R                  5      -  -   5      5        g )	Nz!!!!!foor@  r  zbob!!!!!r   rS      rQ   )	r  r   r  r*   r   r  r   r  r   rG   s    r%   r  TestPartialFile.test_readline  sr    

**bjj"** >?FH 	IG00Q13a#bjj/6I1IK 	Lr(   c                 X   U R                   R                  [        S[        R                  < S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   SSS[        [        R                  5      -  -   5      5        g )	Nr   r@  r  zbob?????r   r      rQ   )	r  r   r  r*   r   r  r   r  r   rG   s    r%   r  TestPartialFile.test_readlines  r    

**bjj"** >?FH 	IW11$**a24q3rzz?7J2JL 	Mr(   c                 X   U R                   R                  [        S[        R                  < S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   SSS[        [        R                  5      -  -   5      5        g )	N____foor@  r  zbob####r   rR      rQ   )	r  r   r  r*   r   r  r   r  r   rG   s    r%   r  TestPartialFile.test_iteration  r  r(   c                 4   U R                   R                  [        S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   SSS[        [        R                  5      -  -   5      5        g )Nz(((foor@  z$$$r   rQ   	   rP   )	r  r   r  r*   r   r  r   r  r   rG   s    r%   r  "TestPartialFile.test_seek_and_tell  sb    

RZZLgVW  !5!5djj!67!c"**o:M6M"O 	Pr(   c                 4   U R                   R                  [        S[        R                  < S[        R                  < S3S5      5        U R                  [        R                  " U R                   SSS[        [        R                  5      -  -   5      5        g )Nz&foor@  ^r   rO   rT   rQ   )	r  r   r  r*   r   r  r   r  r   rG   s    r%   rt  TestPartialFile.test_close  sb    

RZZH'RS--djj!./!c"**o2E.EG 	Hr(   r  Nr  r3   r(   r%   r  r    s5    --1@LMMP
Hr(   r  z6From 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                   B    \ rS rSrS rS rSS jrS rS rS r	S r
S	rg
)MaildirTestCasei
	  c                 8   [         R                  U l        [        R                  R                  U R                  5      (       a!  [         R                  " U R                  5        ON[        R                  R                  U R                  5      (       a   [         R                  " U R                  5        [        R                  " U R                  5        [        R                  " [        R                  R                  U R                  S5      5        [        R                  " [        R                  R                  U R                  S5      5        [        R                  " [        R                  R                  U R                  S5      5        SU l        / U l        g )Nr  r  r  rO   )r   rC   _dirr*   r+   r,   r-   isfiler/   r  r  _counter	_msgfilesrG   s    r%   rH   MaildirTestCase.setUp	  s    $$	77==##TYY'WW^^DII&&TYY'

dii/0
dii/0
dii/0r(   c                    [        [        [        R                  U R                  5      5        [
        R                  " [        R                  R                  U R                  S5      5        [
        R                  " [        R                  R                  U R                  S5      5        [
        R                  " [        R                  R                  U R                  S5      5        [
        R                  " U R                  5        g )Nr  r  r  )
r+  mapr*   r/   r  r   rmdirr+   r  r  rG   s    r%   rL   MaildirTestCase.tearDown	  s    SDNN+,TYY67TYY67TYY67		"r(   c                 n   [        [        R                  " 5       S-  5      nU R                  nU =R                  S-  sl        SR                  [	        U5      [	        U5      SS45      n[
        R                  R                  U R                  SU5      n[
        R                  R                  U R                  X5      n[        USSS	9 nU R                  R                  U5        U(       a  UR                  [        5        UR                  [        5        S S S 5         [
        R                  " Xg5        U R                  R                  U5        U$ ! , (       d  f       NB= f! [        [         4 a@    [        US5       nUR                  [        5        S S S 5         Mk  ! , (       d  f        Nz= ff = f)
Ni@B rO   .
myhostnamemydomainr  r$  rU   rV   )r.  r)  r  r  strr*   r+   r  r  r  rY   r   FROM_DUMMY_MESSAGElinkAttributeErrorPermissionError)	r   dirr$  tr?  r  tmpnamenewnamefps	            r%   createMessageMaildirTestCase.createMessage!	  s-   		g%&mm88SVSX|ZHI'',,tyy%:'',,tyy#8'31RNN!!'*HH]#	 2
	(GGG% 	g& 21 0 	(gs#r' $###	(s7   
AE E$ 
E!$F4 F!F4!
F0	+F40F4c                     [         R                  " [        R                  5      U l        U R                  U R                  R                  5       5        U R                  U R                  R                  5       5        g r   )r   r  r   rC   r$  r   r  rG   s    r%   test_empty_maildir"MaildirTestCase.test_empty_maildir5	  sN     OOI$4$45	 	$))..*+$))..*+r(   c                 n   U R                  S5        [        R                  " [        R                  5      U l        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        g )Nr  	r+  r   r  r   rC   r$  r;  r  r   rG   s    r%   test_nonempty_maildir_cur)MaildirTestCase.test_nonempty_maildir_cur?	  q    5!OOI$4$45	TYY^^-.$))..*+$))..*+r(   c                 n   U R                  S5        [        R                  " [        R                  5      U l        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        g )Nr  r1  rG   s    r%   test_nonempty_maildir_new)MaildirTestCase.test_nonempty_maildir_newG	  r4  r(   c                    U R                  S5        U R                  S5        [        R                  " [        R                  5      U l        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        U R                  U R
                  R                  5       5        g )Nr  r  r1  rG   s    r%   test_nonempty_maildir_both*MaildirTestCase.test_nonempty_maildir_bothO	  s    5!5!OOI$4$45	TYY^^-.TYY^^-.$))..*+$))..*+r(   )r  r  r  r$  N)F)r4   r5   r6   r7   rH   rL   r+  r.  r2  r6  r9  r>   r3   r(   r%   r  r  
	  s%    #(,,,,r(   r  aK  Return-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   ))zReturn-Pathz<gkj@gregorykjohnson.com>)zX-Original-Togkj+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))r<  z gkj@sundance.gregorykjohnson.com)r=  zfrom 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))r=  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))r=  ztby andy.gregorykjohnson.com (Postfix, from userid 1000)
        id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT))r(  zWed, 13 Jul 2005 17:23:11 -0400)r.  z."Gregory K. Johnson" <gkj@gregorykjohnson.com>)r)  zgkj@gregorykjohnson.com)r*  zSample message)zMime-Versionz1.0)zContent-Typez,multipart/mixed; boundary="NMuMz9nt05w80d4+")zContent-Dispositioninline)r&  zMutt/1.5.9i)z1This is a sample message.

--
Gregory K. Johnson
zRH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs
3FYlAAAA
c                       \ rS rSrS rSrg)MiscTestCasei	  c                 <    [         R                  " U [        SS1S9  g )Nr   fcntl)not_exported)r   check__all__r   rG   s    r%   test__all__MiscTestCase.test__all__	  s    T7+4g*>	@r(   r3   N)r4   r5   r6   r7   rE  r>   r3   r(   r%   r@  r@  	  s    @r(   r@  c                      [         R                  " 5         [        R                  " 5       (       a  [        R
                  " 5         g g r   )r   reap_childrenr   hunting_for_refleaksr  _clear_internal_cachesr3   r(   r%   tearDownModulerK  	  s.    **,,""$ -r(   __main__)?r*   r  r)  r'  r4  r   email.messager7  r^   r   testr   test.supportr   r   r   r   test.support.testcaser   r  r  r   r  has_gethostnameSkipTestr
   r@   TestCaser  r  r  r  r"  r8  r=  rp  r  r  r  r  r  r  r  r  r  r  r3  r5  r  r  r  r!  r"  r  r\   rk   r`   r   r   r@  rK  r4   mainr3   r(   r%   <module>rU     s   	 
      	 	   & " ' & 1     $$


9
::% %8z$( z$z!DHh&7&7 !DH{%+x00 {%|O+k O+dKO K\+/}h// +/\L}h// L
Z>[(++ Z>zE!2!2 ED '// 	1h'' 	1S(H-- SlG h&7&7 G T2! 2!j#*K #
EK!2!2 E>4;{H$5$5 4;n#*K #
INHh&7&7 INXP& P&f.9%x'8'8 .9b0H'):): 0Hj 	BM,h'' M,d-^ (..w7 4 @8$$ @% zMMO r(   