403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python312/Lib/test/test_email/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python312/Lib/test/test_email/__pycache__/test_contentmanager.cpython-312.opt-1.pyc
�

���g`����ddlZddlmZmZddlZddlmZddlmZddl	m
Z
mZeGd�de��ZeGd�d	e��Z
ed
k(rej�yy)�N)�
TestEmailBase�parameterize)�policy)�EmailMessage)�ContentManager�raw_data_managerc
���eZdZejZeZdddd�Zd�Zd�Z	d�Z
Gd�d	e�Zed
zdzZ
Gd�d
e�Zed
zdzZdefdefdddefde
fdddefdddd�Zd�Zd�Zd�Zd�Zd �Zy!)"�TestContentManager)��
text/plain)��text)��)�	full_type�
maintype_only�null_keyc��d	d�}t�}|j||�|j�}d|d<d|d<|j|j	|d��d�y)
Nc��|d}||fS�N�X-Bar-Header�)�msg�foo�bars   �8C:\Python312\\Lib\test\test_email\test_contentmanager.py�
foo_getterzATestContentManager.get_key_as_get_content_key.<locals>.foo_getters���n�%�C���8�O�r�Content-Typerrr�r)rr�N)r�add_get_handler�
_make_message�assertEqual�get_content)�self�order�keyr�cm�ms      r�get_key_as_get_content_keyz-TestContentManager.get_key_as_get_content_keys`��	��
��
���3�
�+���� ��(��.��!��.���������u��5�~�Frc�<�d�}d�}t�}|j||�|jj�D]\}}||kDs�|j||��|j	�}d|d<d|d<d|d<|j|j
|�d�y)	Nc��|dSrr�rs r�
bar_getterzGTestContentManager.get_key_as_get_content_key_order.<locals>.bar_getter!�
���~�&�&rc��|dS�N�X-Foo-Headerrr.s rrzGTestContentManager.get_key_as_get_content_key_order.<locals>.foo_getter#r0rrrrrrr3)rr"�get_key_params�valuesr#r$r%)r&r'r(r/rr)�
precedencer*s        r� get_key_as_get_content_key_orderz3TestContentManager.get_key_as_get_content_key_order s���	'�	'�
�
��
���3�
�+�#�2�2�9�9�;�O�J���E�!��"�"�3�
�3� <�
��� ��(��.��!��.��!��.���������*�U�4rc��t�}|j�}d|d<|jtd�5|j	|�ddd�y#1swYyxYw)Nrr)rr#�assertRaisesRegex�KeyErrorr%�r&r)r*s   r�:test_get_content_raises_if_unknown_mimetype_and_no_defaultzMTestContentManager.test_get_content_raises_if_unknown_mimetype_and_no_default0sJ��
�
����� ��(��.��
�
#�
#�H�l�
;��N�N�1��<�
;�
;�s�A�Ac��eZdZy)�TestContentManager.BaseThingN��__name__�
__module__�__qualname__rrr�	BaseThingr>7���rrC�.r>c��eZdZy)�TestContentManager.ThingNr?rrr�ThingrG:rDrrHrGrr)r
rG)rrH��)�r>)�rC�)�	zbuiltins.str)�
�str)�N)�type�	full_path�qualname�name�	base_type�base_full_path�
base_qualname�	base_name�str_type�
str_full_path�str_namerc��dd�}t�}|j||�|j�}|j�}|j	||d��|j|dd�|j|j
�|�y)Nc�0�||d<|j|�yr2��set_payload)r�objrs   r�
foo_setterzATestContentManager.set_key_as_set_content_key.<locals>.foo_setterNs��"%�C����O�O�C� rrr r3r!)r�add_set_handlerr#rH�set_contentr$�get_payload)r&r'r(rbr)r*�msg_objs       r�set_key_as_set_content_keyz-TestContentManager.set_key_as_set_content_keyMsw��	!��
��
���3�
�+���� ���*�*�,��
���q�'�u��-�����>�*�E�2��������'�2rc��d�}d�}t�}|j||�|jj�D]\}}||kDs�|j||��|j	�}|j�}|j
||�|j|dd�|j|j�|�y)Nc�0�d|d<|j|�y)Nr�X-FooBar-Headerr_�rras  rrbzGTestContentManager.set_key_as_set_content_key_order.<locals>.foo_setterZs��%*�C�!�"��O�O�C� rc��d|d<y)Nrrjrrks  r�
bar_setterzGTestContentManager.set_key_as_set_content_key_order.<locals>.bar_setter]s
��%*�C�!�"rrjr)	rrcr4r5r#rHrdr$re)	r&r'r(rbrmr)r6r*rfs	         r� set_key_as_set_content_key_orderz3TestContentManager.set_key_as_set_content_key_orderYs���	!�	+�
�
��
���3�
�+�#�2�2�9�9�;�O�J���E�!��"�"�3�
�3� <�
��� ���*�*�,��
���q�'�"�����,�-�u�5��������'�2rc���t�}|j�}|j�}|jt|j
�5|j
||�ddd�y#1swYyxYwr!)rr#rHr9r:�testobject_full_pathrd)r&r)r*rfs    r�6test_set_content_raises_if_unknown_type_and_no_defaultzITestContentManager.test_set_content_raises_if_unknown_type_and_no_defaultjsT��
�
����� ���*�*�,��
�
#�
#�H�d�.G�.G�
H��N�N�1�g�&�I�
H�
H�s�A'�'A0c��t�}|j�}d|d<|jt�5|j	|d�ddd�y#1swYyxYw)Nz
multipart/foor�test)rr#�assertRaises�	TypeErrorrdr;s   r�.test_set_content_raises_if_called_on_multipartzATestContentManager.test_set_content_raises_if_called_on_multipartqsJ��
�
����� ��+��.��
�
�
�y�
)��N�N�1�f�%�*�
)�
)�s�A�Ac��|j�}d|d<d|d<d|d<|jd�t�}|jtd��|jd	|�
�|j
|d�|j
|d�|j|dd�|j
|j��y)NrzContent-Fooz	text/htmlrrs�To�abcc��yr!r)�args�kws  r�<lambda>zITestContentManager.test_set_content_calls_clear_content.<locals>.<lambda>s��Dr�xyz)�content_manager)	r#r`rrcrPrd�assertIsNoner$re)r&r*r)s   r�$test_set_content_calls_clear_contentz7TestContentManager.test_set_content_calls_clear_contentxs������ �� ��-��'��.����$��	�
�
�e��
�
��
���3� 8�9�	�
�
�e�R�
�0����!�M�*�+����!�N�+�,�����4��&�)����!�-�-�/�*rN)r@rArBr�defaultr�messager4r+r7r<rPrC�baseobject_full_pathrHrp�set_key_paramsrgrnrqrvr�rrrr
r
	s����^�^�F��G�/�(�$�
�N�	G�5� �
�C�
�#�c�>�,J�J��
�	�
�#�c�>�,F�F����L��!5�7�=�*���,��!5�7�A�.���J�1�(�'�

�N�
3�3�"'�&�+rr
c��eZdZejjde��ZeZd�Z	d�Z
d�Zd�Zd�Z
d�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d�Z"d�Z#d�Z$d�Z%d �Z&d!�Z'd"�Z(d#�Z)d$�Z*d%�Z+d&�Z,d'�Z-d(�Z.d)�Z/d*�Z0d+�Z1d,�Z2d-�Z3d.�Z4d/�Z5d0�Z6d1�Z7d2�Z8d3�Z9d4d5d6d7e�d8fe�d9fd:�Z:d;�Z;d<�Z<d=�Z=d>�Z>d?�Z?y@)A�TestRawDataManager�<)�max_line_lengthrc��|jtjd��}|jt	j
|�d�y)N�J            Content-Type: text/plain

            Basic text.
            zBasic text.
��_str_msg�textwrap�dedentr$rr%�r&r*s  r�test_get_text_plainz&TestRawDataManager.test_get_text_plain�s>���M�M�(�/�/�+��
��
	
���)�5�5�a�8�/�Jrc��|jtjd��}|jt	j
|�d�y)NzP            Content-Type: text/html

            <p>Basic text.</p>
            z<p>Basic text.</p>
