403Webshell
Server IP : 118.27.122.248  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux web0264.sh.tyo1 4.18.0-553.79.1.lve.el7h.x86_64 #1 SMP Wed Oct 15 16:34:46 UTC 2025 x86_64
User : c9415830 ( 11735)
PHP Version : 8.4.17
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python36/lib64/python3.6/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python36/lib64/python3.6/test/__pycache__/test_mailbox.cpython-36.pyc
3

�w2_�j�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
mZddlZddl
Z
ddlZddlZGdd�d�ZGdd�de�ZGdd�deej�ZGd	d
�d
eej�ZGdd�de�ZGd
d�de�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�deej�ZGdd�d�ZGdd�dej�ZGdd�dej�ZGdd�deej�ZGdd �d eej�Z Gd!d"�d"�Z!Gd#d$�d$e!e�Z"Gd%d&�d&eej�Z#Gd'd(�d(eej�Z$Gd)d*�d*e!e�Z%Gd+d,�d,eej�Z&Gd-d.�d.e�Z'Gd/d0�d0e'ej�Z(Gd1d2�d2e'ej�Z)d3Z*d4Z+Gd5d6�d6ej�Z,d7Z-e-j.d8�Z/d9d:d:d;d<d=d>d?d@dAdBdCdDdEdFdGdH�Z0dPZ1GdKdL�dLej�Z2dMdN�Z3e4dOk�r�e3�dS)Q�N)�supportc@s8eZdZejejejejejej	fZ
dd�Zdd�ZdS)�TestBasecCs�|j|tjj�|j|tj�x&tj�D]\}}|j||j|��q(W|j	|j
��|jt|j
��tt��xLtt�D]@\}}|j
|�}|j|tjj�|j|tj�|j|j
�|�qvWdS)N)�assertIsInstance�email�message�Message�mailbox�_sample_headers�items�assertInZget_all�
assertTrue�is_multipart�assertEqual�len�get_payload�_sample_payloads�	enumerateZassertNotIsInstance)�self�msg�key�value�iZpayload�part�r�6/opt/alt/python36/lib64/python3.6/test/test_mailbox.py�
_check_samples
zTestBase._check_samplecCs2tjj|�rtj|�ntjj|�r.tj|�dS)N)�os�path�isdirr�rmtree�exists�unlink)r�targetrrr�_delete_recursively&szTestBase._delete_recursivelyN)
�__name__�
__module__�__qualname__rr�MaildirMessage�mboxMessage�	MHMessage�BabylMessage�MMDFMessage�all_mailbox_typesrr#rrrrrs
rc@s�eZdZdZdZdZdd�Zdd�Zdd�Ze	j
d	�Zd
d�Zdd
�Z
dd�Zdd�Ze	j
d�jd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Zd"d#�Zd$d%�Zdcd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/d0�Zd1d2�Z d3d4�Z!d5d6�Z"d7d8�Z#d9d:�Z$d;d<�Z%d=d>�Z&d?d@�Z'dAdB�Z(dCdD�Z)dddEdF�Z*dGdH�Z+dedIdJ�Z,dKdL�Z-dfdMdN�Z.dOdP�Z/dgdQdR�Z0dSdT�Z1dUdV�Z2dWdX�Z3dYdZ�Z4d[d\�Z5d]d^�Z6d_d`�Z7dadb�Z8dS)h�TestMailboxNzFrom: foo

%s
cCs&tj|_|j|j�|j|j�|_dS)N)r�TESTFN�_pathr#�_factory�_box)rrrr�setUp5szTestMailbox.setUpcCs|jj�|j|j�dS)N)r1�closer#r/)rrrr�tearDown:s
zTestMailbox.tearDownc
Cs�g}|j|jj|jd��|jt|j�d�|j|jjtjt���|jt|j�d�|j|jjt	j
t���|jt|j�d�|j|jjtjt
���|jt|j�d�|j|jjt��|jt|j�d�|j|jjt
��|jt|j�d�|jt��$|j|jjtjtjt
����WdQRX|jt|j�d�|j|jj|d�|jd�x"d	D]}|j|j||��q^WdS)
Nr�������)r5r6r7r8r9r:)�appendr1�add�	_templaterrrr�_sample_messager�message_from_string�io�BytesIO�_bytes_sample_message�assertWarns�DeprecationWarning�
TextIOWrapper�
get_stringr)r�keysrrrr�test_add>s(

zTestMailbox.test_addu{            From: foo
            Subject: Falinaptár házhozszállítással. Már rendeltél?

            0
            cCsF|jj|jjd��}|jt|j�d�|j|jj|�|jjd��dS)Nzlatin-1r5)r1r=�
_nonascii_msg�encoderr�	get_bytes)rrrrr�"test_add_invalid_8bit_bytes_header\sz.TestMailbox.test_add_invalid_8bit_bytes_headercCs8|jj�d}|jj|jd��}|j|jj|�d�dS)Nr5zlatin-1zZSubject: =?unknown-8bit?b?RmFsaW5hcHThciBo4Xpob3pzeuFsbO104XNzYWwuIE3hciByZW5kZWx06Ww/?=

)rJ�
splitlinesr1r=rKrrG)rZsubjrrrr�&test_invalid_nonascii_header_as_stringbsz2TestMailbox.test_invalid_nonascii_header_as_stringc
CsN|jtd��|jj|j�WdQRX|jj�|jt|j�d�|j�dS)Nz
ASCII-onlyr)	�assertRaisesRegex�
ValueErrorr1r=rJ�flushrr�assertMailboxEmpty)rrrr�&test_add_nonascii_string_header_raisesis

z2TestMailbox.test_add_nonascii_string_header_raisesc
Csldd�}tj|tjjd|�|jt��|jjtj	d��WdQRX|j
t|j�d�|jj�|j
�dS)Nc_std��dS)Nza fake error)�	Exception)�args�kwrrr�raiserqszETestMailbox.test_add_that_raises_leaves_mailbox_empty.<locals>.raiserZflattenuFrom: Alphösor)rZpatchr�	generatorZBytesGenerator�assertRaisesrUr1r=r@rrr3rS)rrXrrr�)test_add_that_raises_leaves_mailbox_emptyps
z5TestMailbox.test_add_that_raises_leaves_mailbox_emptyu0        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

        Да, они летят.
        zutf-8cCsv|jj|j�}|j|jj|�|j�|jj|��&}|j|j�|jjdtj	j
���WdQRX|j|j|j�d�dS)N�
uДа, они летят.
)r1r=�_non_latin_bin_msgrrL�get_file�read�replacer�lineseprKr)rr�frrr�test_add_8bit_body�s
zTestMailbox.test_add_8bit_bodycCsZtjd��&}|jt�|jd�|jj|�}WdQRX|j|jj|�j	d�tj	d��dS)Nzwb+rr\)
�tempfile�
TemporaryFile�writerC�seekr1r=rrL�split)rrbrrrr�test_add_binary_file�s

z TestMailbox.test_add_binary_filecCs^tjd��(}|j|j�|jd�|jj|�}WdQRX|j|jj|�j	d�|jj	d��dS)Nzwb+rr\)
rdrerfr]rgr1r=rrLrh)rrbrrrr�test_add_binary_nonascii_file�s
z)TestMailbox.test_add_binary_nonascii_filecCsptjd��<}|jt�|jd�|jt��|jj|�}WdQRXWdQRX|j	|jj
|�jd�tjd��dS)Nzw+rr\)
rdrerfr?rgrDrEr1r=rrLrhrC)rrbrrrr�test_add_text_file_warns�s

 z$TestMailbox.test_add_text_file_warnscCsL|jt��|jjtj|jd��}WdQRX|j|jj|�|jd�dS)N�0)	rDrEr1r=rA�StringIOr>rrG)rrrrr�test_add_StringIO_warns�s"z#TestMailbox.test_add_StringIO_warnscCsj|jt��2|jtd��|jjtj|j��WdQRXWdQRX|j	t
