Your IP : 216.73.216.52


Current Path : /opt/alt/python38/lib64/python3.8/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/test_email/__pycache__/test_contentmanager.cpython-38.pyc

U

i�fm��@s�ddlZddlmZmZddlZddlmZddlmZddl	m
Z
mZeGdd�de��ZeGdd	�d	e��Z
ed
kr�e��dS)�N)�
TestEmailBase�parameterize)�policy)�EmailMessage)�ContentManager�raw_data_managerc
@s�eZdZejZeZdddd�Zdd�Zdd�Z	d	d
�Z
Gdd�de�Zed
dZ
Gdd�de�Zed
dZdefdefdddefde
fdddefdddd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)S)*�TestContentManager)��
text/plain)��text)��)Z	full_typeZ
maintype_only�null_keycCsNd
dd�}t�}|�||�|��}d|d<d|d<|�|j|dd�d	�dS)NcSs|d}||fS�N�X-Bar-Header�)�msg�foo�barrr�H/opt/alt/python38/lib64/python3.8/test/test_email/test_contentmanager.py�
foo_getterszATestContentManager.get_key_as_get_content_key.<locals>.foo_getterr
�Content-Typerrr�r)rr)N)r�add_get_handler�
_make_message�assertEqual�get_content)�self�order�keyr�cm�mrrr�get_key_as_get_content_keys
z-TestContentManager.get_key_as_get_content_keycCs�dd�}dd�}t�}|�||�|j��D]\}}||kr,|�||�q,|��}d|d<d|d<d	|d
<|�|�|�d	�dS)NcSs|dSrr�rrrr�
bar_getter!szGTestContentManager.get_key_as_get_content_key_order.<locals>.bar_gettercSs|dS�N�X-Foo-Headerrr$rrrr#szGTestContentManager.get_key_as_get_content_key_order.<locals>.foo_getterr
rrrrr')rr�get_key_params�valuesrrr)rrr r%rr!�
precedencer"rrr� get_key_as_get_content_key_order sz3TestContentManager.get_key_as_get_content_key_orderc	Cs<t�}|��}d|d<|�td��|�|�W5QRXdS)Nr
r)rr�assertRaisesRegex�KeyErrorr�rr!r"rrr�:test_get_content_raises_if_unknown_mimetype_and_no_default0s
zMTestContentManager.test_get_content_raises_if_unknown_mimetype_and_no_defaultc@seZdZdS)�TestContentManager.BaseThingN��__name__�
__module__�__qualname__rrrr�	BaseThing7sr5�.r0c@seZdZdS)�TestContentManager.ThingNr1rrrr�Thing:sr8r7rr	)rr7)r
r8��)�r0)�r5�)�	zbuiltins.str)�
�str)�N)�type�	full_path�qualname�nameZ	base_typeZbase_full_pathZ
base_qualnameZ	base_nameZstr_typeZ
str_full_pathZstr_namercCs`ddd�}t�}|�||�|��}|��}|j||dd�|�|dd�|�|��|�dS)NcSs||d<|�|�dSr&��set_payload)r�objrrrr�
foo_setterNszATestContentManager.set_key_as_set_content_key.<locals>.foo_setterrrr')N)r�add_set_handlerrr8�set_contentr�get_payload)rrr rIr!r"�msg_objrrr�set_key_as_set_content_keyMs
z-TestContentManager.set_key_as_set_content_keyc	Cs�dd�}dd�}t�}|�||�|j��D]\}}||kr,|�||�q,|��}|��}|�||�|�|dd�|�|��|�dS)NcSsd|d<|�|�dS)Nr�X-FooBar-HeaderrF�rrHrrrrIZszGTestContentManager.set_key_as_set_content_key_order.<locals>.foo_settercSsd|d<dS)NrrOrrPrrr�
bar_setter]szGTestContentManager.set_key_as_set_content_key_order.<locals>.bar_setterrOr)	rrJr(r)rr8rKrrL)	rrr rIrQr!r*r"rMrrr� set_key_as_set_content_key_orderYsz3TestContentManager.set_key_as_set_content_key_orderc	Cs@t�}|��}|��}|�t|j��|�||�W5QRXdS�N)rrr8r,r-�testobject_full_pathrK)rr!r"rMrrr�6test_set_content_raises_if_unknown_type_and_no_defaultjs
zITestContentManager.test_set_content_raises_if_unknown_type_and_no_defaultc	Cs<t�}|��}d|d<|�t��|�|d�W5QRXdS)Nz
multipart/foor�test)rr�assertRaises�	TypeErrorrKr.rrr�.test_set_content_raises_if_called_on_multipartqs
zATestContentManager.test_set_content_raises_if_called_on_multipartcCs�|��}d|d<d|d<d|d<|�d�t�}|�tdd	��|jd
|d�|�|d�|�|d�|�|dd�|�|���dS)NrzContent-Fooz	text/htmlrrV�To�abcc_sdSrSr)�args�kwrrr�<lambda>�zITestContentManager.test_set_content_calls_clear_content.<locals>.<lambda>�xyz)�content_manager)	rrGrrJr@rKZassertIsNonerrL)rr"r!rrr�$test_set_content_calls_clear_contentxs
z7TestContentManager.test_set_content_calls_clear_contentN)r2r3r4r�defaultr�messager(r#r+r/r@r5Zbaseobject_full_pathr8rTZset_key_paramsrNrRrUrYrbrrrrr	s>��rc@s�eZdZejjded�ZeZdd�Z	dd�Z
dd�Zd	d
�Zdd�Z
d
d�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'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)dEdF�Z*dGdH�Z+dIdJ�Z,dKdL�Z-dMdN�Z.dOdP�Z/dQdR�Z0dSdT�Z1dUdV�Z2dWdX�Z3dYdZ�Z4d[d\�Z5d]d^�Z6d_d`�Z7dadb�Z8dcdddedfe�dgfe�dhfdi�Z9djdk�Z:dldm�Z;dndo�Z<dpdq�Z=drds�Z>dtS)u�TestRawDataManager�<)�max_line_lengthracCs&|�t�d��}|�t�|�d�dS)N�J            Content-Type: text/plain

            Basic text.
            zBasic text.