r�r�s  r�test_get_text_htmlz%TestRawDataManager.test_get_text_html�sA���M�M�(�/�/�+��
��
	
���)�5�5�a�8�/�	1rc��|jtjd�jd��}|j	tj|�d�y)Nu\            Content-Type: text/plain; charset=latin1

            Basìc tëxt.
            �latin1�Basìc tëxt.
)�
_bytes_msgr�r��encoder$rr%r�s  r�test_get_text_plain_latin1z-TestRawDataManager.test_get_text_plain_latin1�sK���O�O�H�O�O�-�����!�	
#��
	
���)�5�5�a�8�:K�Lrc��|jtjd��}|jt	j
|�d�y)Nz�            Content-Type: text/plain; charset="latin-1"
            Content-Transfer-Encoding: quoted-printable

            Bas=ECc t=EBxt.
            r�r�r�s  r�+test_get_text_plain_latin1_quoted_printablez>TestRawDataManager.test_get_text_plain_latin1_quoted_printable��?���M�M�(�/�/�+��
��	
���)�5�5�a�8�:K�Lrc��|jtjd��}|jt	j
|�d�y)Nz�            Content-Type: text/plain; charset="utf8"
            Content-Transfer-Encoding: base64

            QmFzw6xjIHTDq3h0Lgo=
            r�r�r�s  r�test_get_text_plain_utf8_base64z2TestRawDataManager.test_get_text_plain_utf8_base64�r�rc��|jtjd��}|jt	j