|j�d�|jj�|j�dS)Nz
ASCII-onlyr)
rDrErPrQr1r=rArmrJrrr3rS)rrrr�!test_add_nonascii_StringIO_raises�s(
z-TestMailbox.test_add_nonascii_StringIO_raisescCs|j|jj�dS)N)�_test_remove_or_delitemr1�remove)rrrr�test_remove�szTestMailbox.test_removecCs|j|jj�dS)N)rpr1�__delitem__)rrrr�test_delitem�szTestMailbox.test_delitemcsd�jj�jd���jj�jd���jt�j�d�����jt�j�d��jt��fdd���jt��fdd���j�jj���jd��jj�jd���jt�j�d�����jt�j�d��jt��fdd���jt��fdd���j�jj���jd�����jt�j�d��jt��fd	d���jt��fd
d��dS)Nrr5r6cs
�j�S)N)r1r)�key0rrr�<lambda>�sz5TestMailbox._test_remove_or_delitem.<locals>.<lambda>cs���S)Nrr)ru�methodrrrv�scs
�j�S)N)r1r)�key2rrrrv�scs���S)Nrr)rxrwrrrv�scs
�j�S)N)r1r)�key1rrrrv�scs���S)Nrr)ryrwrrrv�s)r1r=r>rrrZ�KeyErrorrG)rrwr)ruryrxrwrrrp�s&z#TestMailbox._test_remove_or_delitem�
cs��jj�jd���jj�jd�}�jt�j�d��jj���jt�j�d��jt��fdd���jj���jt�j�d��jt��fdd��dS)Nrr5r6cs
�j�S)N)r1r)rurrrrv�sz*TestMailbox.test_discard.<locals>.<lambda>cs
�j�S)N)r1r)rurrrrv�s)r1r=r>rr�discardrZrz)r�repetitionsryr)rurr�test_discard�szTestMailbox.test_discardcCs�|jj|jd�}|jj|�}|j|dd�|j|j�d�|j|jjd��|j|jjdd�d�|jj�|j	|j
�|_|jj|jd�}|jj|�}|j|dd�|j|j�d�dS)Nr�from�fooz0
Fr5z1
)r1r=r>�getrr�assertIsNone�assertIsr3r0r/)rrurryrrr�test_get�s
zTestMailbox.test_getcsv�jj�jd���j�}�j|dd��j|j�d��jt�fdd���jj���jt��fdd��dS)Nrrr�z0
cs
�jdS)Nr�)r1r)rrrrv�sz*TestMailbox.test_getitem.<locals>.<lambda>cs
�j�S)N)r1r)rurrrrv�s)r1r=r>rrrZrzr|)rrr)rurr�test_getitem�s
zTestMailbox.test_getitemcCsn|jj|jd�}|jjt�}|jj|�}|j|tj�|j|dd�|j|j	�d�|j
|jj|��dS)Nrrr�z0
)r1r=r>r?�get_messagerrrrrr)rrury�msg0rrr�test_get_message�szTestMailbox.test_get_messagecCsV|jj|jd�}|jjt�}|j|jj|�|jdjd��|j|jj|�t�dS)Nr�ascii)r1r=r>r?rrLrKrC)rruryrrr�test_get_bytess
zTestMailbox.test_get_bytescCs\|jj|jd�}|jjt�}|j|jj|�|jd�|j|jj|�jd�tjd��dS)Nr�
)r1r=r>r?rrGrh)rruryrrr�test_get_strings
zTestMailbox.test_get_stringcCs�|jj|jd�}|jjt�}|jj|��}|j�}WdQRX|jj|��}|j�}WdQRX|j|jd�jt	j
d�|jd�|j|jd�jt	j
d�t�dS)Nrr�r�)r1r=r>r?r^r_r�decoder`rra)rrury�fileZdata0Zdata1rrr�
test_get_fileszTestMailbox.test_get_filecCs,|jjt�}|jj|�}|j�|j�dS)N)r1r=r?r^r3)rrrbrrr�!test_get_file_can_be_closed_twice!sz-TestMailbox.test_get_file_can_be_closed_twicecCs|j|jjddd�dS)NTF)�do_keys�	do_values)�_check_iterationr1�iterkeys)rrrr�
test_iterkeys(szTestMailbox.test_iterkeyscCs|j|jjddd�dS)NTF)r�r�)r�r1rH)rrrr�	test_keys,szTestMailbox.test_keyscCs|j|jjddd�dS)NFT)r�r�)r�r1�
itervalues)rrrr�test_itervalues0szTestMailbox.test_itervaluescCs|j|jjddd�dS)NFT)r�r�)r�r1�__iter__)rrrr�	test_iter5szTestMailbox.test_itercCs|j|jjddd�dS)NFT)r�r�)r�r1�values)rrrr�test_values:szTestMailbox.test_valuescCs|j|jjddd�dS)NT)r�r�)r�r1�	iteritems)rrrr�test_iteritems>szTestMailbox.test_iteritemscCs|j|jjddd�dS)NT)r�r�)r�r1r
)rrrr�
test_itemsCszTestMailbox.test_itemsc
Cs@x|�D]}|jd�qWgg}}x8t|�D],}|j|jj|j|��|j|j|�q.W|rt|rtt|��}	nH|r�|r�t|��}
n2gg}	}
x&|�D]\}}|	j|�|
j|�q�W|r�|jt|�t|	��|jt	|�t	|	��|�r<d}x8|
D]0}|j|dd�|j
t|j��|�|d7}q�W|jt|�|�dS)Nz	Not emptyrrr�r5)
Zfail�ranger<r1r=r>�listrr�set�
assertLess�intr)
rrwr�r�r}rrHr�rZ
returned_keysZreturned_valuesr�countrrrr�Gs0





zTestMailbox._check_iterationcCs�|jd|j�|jj|jd�}|j||j�|jd|j�|jj|jd�}|j||j�|j||j�|jd|j�|jj|�|j||j�|j||j�|jd|j�|jj|�|j||j�|j||j�|jd|j�dS)Nr�rr5)�assertNotInr1r=r>rrq)rruryrrr�
test_containsbs zTestMailbox.test_containscCs�g}xPt|�D]D}|jt|j�|�|j|jj|j|��|jt|j�|d�qWxPt|�D]D}|jt|j�||�|jj||�|jt|j�||d�q`WdS)Nr5)r�rrr1r<r=r>rq)rr}rHrrrr�test_lenuszTestMailbox.test_lencs^�jj�jd�}�j�jj|��jd��jj�jd�}�j�jj|��jd��jd�j|<�j�jj|��jd��jd�j|<�j�jj|��jd�t�j|<�j�j|��j|�j|<�j�j|��jd�j|<�j�jj|��jd��j�j|��jt�fdd���jt�fdd���jt	�j�d�dS)	Nz
original 0z
original 1z	changed 0z	changed 1cs�jjdd�S)Nr��bar)r1�__setitem__r)rrrrv�sz+TestMailbox.test_set_item.<locals>.<lambda>cs
�jdS)Nr�)r1r)rrrrv�sr6)
r1r=r>rrGr?rrZrzr)rruryr)rr�
test_set_item�s0
zTestMailbox.test_set_itemcs�g}x"t|�D]}�jj�j|�qWx.t|�D]"\}��j�jj���j|�q2W�jj��jt�j�d�x*t|�D]\}��j	t
��fdd��q~WdS)Nrcs�jj��S)N)r1rGr)rrrrrv�sz(TestMailbox.test_clear.<locals>.<lambda>)r�r1r=r>rrrG�clearrrZrz)r�
iterationsrHrr)rrr�
test_clear�s
zTestMailbox.test_clearcCs|jj|jd�}|j||j�|jj|jd�}|j||j�|j|jj|�j�d�|j||j�|j||j�|jj|jd�}|j||j�|j|jj|�j�d�|j||j�|j||j�|j|jj|�j�d�|j||j�|jt|j�d�dS)Nrr5z0
r6z2
z1
)	r1r=r>rr�poprr�r)rruryrxrrr�test_pop�szTestMailbox.test_popcs�g}x(td�D]}|j�jj�j|��qWg}xZtd�D]N}�jj�\�}�j�|��j�|�|j���jt	|j
��|j���q<W�jt�j�d�x"|D]��j
t��fdd��q�WdS)Nr{rcs
�j�S)N)r1r)rrrrrv�sz*TestMailbox.test_popitem.<locals>.<lambda>)r�r<r1r=r>�popitemrr�rr�r�indexrrZrz)rr�rHr�seenrr)rrr�test_popitem�s

zTestMailbox.test_popitemcs��jj�jd���jj�jd�}�jj�jd�}�jj��jd|ti��jt�j�d��j�jj���jd��j�jj|��jd��j�j|��jj|�jdf|�jdf��jdfg��jt�j�d��j�jj���jd��j�jj|��jd��j�jj|��jd��j	t
��fdd	���jt�j�d��j�jj���jd��j�jj|��jd��j�jj|��jd�dS)
Nz
original 0z
original 1z
original 2z	changed 0r7z	changed 2z	changed 1cs�jjdd��jdi�S)Nr�r�z	changed 0)r1�updater>r)rurrrrv�s
z)TestMailbox.test_update.<locals>.<lambda>)r1r=r>r�r?rrrGrrZrz)rryrxr)rurr�test_update�s<
zTestMailbox.test_updatecCs|j|jjd�dS)NT)�_test_flush_or_closer1rR)rrrr�
test_flush�szTestMailbox.test_flushcCsZ|jj|jd�|jj|jd�|jj�|jj�|jj�|jj�|jj�dS)Nrr5)r1r=r>rRr�)rrrr�test_popitem_and_flush_twice�s



z(TestMailbox.test_popitem_and_flush_twicecCsZ|jtjj|j���|jj�|jtjj|j���|jj�|jtjj|j���dS)N)	�assertFalserrr �_get_lock_pathr1�lockr�unlock)rrrr�test_lock_unlock�s