��_str_msg�textwrap�dedentrrr�rr"rrr�test_get_text_plain�sz&TestRawDataManager.test_get_text_plaincCs&|�t�d��}|�t�|�d�dS)NzP            Content-Type: text/html

            <p>Basic text.</p>
            z<p>Basic text.</p>
rirmrrr�test_get_text_html�s�z%TestRawDataManager.test_get_text_htmlcCs,|�t�d��d��}|�t�|�d�dS)Nu\            Content-Type: text/plain; charset=latin1

            Basìc tëxt.
            �latin1�Basìc tëxt.
)Z
_bytes_msgrkrl�encoderrrrmrrr�test_get_text_plain_latin1�s�z-TestRawDataManager.test_get_text_plain_latin1cCs&|�t�d��}|�t�|�d�dS)Nz�            Content-Type: text/plain; charset="latin-1"
            Content-Transfer-Encoding: quoted-printable

            Bas=ECc t=EBxt.
            rqrirmrrr�+test_get_text_plain_latin1_quoted_printable�sz>TestRawDataManager.test_get_text_plain_latin1_quoted_printablecCs&|�t�d��}|�t�|�d�dS)Nz�            Content-Type: text/plain; charset="utf8"
            Content-Transfer-Encoding: base64

            QmFzw6xjIHTDq3h0Lgo=
            rqrirmrrr�test_get_text_plain_utf8_base64�sz2TestRawDataManager.test_get_text_plain_utf8_base64cCs&|�t�d��}|�t�|�d�dS)N��            Content-Type: text/plain; charset="utf8"
            Content-Transfer-Encoding: quoted-printable

            Bas=c3=acc t=c3=abxt=fd.
            uBasìc tëxt�.