|�d�y)N��            Content-Type: text/plain; charset="utf8"
            Content-Transfer-Encoding: quoted-printable

            Bas=c3=acc t=c3=abxt=fd.
            uBasìc tëxt�.
r�r�s  r�-test_get_text_plain_bad_utf8_quoted_printablez@TestRawDataManager.test_get_text_plain_bad_utf8_quoted_printable�s?���M�M�(�/�/�+��
��	
���)�5�5�a�8�:N�Orc��|jtjd��}|jt	j
|d��d�y)Nr��ignore��errorsr�r�r�s  r�;test_get_text_plain_bad_utf8_quoted_printable_ignore_errorszNTestRawDataManager.test_get_text_plain_bad_utf8_quoted_printable_ignore_errors��C���M�M�(�/�/�+��
��	
���)�5�5�a��I�*�	,rc��|jtjd��}|jt	j
|d��d�y)Nu�            Content-Type: text/plain; charset="utf8"
            Content-Transfer-Encoding: base64

            QmFzw6xjIHTDq3h0Lgoÿ=
            r�r�r�r�r�s  r�8test_get_text_plain_utf8_base64_recoverable_bad_CTE_datazKTestRawDataManager.test_get_text_plain_utf8_base64_recoverable_bad_CTE_data�r�rc���|jtjd��}|jt�5tj|d��ddd�y#1swYyxYw)Nr�r�r �r�r�r�rtrurr%r�s  r�test_get_text_invalid_keywordz0TestRawDataManager.test_get_text_invalid_keyword�sL���M�M�(�/�/�+��
��
�
�
�y�
)��(�(���9�*�
)�
)���A�A$c�6�tjd�}dj�D]e}|j|��5|j	|j|dz��}|j
tj|�d�ddd��gy#1swY�rxYw)Nzu            Content-Type: {}
            Content-Transfer-Encoding: base64

            Ym9ndXMgZGF0YQ==
            zaudio image video application)�maintypez/foos