zTestMailbox.test_lock_unlockcCs|j|jjd�dS)NF)r�r1r3)rrrr�
test_closeszTestMailbox.test_closecs��fdd�td�D�}�jj|d��jj|d��jj|d��j}|�|r`�jj��j�j��_�jj�}�jt|�d�x |D]}�j	�jj
|�|�q�W|j�dS)Ncsg|]}�j|�qSr)r>)�.0r)rrr�
<listcomp>sz4TestMailbox._test_flush_or_close.<locals>.<listcomp>r7rr5r6)r�r1r=r3r0r/rHrrrrG)rrwZshould_call_close�contentsZoldboxrHrr)rrr�s


z TestMailbox._test_flush_or_closecsvxRtjt�ttjt�fD]8}tj���jj|���j�j	�tj
dtjj
���qWtj���jt��fdd��dS)Nr\cs�jjd��S)N)r1�
_dump_messager)�outputrrrrv!sz/TestMailbox.test_dump_message.<locals>.<lambda>)rr@r?rArBrCr1r�r�getvaluer`rrarKrZ�	TypeError)r�inputr)r�rr�test_dump_messages

zTestMailbox.test_dump_messagecCs
|jdS)Nz.lock)r/)rrrrr�#szTestMailbox._get_lock_path)r{)r{)r{)r{)r{)9r$r%r&ZmaxDiffr0r>r2r4rI�textwrap�dedentrJrMrOrTr[rKr]rcrirjrkrnrorrrtrpr~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrr-.sj

	







"r-c@seZdZdd�ZdS)�TestMailboxSuperclasscsRtjd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fd	d��|jt�fd
d��|jt�fdd��|jt�fdd��|jt�fd
d��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��|jt�fdd��dS) Nrcs
�jd�S)N�)r=r)�boxrrrv-sz;TestMailboxSuperclass.test_notimplemented.<locals>.<lambda>cs
�jd�S)Nr�)rqr)r�rrrv.scs
�jd�S)Nr�)rsr)r�rrrv/scs
�jd�S)Nr�)r|r)r�rrrv0scs�jdd�S)Nr�)r�r)r�rrrv1scs�j�S)N)r�r)r�rrrv2scs�j�S)N)rHr)r�rrrv3scs�j�j�S)N)r��__next__r)r�rrrv4scs�j�j�S)N)r�r�r)r�rrrv5scs�j�S)N)r�r)r�rrrv6scs�j�j�S)N)r�r�r)r�rrrv7scs�j�S)N)r
r)r�rrrv8scs
�jd�S)Nr�)r�r)r�rrrv9scs
�jd�S)Nr�)�__getitem__r)r�rrrv:scs
�jd�S)Nr�)r�r)r�rrrv;scs
�jd�S)Nr�)rGr)r�rrrv<scs
�jd�S)Nr�)rLr)r�rrrv=scs
�jd�S)Nr�)r^r)r�rrrv>scsd�kS)Nr�rr)r�rrrv?scs
�jd�S)Nr�)�__contains__r)r�rrrv@scs�j�S)N)�__len__r)r�rrrvAscs�j�S)N)r�r)r�rrrvBscs
�jd�S)Nr�)r�r)r�rrrvCscs�j�S)N)r�r)r�rrrvDscs
�jd�S)Nr��r�r�)r�)r�r)r�rrrvEscs�j�S)N)rRr)r�rrrvFscs�j�S)N)r�r)r�rrrvGscs�j�S)N)r�r)r�rrrvHscs�j�S)N)r3r)r�rrrvIs)r�MailboxrZ�NotImplementedError)rr)r�r�test_notimplemented*s<
z)TestMailboxSuperclass.test_notimplementedN)r$r%r&r�rrrrr�(sr�c@seZdZd7dd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zd8dd�Zdd�Z
dd�Zdd�Zdd�Zd9dd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zejeed-�d.�ejeed/�d0�d1d2���Zejeed-�d.�ejeed/�d0�d3d4���Zd5d6�ZdS):�TestMaildirNcCstj||�S)N)r�Maildir)rr�factoryrrrrvNszTestMaildir.<lambda>cCs*tj|�tjdkstjdkr&d|j_dS)N�nt�cygwin�!)r-r2r�name�sys�platformr1�colon)rrrrr2Ps
zTestMaildir.setUpcCs"|jtjtjj|jd��g�dS)N�tmp)rr�listdirr�joinr/)rrrrrSUszTestMaildir.assertMailboxEmptycCs`tj|jd�}|jd�|jd�|jj|�}|jtj	j
tj	j|jdd||jj
f���dS)Nr�curr�z%s%sfoo)rr'r>�
set_subdir�set_infor1r=rrrr r�r/r�)rrrrrr�test_add_MMXs

zTestMaildir.test_add_MMcCsntj|jd�}|jd�|jd�|jj|�}|jj|�}|j|tj�|j	|j
�d�|j	|j�d�dS)Nrr��RF�FR)rr'r>r��	set_flagsr1r=r�rr�
get_subdir�	get_flags)rrr�msg_returnedrrr�test_get_MMas

zTestMaildir.test_get_MMcCstj|jd�}|jd�|jj|�}|jj|�}|j|j�d�|j|j	�d�tj|jd�}||j|<|jj|�}|j|j�d�|j|j	�d�|j|j
�d�tj|jd�}|jd	�||j|<|jd
|j|<|jj|�}|j|j�d�|j|j	�d�|j|j
�d�dS)
NrZTP�newZPTr5r�z1
r6z2,Sr7�Sz3
)rr'r>r�r1r=r�rr�r�rr�)rr�rr��msg1�msg2rrr�test_set_MMls(



zTestMaildir.test_set_MMcCsvtj|jd�}|jd�|jd�|jj|�}Gdd�dtj�}tj|j|d�}|jj	|_	|j
|�}|j||�dS)Nrr�r�c@seZdZdS)z8TestMaildir.test_consistent_factory.<locals>.FakeMessageN)r$r%r&rrrr�FakeMessage�sr�)r�)rr'r>r�r�r1r=r�r/r�r�r)rrrr�r�r�rrr�test_consistent_factory�s



z#TestMaildir.test_consistent_factorycCsH|j�tj|j�|_|j�|j|j�|j|jdd�|_|j�dS)N)r�)r4rr�r/r1�
_check_basicsr#r0)rrrr�test_initialize_new�szTestMaildir.test_initialize_newcCsN|j�x*dD]"}tjtjjtjj|j|���qWtj|j�|_	|j
�dS)Nr�r�r�r�)r�r�r�r�)r4r�mkdirr�normpathr�r/rr�r1r�)r�subdirrrr�test_initialize_existing�s

"z$TestMaildir.test_initialize_existingcCsr|j|jjtjj|j��|j|jj|�xBdD]:}tjj|j|�}tj|�tj	}|j
tj|�d|�q0WdS)Nr�r�r�r�zNot a directory: '%s')r�r�r�r�)rr1r/rr�abspathr0r��stat�ST_MODEr�S_ISDIR)rr�r�r�moderrrr��s
zTestMaildir._check_basicscCsX|jjd�|jjd�|jjd�|jt|jj��d�|jt|jj��td��dS)N�one�two�threer7)rrr)r1�
add_folderrr�list_foldersr�)rrrr�test_list_folders�szTestMaildir.test_list_folderscCsv|jjd�|jjd�}|j|jd�|jtjjtjj	|j
d���|jjd�}|j|j|j
�d�|jd�dS)Nzfoo.barr�z.foo.barr)r1r�
get_folderr=r>rrrrr�r/rrGrH)r�folder0�folder1rrr�test_get_folder�szTestMaildir.test_get_foldercCs4|jjd�|jjd�|jt|jj��d�|jt|jj��td��|jjd�|jt|jj��d�|jt|jj��td��|jjd�|jt|jj��d�|jt|jj��td	��|jjd�|jt|jj��d�|jt|jj��td
��|jjd�|jt|jj��d�|j|jj�g�dS)Nrrr6r5rr)rr)r)rr)r)r1rrrrr��
remove_folder)rrrr�test_add_and_remove_folders�s z'TestMaildir.test_add_and_remove_folderscCs�tjj|jdd�}tjj|jdd�}t|d��}|jd�WdQRXt|d��}|jd�WdQRX|jj�|jtjj	|��|jtjj	|��tj
|�}tj|tj�dd|j
f�|jj�|jtjj	|��|jtjj	|��dS)Nr�r�r��w�@i@�r6)rrr�r/�openrfr1Zcleanrr r��utime�time�st_mtimer�)rZfoo_pathZbar_pathrbZfoo_statrrr�
test_clean�s