rirmrrr�-test_get_text_plain_bad_utf8_quoted_printable�sz@TestRawDataManager.test_get_text_plain_bad_utf8_quoted_printablecCs*|�t�d��}|�tj|dd�d�dS)Nrv�ignore��errorsrqrirmrrr�;test_get_text_plain_bad_utf8_quoted_printable_ignore_errors�s�zNTestRawDataManager.test_get_text_plain_bad_utf8_quoted_printable_ignore_errorscCs*|�t�d��}|�tj|dd�d�dS)Nu�            Content-Type: text/plain; charset="utf8"
            Content-Transfer-Encoding: base64

            QmFzw6xjIHTDq3h0Lgoÿ=
            rxryrqrirmrrr�8test_get_text_plain_utf8_base64_recoverable_bad_CTE_data�s�zKTestRawDataManager.test_get_text_plain_utf8_base64_recoverable_bad_CTE_datac	Cs8|�t�d��}|�t��tj|dd�W5QRXdS)Nrhrxr�rjrkrlrWrXrrrmrrr�test_get_text_invalid_keyword�sz0TestRawDataManager.test_get_text_invalid_keywordc
CsZt�d�}d��D]B}|j|d��,|�|�|d��}|�t�|�d�W5QRXqdS)Nzu            Content-Type: {}
            Content-Transfer-Encoding: base64

            Ym9ndXMgZGF0YQ==
            zaudio image video application)�maintypez/foos
bogus data)	rkrl�split�subTestrj�formatrrr)r�templaterr"rrr�test_get_non_text�s

z$TestRawDataManager.test_get_non_textc	Cs8|�t�d��}|�t��tj|dd�W5QRXdS)Nz|            Content-Type: image/jpg
            Content-Transfer-Encoding: base64

            Ym9ndXMgZGF0YQ==
            rxryr}rmrrr�!test_get_non_text_invalid_keyword�sz4TestRawDataManager.test_get_non_text_invalid_keywordc	Cs4|�t�d��}|�t��t�|�W5QRXdS)Nzm            Content-Type: multipart/mixed; boundary="==="

            --===
            --===--
            )rjrkrlrWr-rrrmrrr�test_get_raises_on_multipart�sz/TestRawDataManager.test_get_raises_on_multipartc
Cs�t�d�}d��D]~}|j|d��h|�|�|��}t�|�}|�||j	�|�
t�|�d�|�
|dd�|�
|djdjd	�W5QRXqdS)
Nz�            Content-Type: message/{}

            To: foo@example.com
            From: bar@example.com
            Subject: example

            an example message
            �rfc822 external-body��subtypezan example message
�to�foo@example.com�fromrr)
rkrlr�r�rjr�rr�assertIsInstancerdrZ	addressesZusername)rr�r�r"Zsub_msgrrr�)test_get_message_rfc822_and_external_bodys
	
�z<TestRawDataManager.test_get_message_rfc822_and_external_bodycCs.|�t�d��}|�t�|�dd�d�dS)Nz�            Content-Type: message/partial

            To: foo@example.com
            From: bar@example.com
            Subject: example

            The real body is in another message.
            r?s
To: foo@exrirmrrr�9test_get_message_non_rfc822_or_external_body_yields_bytess	zLTestRawDataManager.test_get_message_non_rfc822_or_external_body_yields_bytescCs\|��}d}t�||�|�t|�t�d��|�|jdd��d�|�|�|�	�|�dS)N�Simple message.
z�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 7bit

            Simple message.
            T��decode�utf-8�
rrrKrr@rkrlrLr�r�rr"�contentrrr�test_set_text_plain%sz&TestRawDataManager.test_set_text_plaincCs\|��}d}t�||�|�t|�t�d��|�|jdd��d�d�|�|�	�d�dS)Nrzp            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 7bit


            Tr�r��
r�r�rrr�test_set_text_plain_null2sz+TestRawDataManager.test_set_text_plain_nullcCs`|��}d}tj||dd�|�t|�t�d��|�|jdd��d�|�|�|�	�|�dS)Nz<p>Simple message.</p>
�htmlr�z�            Content-Type: text/html; charset="utf-8"
            Content-Transfer-Encoding: 7bit

            <p>Simple message.</p>
            Tr�r�r�r�rrr�test_set_text_html?sz%TestRawDataManager.test_set_text_htmlcCs`|��}d}tj||dd�|�t|�t�d��|�|jdd��d�|�|�|�	�|�dS)Nr��latin-1��charsetz�            Content-Type: text/plain; charset="iso-8859-1"
            Content-Transfer-Encoding: 7bit

            Simple message.
            Tr�r�r�r�rrr�test_set_text_charset_latin_1Lsz0TestRawDataManager.test_set_text_charset_latin_1cCs\|��}d}t�||�|�t|�t�d��|�|jdd��d�|�|�|�	�|�dS)NzTSimple but long message that is over 78 characters long to force transfer encoding.
z�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: quoted-printable

            Simple but long message that is over 78 characters long to =
            force transfer encoding.
            Tr�r�r�r�rrr�(test_set_text_plain_long_line_heuristicsYsz;TestRawDataManager.test_set_text_plain_long_line_heuristicscCsb|��}d}t�||�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)Nu7et là il est monté sur moi et il commence à m'éto.
u�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit

            et là il est monté sur moi et il commence à m'éto.
            r�Tr��rrrKr�bytesrkrlrrrLr�rr�rrr�5test_set_text_short_line_minimal_non_ascii_heuristicshs�zHTestRawDataManager.test_set_text_short_line_minimal_non_ascii_heuristicscCsb|��}d}t�||�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)Nusj'ai un problème de python. il est sorti de son vivarium.  et là il est monté sur moi et il commence à m'éto.
a*            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: quoted-printable

            j'ai un probl=C3=A8me de python. il est sorti de son vivari=
            um.  et l=C3=A0 il est mont=C3=A9 sur moi et il commence =
            =C3=A0 m'=C3=A9to.
            r�Tr�r�r�rrr�4test_set_text_long_line_minimal_non_ascii_heuristicsus�zGTestRawDataManager.test_set_text_long_line_minimal_non_ascii_heuristicscCsb|��}d}t�||�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)Nu}









j'ai un problème de python. il est sorti de son vivarium.  et là il est monté sur moi et il commence à m'éto.
a@            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: quoted-printable
            










            j'ai un probl=C3=A8me de python. il est sorti de son vivari=
            um.  et l=C3=A0 il est mont=C3=A9 sur moi et il commence =
            =C3=A0 m'=C3=A9to.
            r�Tr�r�r�rrr�=test_set_text_11_lines_long_line_minimal_non_ascii_heuristics�s�zPTestRawDataManager.test_set_text_11_lines_long_line_minimal_non_ascii_heuristicscCsb|��}d}t�||�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)N�áàäéèęöő.
u�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit

            áàäéèęöő.
            r�Tr�r�r�rrr�*test_set_text_maximal_non_ascii_heuristics�s�z=TestRawDataManager.test_set_text_maximal_non_ascii_heuristicscCsb|��}d}t�||�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)Nu









áàäéèęöő.
u�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit
            










            áàäéèęöő.
            r�Tr�r�r�rrr�3test_set_text_11_lines_maximal_non_ascii_heuristics�s�zFTestRawDataManager.test_set_text_11_lines_maximal_non_ascii_heuristicscCsb|��}d}t�||�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)Nu�áàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöő.
a�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: base64

            w6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOgw6TDqcOoxJnD
            tsWRw6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOgw6TDqcOo
            xJnDtsWRw6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOgw6TD
            qcOoxJnDtsWRw6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOg
            w6TDqcOoxJnDtsWRLgo=
            r�Tr�r�r�rrr�4test_set_text_long_line_maximal_non_ascii_heuristics�s	�
zGTestRawDataManager.test_set_text_long_line_maximal_non_ascii_heuristicscCsb|��}d}t�|d�|�t|�t�d��d��|�|jdd��	d�|�|�|�
�|�dS)Nu�









áàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöő.
ak            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: quoted-printable
            










            =C3=A1=C3=A0=C3=A4=C3=A9=C3=A8=C4=99=C3=B6=C5=91=C3=A1=C3=
            =A0=C3=A4=C3=A9=C3=A8=C4=99=C3=B6=C5=91=C3=A1=C3=A0=C3=A4=
            =C3=A9=C3=A8=C4=99=C3=B6=C5=91=C3=A1=C3=A0=C3=A4=C3=A9=C3=
            =A8=C4=99=C3=B6=C5=91=C3=A1=C3=A0=C3=A4=C3=A9=C3=A8=C4=99=
            =C3=B6=C5=91=C3=A1=C3=A0=C3=A4=C3=A9=C3=A8=C4=99=C3=B6=C5=
            =91=C3=A1=C3=A0=C3=A4=C3=A9=C3=A8=C4=99=C3=B6=C5=91=C3=A1=
            =C3=A0=C3=A4=C3=A9=C3=A8=C4=99=C3=B6=C5=91=C3=A1=C3=A0=C3=
            =A4=C3=A9=C3=A8=C4=99=C3=B6=C5=91=C3=A1=C3=A0=C3=A4=C3=A9=
            =C3=A8=C4=99=C3=B6=C5=91=C3=A1=C3=A0=C3=A4=C3=A9=C3=A8=C4=
            =99=C3=B6=C5=91=C3=A1=C3=A0=C3=A4=C3=A9=C3=A8=C4=99=C3=B6=
            =C5=91.
            r�Tr�r�r�rrr�=test_set_text_11_lines_long_line_maximal_non_ascii_heuristics�s�zPTestRawDataManager.test_set_text_11_lines_long_line_maximal_non_ascii_heuristicsc	Cs2|��}|�t��tj|ddd�W5QRXdS)Nr��7bit��cte�rrW�UnicodeErrorrrKrmrrr�,test_set_text_non_ascii_with_cte_7bit_raises�sz?TestRawDataManager.test_set_text_non_ascii_with_cte_7bit_raisesc	Cs2|��}|�t��tj|ddd�W5QRXdS)Nr��asciir�r�rmrrr�1test_set_text_non_ascii_with_charset_ascii_raises�szDTestRawDataManager.test_set_text_non_ascii_with_charset_ascii_raisesc	Cs4|��}|�t��tj|dddd�W5QRXdS)Nr�r�r�)r�r�r�rmrrr�>test_set_text_non_ascii_with_cte_7bit_and_charset_ascii_raises�szQTestRawDataManager.test_set_text_non_ascii_with_cte_7bit_and_charset_ascii_raisescCs�|��}d|d<|��}d|d<d|d<d|d<|�d�t�||�|�t|�t�d	��|�d
�}|�||j	�|�t|�t|��|�|�
�|j	�|�t|�
��t|��dS)NzForwarded message�Subjectzpython@vivarium.orgrZ�police@monty.org�Fromzget back in your boxzOr face the comfy chair.a�            Subject: Forwarded message
            Content-Type: message/rfc822
            Content-Transfer-Encoding: 8bit

            To: python@vivarium.org
            From: police@monty.org
            Subject: get back in your box
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 7bit
            MIME-Version: 1.0

            Or face the comfy chair.
            r)rrKrrr@rkrlrLr�rdr)rr"r�Zpayloadrrr�test_set_message�s

z#TestRawDataManager.test_set_messagecCs�|��}d|d<|��}d|d<d|d<d|d<|�d�t�||�|�t|�t�d	��d
��|�|j|j	j
d�t�d��|�|��|j
�|�t|���t|��dS)
Nz
Escape reportr�r�rZzvictim@monty.orgr�ZHelpu:j'ai un problème de python. il est sorti de son vivarium.u�            Subject: Escape report
            Content-Type: message/rfc822
            Content-Transfer-Encoding: 8bit

            To: police@monty.org
            From: victim@monty.org
            Subject: Help
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit
            MIME-Version: 1.0

            j'ai un problème de python. il est sorti de son vivarium.
            r�)Zmaxheaderlena�            Subject: Escape report
            Content-Type: message/rfc822
            Content-Transfer-Encoding: 8bit

            To: police@monty.org
            From: victim@monty.org
            Subject: Help
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: base64
            MIME-Version: 1.0

            aidhaSB1biBwcm9ibMOobWUgZGUgcHl0aG9uLiBpbCBlc3Qgc29ydGkgZGUgc29uIHZpdmFyaXVt
            Lgo=
            )rrKrrr�rkrlrrZ	as_stringrrgr�rrdr@r�rrr�4test_set_message_with_non_ascii_and_coercion_to_7bits 

��zGTestRawDataManager.test_set_message_with_non_ascii_and_coercion_to_7bitcCs|��}|��}d��D]t}d��D]f}|j||d��N|�t��}|j|||d�W5QRXt|j�}|�||�|�||�W5QRXq$qd}d��D]f}|j||d��N|�t��}|j|||d�W5QRXt|j�}|�||�|�||�W5QRXq�dS)Nzquoted-printable base64r�)r�r�r��
external-bodyz8bit binary)	rr�r�rW�
ValueErrorrKr@Z	exceptionZassertIn)rr"r�r�r�Zar�excrrr�#test_set_message_invalid_cte_raises@s$