bogus data)	r�r��split�subTestr��formatr$rr%)r&�templater�r*s    r�test_get_non_textz$TestRawDataManager.test_get_non_text�s���?�?�$���8�=�=�?�H����x��0��M�M�(�/�/�(�6�/�"B�C��� � �!1�!=�!=�a�!@�-�P�1�0�@�0�0�s�A	B�B	c���|jtjd��}|jt�5tj|d��ddd�y#1swYyxYw)Nz|            Content-Type: image/jpg
            Content-Transfer-Encoding: base64

            Ym9ndXMgZGF0YQ==
            r�r�r�r�s  r�!test_get_non_text_invalid_keywordz4TestRawDataManager.test_get_non_text_invalid_keyword�sL���M�M�(�/�/�+��
���
�
�y�
)��(�(��8�<�*�
)�
)�r�c���|jtjd��}|jt�5tj|�ddd�y#1swYyxYw)Nzm            Content-Type: multipart/mixed; boundary="==="

            --===
            --===--
            )r�r�r�rtr:rr%r�s  r�test_get_raises_on_multipartz/TestRawDataManager.test_get_raises_on_multipart�sJ���M�M�(�/�/�+��
���
�
�x�
(��(�(��+�)�
(�
(�s�A�A"c��tjd�}dj�D]�}|j|��5|j	|j|��}t
j|�}|j||j�|jt
j|�d�|j|dd�|j|djdjd	�ddd���y#1swY��xYw)
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)
r�r�r�r�r�r�rr%�assertIsInstancer�r$�	addresses�username)r&r�r�r*�sub_msgs     r�)test_get_message_rfc822_and_external_bodyz<TestRawDataManager.test_get_message_rfc822_and_external_bodys����?�?�$���.�3�3�5�G����g��.��M�M�(�/�/�'�":�;��*�6�6�q�9���%�%�g�t�|�|�<�� � �!1�!=�!=�g�!F�!7�9�� � ����0A�B�� � ����!:�!:�1�!=�!F�!F��N�/�.�6�.�.�s�B8C>�>D	c��|jtjd��}|jt	j
|�ddd�y)Nz�            Content-Type: message/partial

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

            The real body is in another message.
            rOs
To: foo@exr�r�s  r�9test_get_message_non_rfc822_or_external_body_yields_byteszLTestRawDataManager.test_get_message_non_rfc822_or_external_body_yields_bytessE���M�M�(�/�/�+��
��	
���)�5�5�a�8��"�=�}�Mrc�R�|j�}d}tj||�|jt	|�tjd��|j|jd��jd�|�|j|j�|�y)N�Simple message.
z�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 7bit

            Simple message.
            T��decode�utf-8�
r#rrdr$rPr�r�rer�r%�r&r*�contents   r�test_set_text_plainz&TestRawDataManager.test_set_text_plain%s������ ��%���$�$�Q��0�����Q�����2�"�	�	
������d��3�:�:�7�C�W�M��������'�2rc�R�|j�}d}tj||�|jt	|�tjd��|j|jd��jd�d�|j|j�d�y)Nrzp            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 7bit


            Tr�r��
r�r�s   r�test_set_text_plain_nullz+TestRawDataManager.test_set_text_plain_null2s������ �����$�$�Q��0�����Q�����2�"�	�	
������d��3�:�:�7�C�T�J��������$�/rc�V�|j�}d}tj||d��|jt	|�tjd��|j|jd��jd�|�|j|j�|�y)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�s   r�test_set_text_htmlz%TestRawDataManager.test_set_text_html?s������ ��,���$�$�Q���@�����Q�����2�"�	�	
������d��3�:�:�7�C�W�M��������'�2rc�V�|j�}d}tj||d��|jt	|�tjd��|j|jd��jd�|�|j|j�|�y)Nr��latin-1��charsetz�            Content-Type: text/plain; charset="iso-8859-1"
            Content-Transfer-Encoding: 7bit

            Simple message.
            Tr�r�r�r�s   r�test_set_text_charset_latin_1z0TestRawDataManager.test_set_text_charset_latin_1Ls������ ��%���$�$�Q���C�����Q�����2�"�	�	
������d��3�:�:�7�C�W�M��������'�2rc�R�|j�}d}tj||�|jt	|�tjd��|j|jd��jd�|�|j|j�|�y)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�s   r�(test_set_text_plain_long_line_heuristicsz;TestRawDataManager.test_set_text_plain_long_line_heuristicsYs������ ��9���$�$�Q��0�����Q�����2�"�	�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj||�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)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��r#rrdr$�bytesr�r�r�rer�r%r�s   r�5test_set_text_short_line_minimal_non_ascii_heuristicszHTestRawDataManager.test_set_text_short_line_minimal_non_ascii_heuristicshs������ ��L���$�$�Q��0�����q��8�?�?�4�$�
����	"�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj||�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)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�s   r�4test_set_text_long_line_minimal_non_ascii_heuristicszGTestRawDataManager.test_set_text_long_line_minimal_non_ascii_heuristicsus������ ��#��	�$�$�Q��0�����q��8�?�?�4�$�����	"�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj||�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)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�s   r�=test_set_text_11_lines_long_line_minimal_non_ascii_heuristicszPTestRawDataManager.test_set_text_11_lines_long_line_minimal_non_ascii_heuristics�s������ ��#��	�$�$�Q��0�����q��8�?�?�4�$�����	"�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj||�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)N�áàäéèęöő.
u�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit

            áàäéèęöő.
            r�Tr�r�r�s   r�*test_set_text_maximal_non_ascii_heuristicsz=TestRawDataManager.test_set_text_maximal_non_ascii_heuristics�s������ ��'���$�$�Q��0�����q��8�?�?�4�$�
����	"�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj||�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)Nu









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










            áàäéèęöő.
            r�Tr�r�r�s   r�3test_set_text_11_lines_maximal_non_ascii_heuristicszFTestRawDataManager.test_set_text_11_lines_maximal_non_ascii_heuristics�s������ ��1���$�$�Q��0�����q��8�?�?�4�$�
����	"�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj||�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)Nu�áàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöőáàäéèęöő.
a�            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: base64

            w6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOgw6TDqcOoxJnD
            tsWRw6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOgw6TDqcOo
            xJnDtsWRw6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOgw6TD
            qcOoxJnDtsWRw6HDoMOkw6nDqMSZw7bFkcOhw6DDpMOpw6jEmcO2xZHDocOg
            w6TDqcOoxJnDtsWRLgo=
            r�Tr�r�r�s   r�4test_set_text_long_line_maximal_non_ascii_heuristicszGTestRawDataManager.test_set_text_long_line_maximal_non_ascii_heuristics�s������ ��Y��	�$�$�Q��0�����q��8�?�?�	4�	$�����		"�	
������d��3�:�:�7�C�W�M��������'�2rc�p�|j�}d}tj|d�|jt	|�tjd�jd��|j|jd��jd�|�|j|j�|�y)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�s   r�=test_set_text_11_lines_long_line_maximal_non_ascii_heuristicszPTestRawDataManager.test_set_text_11_lines_long_line_maximal_non_ascii_heuristics�s���
��� ��Y��	�$�$�Q�)n�	o�	
����q��8�?�?�4�$�����	"� 	
������d��3�:�:�7�C�W�M��������'�2rc��|j�}|jt�5tj|dd��ddd�y#1swYyxYw)Nr��7bit��cte�r#rt�UnicodeErrorrrdr�s  r�,test_set_text_non_ascii_with_cte_7bit_raisesz?TestRawDataManager.test_set_text_non_ascii_with_cte_7bit_raises�s=����� ��
�
�
�|�
,��(�(��+@�f�M�-�
,�
,���A�Ac��|j�}|jt�5tj|dd��ddd�y#1swYyxYw)Nr��asciir�r�r�s  r�1test_set_text_non_ascii_with_charset_ascii_raiseszDTestRawDataManager.test_set_text_non_ascii_with_charset_ascii_raises�s=����� ��
�
�
�|�
,��(�(��+@�'�R�-�
,�
,�r�c��|j�}|jt�5tj|ddd��ddd�y#1swYyxYw)Nr�r�r�)r�r�r�r�s  r�>test_set_text_non_ascii_with_cte_7bit_and_charset_ascii_raiseszQTestRawDataManager.test_set_text_non_ascii_with_cte_7bit_and_charset_ascii_raises�s@����� ��
�
�
�|�
,��(�(��+@�f�V]�^�-�
,�
,�s�A	�	Ac�p�|j�}d|d<|j�}d|d<d|d<d|d<|jd�tj||�|jt	|�tjd	��|jd
�}|j||j�|jt	|�t	|��|j|j�|j�|jt	|j��t	|��y)NzForwarded message�Subjectzpython@vivarium.orgrx�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)r#rdrr$rPr�r�rer�r�r%)r&r*r��payloads    r�test_set_messagez#TestRawDataManager.test_set_message�s������ ��*��)���$�$�&��-���
�,����3��	�����6�7��$�$�Q��0�����Q�����
2�
"�
	��-�-��"�����g�t�|�|�4�����W��s�7�|�4����a�m�m�o�t�|�|�<�����Q�]�]�_�-�s�7�|�<rc�~�|j�}d|d<|j�}d|d<d|d<d|d<|jd�tj||�|jt	|�tjd	�jd
��|j|j|jj��tjd��|j|j�|j�|jt|j��t|��y)
Nz
Escape reportr�r�rxzvictim@monty.orgr��Helpu: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�)�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=
            )r#rdrr$r�r�r�r��	as_stringrr�r�r%r�rPr�s   r�4test_set_message_with_non_ascii_and_coercion_to_7bitzGTestRawDataManager.test_set_message_with_non_ascii_and_coercion_to_7bits����� ��&��)���$�$�&��*���
�,����#��	�����)�	*��$�$�Q��0�����q��8�?�?�
4�
$�����
	"�&	
������$�+�+�2M�2M��N�!���*��	� 	
���a�m�m�o�t�|�|�<�����Q�]�]�_�-�s�7�|�<rc	�D�|j�}|j�}dj�D]�}dj�D]�}|j||��5|jt�5}|j|||��ddd�t
j�}|j||�|j||�ddd�����d}dj�D]�}|j||��5|jt�5}|j|||��ddd�t
j�}|j||�|j||�ddd���y#1swY��xYw#1swY��CxYw#1swY�fxYw#1swY��xYw)Nzquoted-printable base64r�)r�r�r��
external-bodyz8bit binary)	r#r�r�rt�
ValueErrorrdrP�	exception�assertIn)r&r*r�r�r��ar�excs       r�#test_set_message_invalid_cte_raisesz6TestRawDataManager.test_set_message_invalid_cte_raises@sT����� ���$�$�&��,�2�2�4�C�1�7�7�9���\�\�c�7�\�;��*�*�:�6�"��
�
�g�w�C�
�@�7��b�l�l�+�C��M�M�#�s�+��M�M�'�3�/�<�;�:�5�"�� �&�&�(�C����#�w��7��&�&�z�2�b��M�M�'�7��M�<�3��"�,�,�'���
�
�c�3�'��
�
�g�s�+�8�7�)�
7�6��<�;��3�2��8�7�sJ�E=�0E1	�AE=�:F�F
�%AF�1E:
�6E=�=F�
F�F�F	c��dtd�td�fD]�}|j|��5|j�}t	j
||dd�|j
t|�tjd��|j
|jd��|�|j
|j�|�ddd���y#1swY��xYw)Ns
bogus content)r��image�jpegz�                    Content-Type: image/jpeg
                    Content-Transfer-Encoding: base64

                    Ym9ndXMgY29udGVudA==
                    Tr�)�	bytearray�
memoryviewr�r#rrdr$rPr�r�rer%)r&r�r*s   r�test_set_image_jpgz%TestRawDataManager.test_set_image_jpgTs���(�!�"2�3�"�#3�4�6�G����g��.��&�&�(�� �,�,�Q���&�I�� � ��Q�����:�*��� � ����d��!;�W�E�� � �����'�:�/�.�6�/�.�s�BC�C	c�P�|j�}d}|j|ddd��|jt|�t	j
d�j
d��|j|jd�	�|�|j|j�|�y)
N�tb�gus	con
t
ent zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz�audio�aifzquoted-printabler�a            Content-Type: audio/aif
            Content-Transfer-Encoding: quoted-printable
            MIME-Version: 1.0

            b=FFgus=09con=0At=0Dent=20zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz=
            zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzr�Tr��	r#rdr$r�r�r�r�rer%r�s   r�,test_set_audio_aif_with_quoted_printable_ctez?TestRawDataManager.test_set_audio_aif_with_quoted_printable_cteds���
��� ��6��	�
�
�g�w��3E�
�F�����q��8�?�?�4C�$D�EK�F�9�DU�
	W�	
������d��3�W�=��������'�2rc�\�|j�}d}|j|ddd��|jt|�t	j
d�j
d�dzd	z�|j|jd
��|�|j|j�|�y)Nr�video�mpeg�binaryr�z~            Content-Type: video/mpeg
            Content-Transfer-Encoding: binary
            MIME-Version: 1.0

            r�s7b�gus	con
t
ent zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzs=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzTr�rr�s   r�#test_set_video_mpeg_with_binary_ctez6TestRawDataManager.test_set_video_mpeg_with_binary_ctezs������ ��6��	�
�
�g�w��H�
�=�����q��8�?�?�4�$�
����
M�$M�
M�	$M�		N�	
������d��3�W�=��������'�2rc�\�|j�}d}|j|ddd��|jt|�t	j
d�j
d�dzd	z�|j|jd
��|�|j|j�|�y)NsMb�gus	con
t
ent
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
�application�octet-stream�8bitr�z�            Content-Type: application/octet-stream
            Content-Transfer-Encoding: 8bit
            MIME-Version: 1.0

            r�sb�gus	con