zTestMaildir.test_cleanr{c
Cstj�}d|kr|jdd�}d|kr0|jdd�}tj�}tjd�}d}�x�t|�D�]�}|jj	�}tj
j|j�\}}	|j
|tj
jtj
j|jd��d|�|j|	�}
|j|
d|	�|
j�}|dk	�r�|jt|d	�t|d	�d
|d	|d	f�t|d	�t|d	�k�r<|jt|d�t|d�d|d|df�|j
t|d
�|d|d
|f�|j
t|d�t|d�dd|d|df�|j
|d|d|d|f�|}|jt�|jd	�|j
|j�t�|j�qRWttjtj
j|jd���}|j
||d||f�dS)N�/z\057�:z\072zF(?P<time>\d+)\.M(?P<M>\d{1,6})P(?P<P>\d+)Q(?P<Q>\d+)\.(?P<host>[^:/]*)r�zFile in wrong location: '%s'zInvalid file name: '%s'rz'Non-monotonic seconds: '%s' before '%s'r5z,Non-monotonic milliseconds: '%s' before '%s'r6z(Process ID mismatch: '%s' should be '%s'r7z(Non-sequential counter: '%s' before '%s'r8z'Host name mismatch: '%s' should be '%s'z%Wrong file count: '%s' should be '%s')�socketZgethostnamer`r�getpid�re�compiler�r1Z_create_tmprrhr�rr�r�r/�match�assertIsNotNone�groupsZassertGreaterEqualr�rfrCrgr_r3rr�)
rr}Zhostname�pid�patternZprevious_groups�xZtmp_file�head�tailrrZ
file_countrrr�test_create_tmp�sV






zTestMaildir.test_create_tmpc
Cs|j|jji�|jj|jd�}|jj|jd�}|j|jji�|jj�|j|jj|tjjd|�|tjjd|�i�|jj|jd�}|j|jj|tjjd|�|tjjd|�i�|jj�|j|jj|tjjd|�|tjjd|�|tjjd|�i�dS)Nrr5r�r6)	rr1�_tocr=r>�_refreshrrr�)rruryrxrrr�test_refreshs

zTestMaildir.test_refreshcCsx|jj|jd�}|jj|jd�}|j|j�|_|j|jji�d|j_|jj�|jt	|jjj
��t	||g��dS)Nrr5r7���)r1r=r>r0r/rr"�_skewfactorr#�sortedrH)rruryrrr� test_refresh_after_safety_period$s
z,TestMaildir.test_refresh_after_safety_periodcs��jt�fdd���jj�jd���j�jj��tjj	d���tj
tjj	�jd����j�jj�tjj	d��i��jj
��jt��fdd���j�jji�dS)Ncs�jjd�S)Nr�)r1�_lookupr)rrrrv9sz)TestMaildir.test_lookup.<locals>.<lambda>rr�cs�jj��S)N)r1r)r)rurrrrvAs)rZrzr1r=r>rr)rrr�rqr/r"rR)rr)rurr�test_lookup7s
zTestMaildir.test_lookupcCs|jj�|jj�dS)N)r1r�r�)rrrrr�Ds
zTestMaildir.test_lock_unlockcCsLdd�}|j|j|d�}|jd�}|j|j|�|jd�}|j|j|�dS)NcSsdS)Nr)�srrr�
dummy_factoryLsz.TestMaildir.test_folder.<locals>.dummy_factory)r�r)r0r/rr�r)rr,r�ZfolderZ
folder1_aliasrrr�test_folderIs

zTestMaildir.test_foldercCsPx"td�D]}|jjtjt��q
Wtjtjj	|j
dd��x|jD]}qDWdS)Nr{r�z	stray-dir)r�r1r=rrr?rr�rr�r/)rrrrrr�test_directory_in_folderUs
z$TestMaildir.test_directory_in_folder�umaskztest needs os.umask()r�ztest needs os.stat()cCsntj|jd�}tjd�}z|jj|�}Wdtj|�Xtjj|j	|jj
|��}tj|�j}|j
|d@�dS)Nr�I)rr'r>rr/r1r=rr�r/r)r��st_moder�)rr�
orig_umaskrrr�rrr�test_file_permissionsbs
z!TestMaildir.test_file_permissionscCsZtjd�}z|jjd�}Wdtj|�Xtjj|jd�}tj|�}|j}|j	|d@�dS)Nr�	subfolderZ
maildirfolderr0)
rr/r1rrr�r/r�r1r�)rr2r4r�st�permsrrr�test_folder_file_permsps

z"TestMaildir.test_folder_file_permscs��jj�x4d	D],}tjtjj�jj|�tj�dfd�qWd
�j_�jj	���fdd�}�jj��j
|��tjj�jdd�}tj|�tj
|��jj��j|��dS)Nr�r�r9r6r7cs�jj�k	S)N)r1r"r)�orig_tocrrr�	refreshed�sz*TestMaildir.test_reread.<locals>.refreshedz
stray-file)r�r�r%)r1r#rrrr�r/rr&r"r�rZcreate_empty_filer!r)rr�r9�filenamer)r8rr�test_reread�s





zTestMaildir.test_reread)N)N)r{)r$r%r&r0r2rSr�r�r�r�r�r�r�rr	rrr!r$r(r*r�r-r.�unittest�
skipUnless�hasattrrr3r7r;rrrrr�Ls4
		
		

/


r�c@s eZdZdZdd�Zdd�ZdS)�_TestSingleFilez&Common tests for single-file mailboxescCsrtj|j�j}|jj|jd�|jj�tj|j�j}|j||�|jj	�|j
|j�|_|jt|j�d�dS)Nrr5)rr�r/�st_inor1r=r>rRrr3r0r)rZinode_beforeZinode_afterrrr�test_add_doesnt_rewrite�s

z'_TestSingleFile.test_add_doesnt_rewritecCsttj|j�jdB}tj|j|�|jj|jd�|jj|jd�}|jj|�|jj	�|j
tj|j�j|�dS)Ni�rr5)rr�r/r1�chmodr1r=r>rqrRr)rr�rrrr�test_permissions_after_flush�s
z,_TestSingleFile.test_permissions_after_flushN)r$r%r&�__doc__rArCrrrrr?�sr?cs�eZdZ�fdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	e
jee
d�d�e
jeed�d�dd���Zdd�Z�ZS)�
_TestMboxMMDFcsHt�j�|jj�|j|j�x"tj|jd�D]}tj|�q2WdS)Nz.*)	�superr4r1r3r#r/�globrr!)r�lock_remnant)�	__class__rrr4�s


z_TestMboxMMDF.tearDownc
Cs*t|j��}|j|j�g�WdQRXdS)N)rr/r�	readlines)rrbrrrrS�sz _TestMboxMMDF.assertMailboxEmptycCs<|jjd�}|j|j|j�d�|j|j|j�d�dS)NzFrom foo@bar blah
From: foo

0
zfoo@bar blahz0
)r1r=r�get_fromr)rrrrr�test_add_from_string�sz"_TestMboxMMDF.test_add_from_stringcCs<|jjd�}|j|j|j�d�|j|j|j�d�dS)NsFrom foo@bar blah
From: foo

0
zfoo@bar blahz0
)r1r=rrKr)rrrrr�test_add_from_bytes�sz!_TestMboxMMDF.test_add_from_bytescCs.x(tjtjfD]}|d�}|jj|�}qWdS)NzFrom foo@bar blah
From: foo

0
)rr(r+r1r=)r�class_rrrrr�test_add_mbox_or_mmdf_message�sz+_TestMboxMMDF.test_add_mbox_or_mmdf_messagecs��fdd�td�D�}x|D]}�jj|�qW�jj�tjj�j�}�j�j��_�j	t
�j�d�x&�jj�D]}�j�jj
|�|�qtW�jj��j	|tjj�j��dS)Ncsg|]}�j|�qSr)r>)r�r)rrrr��sz6_TestMboxMMDF.test_open_close_open.<locals>.<listcomp>r7)r�r1r=r3rr�getmtimer/r0rrr�rrG)rr�r�mtimerr)rr�test_open_close_open�s


z"_TestMboxMMDF.test_open_close_openc
Cs�|jjt�x"td�D]}|jj|j|�qW|jjt�|jjj�|jjjd�|jjj�}|jj	�t
|jd��}|j||j��WdQRX|j
|j�|_dS)Nr7r�rb)r1r=r?r�r>�_filerRrgr_r3rr/rr0)rrr�rbrrr�test_add_and_close�s
z _TestMboxMMDF.test_add_and_close�forkzTest needs fork().�
socketpairzTest needs socketpair().cCs�tj�\}}|j|j�|j|j�tj�}|dkrnz,|jj�|jd�|j	d�|jj
�Wdtjd�X|j	d�z|jt
j|jj�Wd|jd�tj|d�\}}X|jj�|jj
�dS)Nr�cr5�p)rrWZ
addCleanupr3rrVr1r��sendZrecvr��_exitrZrZExternalClashError�waitpid)r�c�prZ
exited_pidZstatusrrr�test_lock_conflict
s&





z _TestMboxMMDF.test_lock_conflictcCsnd}|jj|�}|jj�|jj�|j|j�|_|jj�|jj|�}|jj�|j|jj�|jj�dS)NzSubject: sub

body
)	r1r=rRr3r0r/r�rZ_locked)rrryrxrrr�test_relock2s



z_TestMboxMMDF.test_relock)r$r%r&r4rSrLrMrOrRrUr<r=r>rrr_r`�
__classcell__rr)rIrrE�s$rEc@sReZdZddd�Zejeed�d�ejeed�d�dd	���Zd
d�Z	dd
�Z
dS)�TestMboxNcCstj||�S)N)r�mbox)rrr�rrrrvDszTestMbox.<lambda>r/ztest needs os.umask()r�ztest needs os.stat()cCs~zLtjd�}|jj�tj|j�tj|jdd�|_|jjd�|jj�Wdtj|�Xtj	|j�}|j
}|j|d@�dS)N�?T)Zcreater�r0)rr/r1r3r!r/rrcr=r�r1r�)rZ	old_umaskr5r6rrr�test_file_permsFs

zTestMbox.test_file_permscCsHtjj�}d|d<|jd�|jj|�}|jj|�}|j|j�d�dS)Nzjohn@example.com�FromzNo newline at the endzNo newline at the end
)	rrrZset_payloadr1r=r�rr)rrrrrr�test_terminating_newlineZs

z!TestMbox.test_terminating_newlinecCs�|jjd�t|j��"}|j�}|j|dd�d�WdQRX|jjd�t|j��"}|j�}|j|dd�d�WdQRXdS)NzFrom: foo

0r7z0

z
From: foo

0
r%r%)r1r=rr/r_r)rrb�datarrr�test_message_separatordszTestMbox.test_message_separator)N)r$r%r&r0r<r=r>rrergrirrrrrbBs


rbc@seZdZddd�ZdS)�TestMMDFNcCstj||�S)N)rZMMDF)rrr�rrrrvsszTestMMDF.<lambda>)N)r$r%r&r0rrrrrjqsrjc@s^eZdZddd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Zdd�Z	dd�Z
dd�Zdd�ZdS)�TestMHNcCstj||�S)N)rZMH)rrr�rrrrvxszTestMH.<lambda>cCs|jtj|j�dg�dS)Nz
.mh_sequences)rrr�r/)rrrrrSzszTestMH.assertMailboxEmptycCsX|jjd�|jjd�|jjd�|jt|jj��d�|jt|jj��td��dS)Nrrrr7)rrr)r1rrrrr�)rrrrr}szTestMH.test_list_folderscCs�dd�}|j|j|�|_|jjd�}|jjd�}|j|jd�|jtj	j
tj	j|jd���|jjd�}|j|j
|j�d�|jd�|j|j|jj�|j|j|jj�dS)NcSsdS)Nr)r+rrrr,�sz-TestMH.test_get_folder.<locals>.dummy_factoryzfoo.barr�r)r0r/r1rrr=r>rrrrr�rrGrHr�)rr,Z
new_folderrrrrrr	�szTestMH.test_get_foldercCs4|jjd�|jjd�|jt|jj��d�|jt|jj��td��|jjd�|jt|jj��d�|jt|jj��td��|jjd�|jt|jj��d�|jt|jj��td	��|jjd�|jt|jj��d�|jt|jj��td
��|jjd�|jt|jj��d�|j|jj�g�dS)Nrrr6r5rr)rr)r)rr)r)r1rrrrr�r
)rrrrr�s z"TestMH.test_add_and_remove_folderscCs|j|jj�i�tj|jd�}|jd�|jj|�}|j|jj�d|gi�tj|jd�}|jdddg�|jj|�}|j|jj�||g|g|gd��|jdg�||j|<|j|jj�|g|g|g|gd��|jj	|�|j|jj�d|gi�dS)	Nrr�r5r��replied)r�r�rl�flagged)r�r�rlrm)
rr1�
get_sequencesrr)r>�add_sequencer=�
set_sequencesrq)rr�rur�ryrrr�test_sequences�s"

zTestMH.test_sequencescCs6tj|jd�}|jd�|jj|�}|jj|�}dS)Nrr�)rr)r>ror1r=r�)rr�ruZrefmsg0rrr�test_issue2625�s
zTestMH.test_issue2625cCs@tj|jd�}|jj|�}|jj�|jj|�|jj�dS)Nr)rr)r>r1r=r�rqr�)rr�rurrr�test_issue7627�s

zTestMH.test_issue7627c	Cs�tj|jd�}tj|jd�}tj|jd�}tj|jd�}|jddg�|jdg�|jddg�|jddd	g�|jj|�}|jj|�}|jj|�}|jj|�}|j|jj�||||g|g|g|g|gd
��|jj|�|j|jj�|||g|g|g|gd��|jj	�|j|jj
�dddg�|}|d}|d}|j|jj�dddgdgdgdgd��|jj|�}|jj|�}|jj|�}|jj|�}|jj|�|jj|�|jj�|jj	�|jj�|j|jj�ddddd
gdgdgdgd��dS)Nrr5r6r7r��unseenrmr�rl)r�rtrmr�rl)r�rtr�rlr8r9)
rr)r>rpr1r=rrnrqZpackrHr�r�)	rr�r�r�Zmsg3ruryrxZkey3rrr�	test_pack�sL



zTestMH.test_packcCstjj|jd�S)Nz.mh_sequences.lock)rrr�r/)rrrrr��szTestMH._get_lock_path)N)
r$r%r&r0rSrr	rrqrrrsrur�rrrrrkvs
	,rkcs6eZdZd
dd�Zdd�Z�fdd�Zdd	�Z�ZS)�	TestBabylNcCstj||�S)N)rZBabyl)rrr�rrrrv�szTestBabyl.<lambda>c
Cs*t|j��}|j|j�g�WdQRXdS)N)rr/rrJ)rrbrrrrSszTestBabyl.assertMailboxEmptycsHt�j�|jj�|j|j�x"tj|jd�D]}tj|�q2WdS)Nz.*)	rFr4r1r3r#r/rGrr!)rrH)rIrrr4s


zTestBabyl.tearDowncCs�|j|jj�g�tj|jd�}|jd�|jj|�}|j|jj�dg�tj|jd�}|jdddg�|jj|�}|jt	|jj��t	ddg��|jddg�||j|<|jt	|jj��t	dddg��|jj
|�|jt	|jj��t	dg��dS)Nrr�r5r��answeredZblah�filed)rr1�
get_labelsrr*r>�	add_labelr=�
set_labelsr�rq)rr�rur�ryrrr�test_labelss

zTestBabyl.test_labels)N)r$r%r&r0rSr4r|rarr)rIrrv�s
rvc@seZdZdd�Zdd�ZdS)�FakeFileLikeObjectcCs
d|_dS)NF)�closed)rrrr�__init__!szFakeFileLikeObject.__init__cCs
d|_dS)NT)r~)rrrrr3$szFakeFileLikeObject.closeN)r$r%r&rr3rrrrr}sr}c@seZdZdd�Zdd�ZdS)�FakeMailBoxcCs,tjj|ddd��dd�td�D�|_dS)Nr�cSsdS)Nr)r�rrrrv+sz&FakeMailBox.__init__.<locals>.<lambda>cSsg|]
}t��qSr)r})r�rrrrr�,sz(FakeMailBox.__init__.<locals>.<listcomp>r{)rr�rr��files)rrrrr*szFakeMailBox.__init__cCs
|j|S)N)r�)rrrrrr^.szFakeMailBox.get_fileN)r$r%r&rr^rrrrr�(sr�c@seZdZdd�ZdS)�TestFakeMailBoxcCslt�}x"td�D]}|j|j|j�qWxtd�D]}||q4Wx"td�D]}|j|j|j�qNWdS)Nr{)r�r�r�r�r~r)rr�rrrr�test_closing_fd4szTestFakeMailBox.test_closing_fdN)r$r%r&r�rrrrr�2sr�c@sreZdZejZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdd�Z
dd�Zdd�Zdd�Zdd�ZdS)�TestMessagecCstj|_dS)N)rr.r/)rrrrr2BszTestMessage.setUpcCs|j|j�dS)N)r#r/)rrrrr4EszTestMessage.tearDowncCs,tjt�}|j|�}|j|�|j|�dS)N)rr@r?r0�_post_initialize_hookr)r�eMMrrrr�test_initialize_with_eMMHs


z$TestMessage.test_initialize_with_eMMcCs"|jt�}|j|�|j|�dS)N)r0r?r�r)rrrrr�test_initialize_with_stringOs

z'TestMessage.test_initialize_with_stringc	CsNt|jd��8}|jt�|jd�|j|�}|j|�|j|�WdQRXdS)Nzw+r)rr/rfr?rgr0r�r)rrbrrrr�test_initialize_with_fileUs



z%TestMessage.test_initialize_with_filec	CsNt|jd��8}|jt�|jd�|j|�}|j|�|j|�WdQRXdS)Nzwb+r)rr/rfrCrgr0r�r)rrbrrrr� test_initialize_with_binary_file^s



z,TestMessage.test_initialize_with_binary_filecCsn|j�}|j|�|j|tjj�|j|tj�|j||j�|j|j�g�|j	|j
��|j|j��dS)N)
r0r�rrrrrrrHr�r
r�r)rrrrr�test_initialize_with_nothinggs
z(TestMessage.test_initialize_with_nothingcs�jt�fdd��dS)Ncs�jt��S)N)r0�objectr)rrrrvtsz9TestMessage.test_initialize_incorrectly.<locals>.<lambda>)rZr�)rr)rr�test_initialize_incorrectlyrsz'TestMessage.test_initialize_incorrectlycCs>tjt�}|jt�}x$|jD]}|j||jdj|��qWdS)Nz{} attribute does not exist)rr@r?r0�__dict__r�format)rr�r�attrrrr�test_all_eMM_attribues_existvs



z(TestMessage.test_all_eMM_attribues_existcCs*tjt�}|j�}|j|�|j|�dS)N)rr@r?r0Z_become_messager)rr�rrrr�test_become_message~s

zTestMessage.test_become_messagecsL|j��x|jD]}|���j��qWtjj��|jt��fdd��dS)Ncs
�j��S)N)�_explain_tor)r�	other_msgrrrv�sz-TestMessage.test_explain_to.<locals>.<lambda>)r0r,r�rrrrZr�)rrNr)rr�r�test_explain_to�s
zTestMessage.test_explain_tocCsdS)Nr)rrrrrr��sz!TestMessage._post_initialize_hookN)r$r%r&rrr0r2r4r�r�r�r�r�r�r�r�r�r�rrrrr�>s		
r�c@sBeZdZejZdd�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
S)�TestMaildirMessagecCs |j|jd�|j|jd�dS)Nr�r�)rZ_subdirZ_info)rrrrrr��sz(TestMaildirMessage._post_initialize_hookcs�tjt��|j�j�d��jd�|j�j�d��jd�|j�j�d�|jt�fdd��|j�j�d��jd�|j�j�d�|j��dS)Nr�r�cs
�jd�S)Nr�)r�r)rrrrv�sz0TestMaildirMessage.test_subdir.<locals>.<lambda>)	rr'r?rr�r�rZrQr)rr)rr�test_subdir�s



zTestMaildirMessage.test_subdircCs�tjt�}|j|j�d�|j|j�d�|jd�|j|j�d�|j|j�d�|jd�|j|j�d�|jd�|j|j�d�|jd�|j|j�d	�|j|j�d�|j	|�dS)
Nr�r��FZSDTPZDPSTZFTZDFPSTZTDRP�FS)
rr'r?rr�r�r��add_flag�remove_flagr)rrrrr�
test_flags�s




zTestMaildirMessage.test_flagscCsDtjt�}|jt|j�tj��d�|jd�|j|j�d�dS)N�<g)	rr'r?r��abs�get_dater�set_dater)rrrrr�	test_date�s

zTestMaildirMessage.test_datecsVtjt��|j�j�d��jd�|j�j�d�|jt�fdd��|j��dS)Nr�z	1,foo=barcs
�jd�S)N)r�r)rrrrv�sz.TestMaildirMessage.test_info.<locals>.<lambda>)	rr'r?r�get_infor�rZr�r)rr)rr�	test_info�s

zTestMaildirMessage.test_infocCs�tjt�}|j|j�d�|jd�|j|j�d�|j|j�d�|jd�|j|j�d�|j|j�d�|jd�|j|j�d�|j|j�d�|j	d�|j|j�d�|j|j�d�|j
|�dS)	Nr�ZSFr�z2,FSz1,ZRPT�Dz2,D)rr'r?rr�r�r�r�r�r�r)rrrrr�test_info_and_flags�s




z&TestMaildirMessage.test_info_and_flagsN)r$r%r&rr'r0r�r�r�r�r�r�rrrrr��s	r�c@s<eZdZejZdd�Zdd�Zdd�Zdd�Z	dd
d�Z
d	S)
�_TestMboxMMDFMessagecCs|j|�dS)N)�_check_from)rrrrrr��sz*_TestMboxMMDFMessage._post_initialize_hookcCs8tjt�}|jd�tj|�}|j|j�d|j��dS)NzFrom foo@bar blahzfoo@bar blah)rrr?Zset_unixfromr(rrK)rrrrr�test_initialize_with_unixfrom�s


z2_TestMboxMMDFMessage.test_initialize_with_unixfromcCsftjt�}|j|�|jd�|j|j�d�|jdd�|j|d�|jdtj��|j|d�dS)Nzfoo barzfoo@barTz	blah@temp)	rr(r?r��set_fromrrKrZ	localtime)rrrrr�	test_from�s


z_TestMboxMMDFMessage.test_fromcCs�tjt�}|j|j�d�|jd�|j|j�d�|jd�|j|j�d�|jd�|j|j�d�|jd�|j|j�d�|j|�dS)	Nr�r�ZXODRZRODXZFAZRODFAXZFDXA�RO)	rr(r?rr�r�r�r�r)rrrrrr��s




z_TestMboxMMDFMessage.test_flagsNcCs*|dkrd}|jtj|d|j���dS)Nz
MAILER-DAEMONz. \w{3} \w{3} [\d ]\d [\d ]\d:\d{2}:\d{2} \d{4})rrrrK)rrZsenderrrrr�s
z _TestMboxMMDFMessage._check_from)N)r$r%r&rZ_mboxMMDFMessager0r�r�r�r�r�rrrrr��sr�c@seZdZejZdS)�TestMboxMessageN)r$r%r&rr(r0rrrrr�sr�c@s"eZdZejZdd�Zdd�ZdS)�
TestMHMessagecCs|j|jg�dS)N)rZ
_sequences)rrrrrr�sz#TestMHMessage._post_initialize_hookcCs(tjt�}|j|j�g�|jdg�|j|j�dg�|jg�|j|j�g�|jd�|j|j�dg�|jd�|j|j�ddg�|jd�|j|j�ddg�|jd�|j|j�dg�|jd�|j|j�ddg�|jd�|j|j�ddg�|jddg�|j|j�ddg�dS)N�foobarrtrmrl)rr)r?rrnrproZremove_sequence)rrrrrrqs(







zTestMHMessage.test_sequencesN)r$r%r&rr)r0r�rqrrrrr�sr�c@s*eZdZejZdd�Zdd�Zdd�ZdS)�TestBabylMessagecCs|j|jg�dS)N)rZ_labels)rrrrrr�6sz&TestBabylMessage._post_initialize_hookcCs(tjt�}|j|j�g�|jdg�|j|j�dg�|jg�|j|j�g�|jd�|j|j�dg�|jd�|j|j�ddg�|jd�|j|j�ddg�|jd�|j|j�dg�|jd�|j|j�ddg�|jd�|j|j�ddg�|jddg�|j|j�ddg�dS)Nr�rx�resentrtrw)rr*r?rryr{rzZremove_label)rrrrrr|9s(







zTestBabylMessage.test_labelscCstjt�}|j�}|j|j�g�|j|j��d|d<d|d<|j|j�j�g�|j|�|j�}|j|j�ddg�|j|dd�|j|dd�|j|j��|j	�|j|j�ddg�|j|j��|j�}|j|j�dddddg�x"d	D]}|j||||��q�WdS)
Nz
FooBar 1.0�
User-AgentZBlahz
X-Whatever�Daterf�To�Subject)r�r�rfr�r�)
rr*r?�get_visiblerrHr�rZset_visible�update_visible)rrZvisible�headerrrr�test_visiblePs*


zTestBabylMessage.test_visibleN)	r$r%r&rr*r0r�r|r�rrrrr�2sr�c@seZdZejZdS)�TestMMDFMessageN)r$r%r&rr+r0rrrrr�isr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+S),�TestMessageConversioncCs0x*|jD] }tjt�}||�}|j|�qWdS)N)r,rrr?r)rrN�	msg_plainrrrr�test_plain_to_xps
z%TestMessageConversion.test_plain_to_xcCs0x*|jD] }|t�}tj|�}|j|�qWdS)N)r,r?rrr)rrNrr�rrr�test_x_to_plainws
z%TestMessageConversion.test_x_to_plaincCs&x |jD]}|t�}|j|�qWdS)N)r,rCr)rrNrrrr�test_x_from_bytes~sz'TestMessageConversion.test_x_from_bytescs(x"|jD]�|jt�fdd��qWdS)Ncs�d�S)NFrr)rNrrrv�sz9TestMessageConversion.test_x_to_invalid.<locals>.<lambda>)r,rZr�)rr)rNr�test_x_to_invalid�sz'TestMessageConversion.test_x_to_invalidc	s�dd�|jD��xv|jD]l}xf|jD]\�|�kr2q$|t�}�|�}��fdd��|D�}x$|D]}|j||jdj|���q`Wq$WqWdS)NcSsi|]}|t�j|�qSr)r?r�)r�rNrrr�
<dictcomp>�sz]TestMessageConversion.test_type_specific_attributes_removed_on_conversion.<locals>.<dictcomp>csg|]}|��kr|�qSrr)r��a)�class2�	referencerrr��sz]TestMessageConversion.test_type_specific_attributes_removed_on_conversion.<locals>.<listcomp>zwhile converting {} to {})r,r?r�r�r�)rZclass1�sourcer"Z
type_specificr�r)r�r�r�3test_type_specific_attributes_removed_on_conversion�s


zITestMessageConversion.test_type_specific_attributes_removed_on_conversioncCsntjt�}|jd�|jd�|j�}tj|�}|j|�|j|j�d�|j|j	�d�|j|j�|�dS)N�DFPRSTr�)
rr'r?r�r�r�rrr�r�)r�msg_maildirZdaterrrr�test_maildir_to_maildir�s




z-TestMessageConversion.test_maildir_to_maildircCs�d}x�tjtjfD]�}tjt�}|jd�xR|D]J\}}|j|�||�}|j|j�|�|j|j	�dt
jt
jd���q0W|j
d
�|j||�j�d�qWdS)Nr�r�r��P�R�Ar��Tr��RDFAgzMAILER-DAEMON %sr��RODFA�r�r��r�r��r�r��r�r��r�r��r�r��r�r�)r�r�r�r�r�r�r�)rr(r+r'r?r�r�rr�rKrZasctime�gmtimer�)r�pairsrNr��setting�resultrrrr�test_maildir_to_mboxmmdf�s



z.TestMessageConversion.test_maildir_to_mboxmmdfc	Cs�tjt�}ddgfdddgfddgfdddgfdgfd	dgfd
ddgff}x0|D](\}}|j|�|jtj|�j�|�qPWdS)Nr�rtr�rmr�r�rlr�r�r�)rr'r?r�rr)rn)rr�r�r�r�rrr�test_maildir_to_mh�s

z(TestMessageConversion.test_maildir_to_mhc
Cs�tjt�}ddgfddgfdddgfdddgfdgfd	dd
gfdd
ddgff}x0|D](\}}|j|�|jtj|�j�|�qTWdS)Nr�rtr�r��	forwardedr�rwr�r��deletedr�)rr'r?r�rr*ry)rr�r�r�r�rrr�test_maildir_to_babyl�s

z+TestMessageConversion.test_maildir_to_babylcCs�x�tjtjfD]�}|t�}|jdtjd��d}xD|D]<\}}|j|�tj|�}|j	|j
�|�|j	|j�d�q6W|jd�|j	tj|�j�d
�qWdS)Nzfoo@bargr�r��Or�r�r�r�r�r��FRSTr��r�r��r�r��r�r��r�r��r�r��r�r�)r�r�r�r�r�r�)
rr(r+r?r�rr�r�r'rr�r�r�)rrN�msg_mboxMMDFr�r�r�rrrr�test_mboxmmdf_to_maildir�s


z.TestMessageConversion.test_mboxmmdf_to_maildircCstxntjtjfD]^}|t�}|jd�|jd�x<tjtjfD],}||�}|j|j�d�|j|j�d�q<WqWdS)Nr�zfoo@bar)	rr(r+r?r�r�rr�rK)rrNr�Zclass2_r�rrr�test_mboxmmdf_to_mboxmmdf�s

z/TestMessageConversion.test_mboxmmdf_to_mboxmmdfc	Cs�x�tjtjfD]v}|t�}dgfddgfddgfdddgfdddgfd	ddgff}x0|D](\}}|j|�|jtj|�j�|�qXWqWdS)
Nr�r�rtr�r�rmr�rlr�)rr(r+r?r�rr)rn)rrNr�r�r�r�rrr�test_mboxmmdf_to_mh�s


z)TestMessageConversion.test_mboxmmdf_to_mhc	Cs�x�tjtjfD]v}|t�}dgfddgfdddgfddgfdddgfd	ddgff}x0|D](\}}|j|�|jtj|�j�|�qXWqWdS)
Nr�r�rtr�r�r�r�rwr�)rr(r+r?r�rr*ry)rrNrr�r�r�rrr�test_mboxmmdf_to_babyl�s

z,TestMessageConversion.test_mboxmmdf_to_babylcCs�d}xP|D]H\}}tjt�}|j|�|jtj|�j�|�|jtj|�j�d�q
Wtjt�}|jd�|jd�|jd�|jtj|�j�d�|jtj|�j�d�dS)
Nrtr�rl�RSrmr�r�r��rtr��rlr��rmr�)r�r�r�)rr)r?rorr'r�r�)rr�r�r�rrrr�test_mh_to_maildir�s





z(TestMessageConversion.test_mh_to_maildircCs�d}xN|D]F\}}tjt�}|j|�x(tjtjfD]}|j||�j�|�q4Wq
Wtjt�}|jd�|jd�|jd�x(tjtjfD]}|j||�j�d�q�WdS)Nrtr�rl�ROArm�ROFZOFA�rtr��rlr��rmr�)r�r�r�)rr)r?ror(r+rr�)rr�r�r�rrNrrr�test_mh_to_mboxmmdfs





z)TestMessageConversion.test_mh_to_mboxmmdfcCsHtjt�}|jd�|jd�|jd�|jtj|�j�dddg�dS)Nrtrlrm)rr)r?rorrn)rrrrr�
test_mh_to_mhs



z#TestMessageConversion.test_mh_to_mhcCs�ddgfddgfdgff}x:|D]2\}}tjt�}|j|�|jtj|�j�|�q Wtjt�}|jd�|jd�|jd�|jtj|�j�ddg�dS)Nrtrlrwrm)rr)r?rorr*ry)rr�r�r�rrrr�test_mh_to_babyl&s






z&TestMessageConversion.test_mh_to_babylcCs�d}xP|D]H\}}tjt�}|j|�|jtj|�j�|�|jtj|�j�d
�q
Wtjt�}xdD]}|j|�qfW|jtj|�j�d�|jtj|�j�d
�dS)Nrtr�r��STrxr�rwr�r��PS�editedr�r�ZPRT�rtr��r�r��rxr��rwr��r�r��r�r��r�r�)r�r�r�r�rrr)rtr�rxrwr�r�r�)rr*r?rzrr'r�r�)rr�r�r�r�labelrrr�test_babyl_to_maildir5s


z+TestMessageConversion.test_babyl_to_maildircCs�d}xN|D]F\}}x<tjtjfD],}tjt�}|j|�|j||�j�|�q Wq
Wtjt�}xdD]}|j|�qdWx(tjtjfD]}|j||�j�d�q�WdS)Nrtr�r��RODrxr�rwr�r�r�r�ZODA�rtr��r�r�rxr��rwr��r�r��r�r��r�r�)rrrr	r
rr)rtr�rxrwr�r�r�)rr(r+r*r?rzrr�)rr�r�r�rNrrrrr�test_babyl_to_mboxmmdfFs


z,TestMessageConversion.test_babyl_to_mboxmmdfcCs�ddgfdgfdgfddgfdgfdgfdgff}x:|D]2\}}tjt�}|j|�|jtj|�j�|�q8Wtjt�}xd	D]}|j|�q~W|jtj|�j�ddg�dS)
Nrtr�rxrwrlr�r�r�)rtr�rxrwr�r�r�)rr*r?rzrr)rn)rr�r�r�rrrrr�test_babyl_to_mhWs



z&TestMessageConversion.test_babyl_to_mhc	Cs�tjt�}|j�xdD]}|j|�qWtj|�}|j|j�dddddddg�|j|j�j�|j�j��x0|j�j�D] }|j|j�||j�|�q|WdS)	Nrtr�rxrwr�r�r�)rtr�rxrwr�r�r�)	rr*r?r�rzrryr�rH)rrrr�rrrr�test_babyl_to_babylgs

z)TestMessageConversion.test_babyl_to_babylN)r$r%r&r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rrrrrrr�ns*
	r�c@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�TestProxyFileBasecCs�|jd�|j|j�d�|jd�|j|j�d�|jd�|j|jd�d�|jd�|j|jd	�d�|jd�|j|jd�d�dS)
Nrsbarr5sarr6sbai��r���)rgrr_)r�proxyrrr�
_test_readys




zTestProxyFileBase._test_readcCs�tjj�}|jd�|j|j�d|�|j|j�d|�|j|j�d|�|j|j�d�|jd�|j|j�d|�|jddttj��|j|j�d|�|jddttj��|j|jd�d	�|j|jd�d|�dS)
Nrsfoosbarsfredsbobr6�or:sfrr{sedi����)rrarKrgr�readliner)rrrarrr�_test_readline�s


z TestProxyFileBase._test_readlinecCs�tjj�}|jd�|j|j�d|d|d|dg�|jd�|j|jd�d|g�|jdt|��|j|jdt|��d|d|g�|jd�|j|jd	�|d|d|dg�dS)
Nrsfoosbarsfredsbobr6r7r8i�)rrarKrgrrJr)rrrarrr�_test_readlines�s



z!TestProxyFileBase._test_readlinescCsztjj�}|jd�t|�}|jt|�d|�|jt|�d|�|jt|�d|�|jt|�d�|jtt|�dS)Nrsfoosbarsfredsbob)	rrarKrg�iterr�nextrZ�
StopIteration)rrra�iteratorrrr�_test_iteration�s

z!TestProxyFileBase._test_iterationcCs�tjj�}|jd�|j|j�d�|j|jt|��|�|jdd�|j|jdt|��d|�|jd	t|�d�|j|jd�d�|jdd�|j|j�d|d|�|jd�|j|j��dS)
Nr7r6r5rsbarrr�dr%)	rrarKrgr�tellr_rr�)rrrarrr�_test_seek_and_tell�s


z%TestProxyFileBase._test_seek_and_tellcCs8|j|j�|j�|j|j�|j�|j|j�dS)N)r�r~r3r)rrrrr�_test_close�s
zTestProxyFileBase._test_closeN)	r$r%r&rrrrr r!rrrrrws
rc@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�
TestProxyFilecCstj|_t|jd�|_dS)Nzwb+)rr.r/rrT)rrrrr2�szTestProxyFile.setUpcCs|jj�|j|j�dS)N)rTr3r#r/)rrrrr4�s
zTestProxyFile.tearDowncCsx|jjd�|jj�}tj|j�}|j|j�|�|j|jj�|�tj|jd�}|j|j�d�|j|jj�|�dS)Nsfoor)rTrfrr�
_ProxyFiler)r�posZproxy0Zproxy1rrr�test_initialize�s
zTestProxyFile.test_initializecCs"|jjd�|jtj|j��dS)Nsbar)rTrfrrr#)rrrr�	test_read�szTestProxyFile.test_readcCs8|jjtdtjtjtjfd��|jtj|j��dS)Nzfoo%sbar%sfred%sbobr�)rTrf�bytesrrarrr#)rrrr�
test_readline�szTestProxyFile.test_readlinecCs8|jjtdtjtjtjfd��|jtj|j��dS)Nzfoo%sbar%sfred%sbobr�)rTrfr'rrarrr#)rrrr�test_readlines�szTestProxyFile.test_readlinescCs8|jjtdtjtjtjfd��|jtj|j��dS)Nzfoo%sbar%sfred%sbobr�)rTrfr'rrarrr#)rrrr�test_iteration�szTestProxyFile.test_iterationcCs4|jjtdtjtjfd��|jtj|j��dS)Nz
foo%sbar%sr�)rTrfr'rrar rr#)rrrr�test_seek_and_tell�sz TestProxyFile.test_seek_and_tellcCs4|jjtdtjtjfd��|jtj|j��dS)Nz
foo%sbar%sr�)rTrfr'rrar!rr#)rrrrr��szTestProxyFile.test_closeN)r$r%r&r2r4r%r&r(r)r*r+r�rrrrr"�sr"c@sTeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�TestPartialFilecCstj|_t|jd�|_dS)Nzwb+)rr.r/rrT)rrrrr2�szTestPartialFile.setUpcCs|jj�|j|j�dS)N)rTr3r#r/)rrrrr4s
zTestPartialFile.tearDowncCs\|jjtdtjdd��|jj�}tj|jdd�}|j|j�d�|j|jj�|�dS)Nr�r�r�r6r9r)	rTrfr'rrarr�_PartialFiler)rr$rrrrr%s

zTestPartialFile.test_initializecCs,|jjtdd��|jtj|jdd��dS)Nz	***bar***r�r7r:)rTrfr'rrr-)rrrrr&
szTestPartialFile.test_readcCsJ|jjtdtjtjtjfd��|jtj|jdddttj���dS)Nz!!!!!foo%sbar%sfred%sbob!!!!!r�r9�r7)	rTrfr'rrarrr-r)rrrrr(s
zTestPartialFile.test_readlinecCsJ|jjtdtjtjtjfd��|jtj|jdddttj���dS)Nzfoo%sbar%sfred%sbob?????r�r�
r7)	rTrfr'rrarrr-r)rrrrr)s
zTestPartialFile.test_readlinescCsJ|jjtdtjtjtjfd��|jtj|jdddttj���dS)Nz____foo%sbar%sfred%sbob####r�r8�r7)	rTrfr'rrarrr-r)rrrrr*s
zTestPartialFile.test_iterationcCsF|jjtdtjtjfd��|jtj|jdddttj���dS)Nz(((foo%sbar%s$$$r�r7�	r6)	rTrfr'rrar rr-r)rrrrr+#sz"TestPartialFile.test_seek_and_tellcCsF|jjtdtjtjfd��|jtj|jdddttj���dS)Nz&foo%sbar%s^r�r5r:r7)	rTrfr'rrar!rr-r)rrrrr�(szTestPartialFile.test_closeN)r$r%r&r2r4r%r&r(r)r*r+r�rrrrr,�sr,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@sFeZdZdd�Zdd�Zddd�Zdd	�Zd
d�Zdd
�Zdd�Z	dS)�MaildirTestCasecCs�tj|_tjj|j�r$tj|j�ntjj|j�r>tj|j�tj	|j�tj	tjj
|jd��tj	tjj
|jd��tj	tjj
|jd��d|_g|_dS)Nr�r�r�r5)
rr.�_dirrrrr�isfiler!r�r��_counter�	_msgfiles)rrrrr2;szMaildirTestCase.setUpcCsdtttj|j��tjtjj|j	d��tjtjj|j	d��tjtjj|j	d��tj|j	�dS)Nr�r�r�)
r��maprr!r6r�rmdirrr�r3)rrrrr4Is
zMaildirTestCase.tearDownFc	Cs�ttj�d�}|j}|jd7_djt|�t|�ddf�}tjj|jd|�}tjj|j||�}t|d��*}|j	j
|�|r�|jt�|jt
�WdQRXytj||�Wn8ttfk
r�t|d��}|jt
�WdQRXYnX|j	j
|�|S)Ni@Br5�.Z
myhostnameZmydomainr�r)r�rr5r��strrrr3rr6r<rf�FROM_�
DUMMY_MESSAGE�link�AttributeError�PermissionError)	r�dirrc�trr:ZtmpnameZnewname�fprrr�
createMessagePs$
zMaildirTestCase.createMessagecCs2tjtj�|_|j|jj��|j|jj��dS)zTest an empty maildir mailboxN)rr�rr.rcr�r)rrrr�test_empty_maildirdsz"MaildirTestCase.test_empty_maildircCsL|jd�tjtj�|_|j|jj��|j|jj��|j|jj��dS)Nr�)	rCrr�rr.rcrrr�)rrrr�test_nonempty_maildir_curns

z)MaildirTestCase.test_nonempty_maildir_curcCsL|jd�tjtj�|_|j|jj��|j|jj��|j|jj��dS)Nr�)	rCrr�rr.rcrrr�)rrrr�test_nonempty_maildir_newvs

z)MaildirTestCase.test_nonempty_maildir_newcCsf|jd�|jd�tjtj�|_|j|jj��|j|jj��|j|jj��|j|jj��dS)Nr�r�)	rCrr�rr.rcrrr�)rrrr�test_nonempty_maildir_both~s

z*MaildirTestCase.test_nonempty_maildir_bothN)F)
r$r%r&r2r4rCrDrErFrGrrrrr29s

r2aKReturn-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<gkj@gregorykjohnson.com>zgkj+person@localhostz�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)z gkj@sundance.gregorykjohnson.comz�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)z�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)ztby andy.gregorykjohnson.com (Postfix, from userid 1000)
        id 490CD9DD17; Wed, 13 Jul 2005 17:23:11 -0400 (EDT)zWed, 13 Jul 2005 17:23:11 -0400z."Gregory K. Johnson" <gkj@gregorykjohnson.com>zgkj@gregorykjohnson.comzSample messagez1.0z,multipart/mixed; boundary="NMuMz9nt05w80d4+"ZinlinezMutt/1.5.9i)zReturn-Pathz
X-Original-TozDelivered-To�ReceivedzDelivered-TorHrHrHr�rfr�r�zMime-VersionzContent-TypezContent-Dispositionz
User-Agent�1This is a sample message.

--
Gregory K. Johnson
�RH4sICM2D1UIAA3RleHQAC8nILFYAokSFktSKEoW0zJxUPa7wzJIMhZLyfIWczLzUYj0uAHTs
3FYlAAAA
c@seZdZdd�ZdS)�MiscTestCasecCsddh}tj|t|d�dS)NraZfcntl)�	blacklist)rZcheck__all__r)rrLrrr�test__all__�szMiscTestCase.test__all__N)r$r%r&rMrrrrrK�srKcCs>tttttttttt	t
ttt
ttttf}tj|�tj�dS)N)r�r�rbrjrkrvr�r�r�r�r�r�r�r"r,r2r�rKrZrun_unittestZ
reap_children)Ztestsrrr�	test_main�s


rN�__main__)rIrJ)5rr�rr�rrZ
email.messagerrArdZtestrr<r�rrGrr-ZTestCaser�r�r?rErbrjrkrvr}r�r�r�r�r�r�r�r�r�r�r�rr"r,r;r<r2r?rKrCr	rrKrNr$rrrr�<module>s�}$_)p/"	
VJ07S15




Youez - 2016 - github.com/yon3zu
LinuXploit