z6TestRawDataManager.test_set_message_invalid_cte_raisesc
Cs�dtd�td�fD]n}|j|d��X|��}t�||dd�|�t|�t�	d��|�|j
dd�|�|�|��|�W5QRXqdS)Ns
bogus content)r��image�jpegz�                    Content-Type: image/jpeg
                    Content-Transfer-Encoding: base64

                    Ym9ndXMgY29udGVudA==
                    Tr�)�	bytearray�
memoryviewr�rrrKrr@rkrlrLr)rr�r"rrr�test_set_image_jpgTs�z%TestRawDataManager.test_set_image_jpgcCsb|��}d}|j|dddd�|�t|�t�d��d��|�|jdd	�|�|�|��|�dS)
N�tb�gus	con
t
ent zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzZaudioZaifzquoted-printabler�a            Content-Type: audio/aif
            Content-Transfer-Encoding: quoted-printable
            MIME-Version: 1.0

            b=FFgus=09con=0At=0Dent=20zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz=
            zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzr�Tr��	rrKrr�rkrlrrrLrr�rrr�,test_set_audio_aif_with_quoted_printable_cteds	�z?TestRawDataManager.test_set_audio_aif_with_quoted_printable_ctecCsj|��}d}|j|dddd�|�t|�t�d��d�dd	�|�|jd
d�|�|�|��|�dS)Nr�ZvideoZmpegZbinaryr�z~            Content-Type: video/mpeg
            Content-Transfer-Encoding: binary
            MIME-Version: 1.0

            r�s7b�gus	con
t
ent zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzs=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzTr�r�r�rrr�#test_set_video_mpeg_with_binary_ctezs��	�
z6TestRawDataManager.test_set_video_mpeg_with_binary_ctecCsj|��}d}|j|dddd�|�t|�t�d��d�dd	�|�|jd
d�|�|�|��|�dS)NsMb�gus	con
t
ent
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
�applicationzoctet-streamZ8bitr�z�            Content-Type: application/octet-stream
            Content-Transfer-Encoding: 8bit
            MIME-Version: 1.0

            r�sb�gus	con
t
ent
s=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Tr�r�r�rrr�/test_set_application_octet_stream_with_8bit_cte�s���zBTestRawDataManager.test_set_application_octet_stream_with_8bit_ctecCsV|��}d}|jj}tj|||dd�|dd�|dd�fd�|�t|�t�d��dS)	Nr�rZr�r�r�zI'm talking to myself.��headersz�            Content-Type: text/plain; charset="utf-8"
            To: foo@example.com
            From: foo@example.com
            Subject: I'm talking to myself.
            Content-Transfer-Encoding: 7bit

            Simple message.
            )	rr�header_factoryrrKrr@rkrl�rr"r�r�rrr�$test_set_headers_from_header_objects�s�z7TestRawDataManager.test_set_headers_from_header_objectscCs6|��}d}tj||dd�|�t|�t�d��dS)Nr�)zX-Foo-Header: foozX-Bar-Header: barr�z�            Content-Type: text/plain; charset="utf-8"
            X-Foo-Header: foo
            X-Bar-Header: bar
            Content-Transfer-Encoding: 7bit

            Simple message.
            )rrrKrr@rkrlr�rrr�test_set_headers_from_strings�sz0TestRawDataManager.test_set_headers_from_stringsc	Cs8|��}d}|�td��tj||dd�W5QRXdS)Nr�r)zContent-Type: foo/barr�)rr,r�rrKr�rrr�<test_set_headers_with_invalid_duplicate_string_header_raises�szOTestRawDataManager.test_set_headers_with_invalid_duplicate_string_header_raisesc	CsH|��}d}|jj}|�td��tj|||dd�fd�W5QRXdS)Nr�rz foo/barr�)rrr�r,r�rrKr�rrr�<test_set_headers_with_invalid_duplicate_header_header_raises�s�zOTestRawDataManager.test_set_headers_with_invalid_duplicate_header_header_raisesc	CsF|��}d}|�td��$tj||dd�t|dj�W5QRXdS)Nr��a@fairly@@invalid@address)zTo: a@fairly@@invalid@addressr�rZ)rr,r�rrK�print�defectsr�rrr�4test_set_headers_with_defective_string_header_raises�s
zGTestRawDataManager.test_set_headers_with_defective_string_header_raisesc	CsV|��}d}|jj}|�td��,tj|||dd�fd�t|dj�W5QRXdS)Nr�r�rZr�)	rrr�r,r�rrKr�r�r�rrr�4test_set_headers_with_defective_header_header_raises�s�zGTestRawDataManager.test_set_headers_with_defective_header_header_raisescCs*|��}|jddd�|�|dd�dS)Nr�inline��disposition�Content-Disposition�rrKrrmrrr�test_set_disposition_inline�sz.TestRawDataManager.test_set_disposition_inlinecCs*|��}|jddd�|�|dd�dS)NrZ
attachmentr�r�r�rmrrr�test_set_disposition_attachment�sz2TestRawDataManager.test_set_disposition_attachmentcCs*|��}|jddd�|�|dd�dS)Nrr�r�r�rmrrr�test_set_disposition_foo�sz+TestRawDataManager.test_set_disposition_foocCs*|��}|jddd�|�|dd�dS)Nr�bar.txt��filenamer�zattachment; filename="bar.txt"r�rmrrr�test_set_filename�s

�z$TestRawDataManager.test_set_filenamecCs,|��}|jdddd�|�|dd�dS)Nrr�r��r�r�r�zinline; filename="bar.txt"r�rmrrr�(test_set_filename_and_disposition_inline�sz;TestRawDataManager.test_set_filename_and_disposition_inlinecCs6|��}|jddd�|�t|�t�d��d��dS)Nruábárî.txtr�a            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 7bit
            Content-Disposition: attachment;
             filename*=utf-8''%C3%A1b%C3%A1r%C3%AE.txt
            MIME-Version: 1.0

            foo
            r�)rrKrr�rkrlrrrmrrr�test_set_non_ascii_filename�s
�z.TestRawDataManager.test_set_non_ascii_filename)r�r)r�)r�)�content)r�Zoctet_stream)r�)r�r�r)r�)Z
text_plainZ	text_htmlZapplication_octet_streamZ
image_jpegZmessage_rfc822Zmessage_external_bodycCsB|��}|j|f|�ddi�|�|dd�|�|dd�dS)Nr�)zTo: foo@example.comzFrom: bar@simple.netr�r�r�zbar@simple.netr��rrH�mimetyper"rrr�!content_object_as_header_receiversz4TestRawDataManager.content_object_as_header_receivercCs2|��}|j|f|�ddi�|�|dd�dS)Nr�r�r�r�r�rrr�-content_object_as_disposition_inline_receiversz@TestRawDataManager.content_object_as_disposition_inline_receivercCsZ|��}|j|f|�ddd��|�|dd�|�|��d�|�|djdd�dS)Nr�ubár.txtr�r�uinline; filename="bár.txt"r�)rrKr�get_filename�paramsr�rrr�-content_object_as_non_ascii_filename_receiver"s
z@TestRawDataManager.content_object_as_non_ascii_filename_receivercCs2|��}|j|f|�ddi�|�|dd�dS)NZcidZsome_random_stuffz
Content-IDr�r�rrr�content_object_as_cid_receiver)sz1TestRawDataManager.content_object_as_cid_receivercCsP|��}ddd�}|j|f|�d|i�t|t�r:d|d<|�|dj|�dS)Nubárr`)rr[r�r�r�r)rrK�
isinstancer@rr�)rrHr�r"r�rrr�!content_object_as_params_receiver.s

z4TestRawDataManager.content_object_as_params_receiverN)?r2r3r4rrcZclonerrrdrnrorsrtrurwr{r|r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�Zcontent_object_paramsr�r�r�r�r�rrrrre�s�	�				

	








0		
�
re�__main__)ZunittestZtest.test_emailrrrkZemailrZ
email.messagerZemail.contentmanagerrrrrer2�mainrrrr�<module>s }4