t
ent
s=zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
Tr�rr�s   r�/test_set_application_octet_stream_with_8bit_ctezBTestRawDataManager.test_set_application_octet_stream_with_8bit_cte�s���
��� ��>��	�
�
�g�}�n�&�
�I�����q��8�?�?�4�$�
����&�
$'�
N�$N�	O�	
������d��3�W�=��������'�2rc
��|j�}d}|jj}tj|||dd�|dd�|dd�f��|jt
|�tjd��y)	Nr�rxr�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.
            )	r#r�header_factoryrrdr$rPr�r��r&r*r�r's    r�$test_set_headers_from_header_objectsz7TestRawDataManager.test_set_headers_from_header_objects�s������ ��%�����3�3���$�$�Q���4�!2�3��6�#4�5��9�&>�?�:A�	B�	
����Q�����2�"�	rc��|j�}d}tj||d��|jt	|�tjd��y)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.
            )r#rrdr$rPr�r�r�s   r�test_set_headers_from_stringsz0TestRawDataManager.test_set_headers_from_strings�sR����� ��%���$�$�Q��:"�	#�	
����Q�����2�"�	rc��|j�}d}|jtd�5tj||d��ddd�y#1swYyxYw)Nr�r)zContent-Type: foo/barr%)r#r9rrrdr�s   r�<test_set_headers_with_invalid_duplicate_string_header_raiseszOTestRawDataManager.test_set_headers_with_invalid_duplicate_string_header_raises�sI����� ��%��
�
#�
#�J��
?��(�(��G�>*�
�@�
?�
?�s�A�Ac	���|j�}d}|jj}|jtd�5tj|||dd�f��ddd�y#1swYyxYw)Nr�rz foo/barr%)r#rr'r9rrrdr(s    r�<test_set_headers_with_invalid_duplicate_header_header_raiseszOTestRawDataManager.test_set_headers_with_invalid_duplicate_header_header_raises�sb����� ��%�����3�3��
�
#�
#�J��
?��(�(��G��~�z�:�>=�
�@�
?�
?�s�!A)�)A2c���|j�}d}|jtd�5tj||d��t|dj�ddd�y#1swYyxYw)Nr��a@fairly@@invalid@address)zTo: a@fairly@@invalid@addressr%rx)r#r9rrrd�print�defectsr�s   r�4test_set_headers_with_defective_string_header_raiseszGTestRawDataManager.test_set_headers_with_defective_string_header_raises�s\����� ��%��
�
#�
#�J�0K�
L��(�(��G�>2�
�
�!�D�'�/�/�"�	M�
L�
L�s�1A#�#A,c	��|j�}d}|jj}|jtd�5tj|||dd�f��t|dj�ddd�y#1swYyxYw)Nr�r1rxr%)	r#rr'r9rrrdr2r3r(s    r�4test_set_headers_with_defective_header_header_raiseszGTestRawDataManager.test_set_headers_with_defective_header_header_raises�sw����� ��%�����3�3��
�
#�
#�J�0K�
L��(�(��G��t�%@�A�>D�
�
�!�D�'�/�/�"�	M�
L�
L�s�9B�B
c�t�|j�}|jdd��|j|dd�y)Nr�inline��disposition�Content-Disposition�r#rdr$r�s  r�test_set_disposition_inlinez.TestRawDataManager.test_set_disposition_inline�s6����� ��	�
�
�e��
�2�����0�1�8�<rc�t�|j�}|jdd��|j|dd�y)Nr�
attachmentr9r;r<r�s  r�test_set_disposition_attachmentz2TestRawDataManager.test_set_disposition_attachment�s6����� ��	�
�
�e��
�6�����0�1�<�@rc�t�|j�}|jdd��|j|dd�y)Nrr9r;r<r�s  r�test_set_disposition_fooz+TestRawDataManager.test_set_disposition_foo�s6����� ��	�
�
�e��
�/�����0�1�5�9rc�t�|j�}|jdd��|j|dd�y)Nr�bar.txt��filenamer;zattachment; filename="bar.txt"r<r�s  r�test_set_filenamez$TestRawDataManager.test_set_filename�s9����� ��	�
�
�e�i�
�0�����0�1�9�	;rc�v�|j�}|jddd��|j|dd�y)Nrr8rD�r:rFr;zinline; filename="bar.txt"r<r�s  r�(test_set_filename_and_disposition_inlinez;TestRawDataManager.test_set_filename_and_disposition_inline�s9����� ��	�
�
�e��I�
�F�����0�1�3O�Prc���|j�}|jdd��|jt|�t	j
d�j
d��y)Nruábárî.txtrEa            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�)r#rdr$r�r�r�r�r�s  r�test_set_non_ascii_filenamez.TestRawDataManager.test_set_non_ascii_filename�sO����� ��	�
�
�e�n�
�5�����q��8�?�?�4�$�����	"rc��|j�}|jdddd��|jt|�t	j
d��y)NsASCII-only message.
r r!r�)r�r�r�z�            Content-Type: application/octet-stream
            Content-Transfer-Encoding: 7bit
            MIME-Version: 1.0

            ASCII-only message.
            )r#rdr$rPr�r�r�s  r�test_set_content_bytes_cte_7bitz2TestRawDataManager.test_set_content_bytes_cte_7bitsP����� ��	�
�
�.�"�N��	�	H�����Q�����2�"�	r)r�r)r�)r�)�content)r �octet_stream)rO)rrr)r)�
text_plain�	text_html�application_octet_stream�
image_jpeg�message_rfc822�message_external_bodyc��|j�}|j|g|��ddi�|j|dd�|j|dd�y)Nr&)zTo: foo@example.comzFrom: bar@simple.netr�r�r�zbar@simple.netr<�r&ra�mimetyper*s    r�!content_object_as_header_receiverz4TestRawDataManager.content_object_as_header_receiver!s]����� ����
�
�c�	%�H�	%�/$�	%�	
����4��"3�4�����6��$4�5rc�z�|j�}|j|g|��ddi�|j|dd�y)Nr:r8r;r<rXs    r�-content_object_as_disposition_inline_receiverz@TestRawDataManager.content_object_as_disposition_inline_receiver)s>����� ����
�
�c�;�H�;�(�;�����0�1�8�<rc��|j�}|j|g|��ddd��|j|dd�|j|j�d�|j|djdd�y)Nr8ubár.txtrIr;uinline; filename="bár.txt"rF)r#rdr$�get_filename�paramsrXs    r�-content_object_as_non_ascii_filename_receiverz@TestRawDataManager.content_object_as_non_ascii_filename_receiver.sy����� ����
�
�c�P�H�P�(�Z�P�����0�1�3P�Q�������)�:�6�����0�1�8�8��D�j�Qrc�z�|j�}|j|g|��ddi�|j|dd�y)N�cid�some_random_stuffz
Content-IDr<rXs    r�content_object_as_cid_receiverz1TestRawDataManager.content_object_as_cid_receiver5s>����� ����
�
�c�>�H�>�*=�>�����<��*=�>rc���|j�}ddd�}|j|g|��d|i�t|t�rd|d<|j	|dj
|�y)Nubárr~)rryr_r�r�r)r#rd�
isinstancerPr$r_)r&rarYr*r_s     r�!content_object_as_params_receiverz4TestRawDataManager.content_object_as_params_receiver:sa����� ����.����
�
�c�4�H�4�V�4��c�3�� '�F�9������>�*�1�1�6�:rN)@r@rArBrr��clonerrr�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�rrr
rrrr#r)r+r-r/r4r6r=r@rBrGrJrLrN�content_object_paramsrZr\r`rdrgrrrr�r��sr���^�^�
!�
!�"�2B�"�D�F��G�K�1�M�M�M�P�,�,�:�
Q�=�,�O�(
N�3�0�3�3�
3�3�3�"3�$3�3�3�&3�>N�
S�
_�
=�:.=�`,�(;� 3�,3�"3�"�$
���#�#�=�
A�
:�;�Q�
"�
�&�+�%F�5�"�9�b�/�")�)�-?�!@�
��6�=�
R�?�
;rr��__main__)�unittest�test.test_emailrrr��emailr�
email.messager�email.contentmanagerrrr
r�r@�mainrrr�<module>rqso���7���&�A��z+��z+��z+�z�x
;��x
;��x
;�v�z���H�M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit