HEX
Server: Microsoft-IIS/10.0
System: Windows NT ITPWINWEBSVR22 10.0 build 20348 (Windows Server 2022) AMD64
User: www.conferencesearch.co.uk (0)
PHP: 8.3.30
Disabled: NONE
Upload Files
File: D:/Python311/Lib/test/test_email/__pycache__/test_defect_handling.cpython-311.pyc
�

��Vc0����ddlZddlZddlZddlmZddlmZddlmZGd�d��ZGd�dee��Z	Gd	�d
ee��Z
Gd�dee��Zed
krej
��dSdS)�N)�policy)�errors)�
TestEmailBasec��eZdZejZdZejd���Zd�Z	d�Z
ejd��Z
d�Zd�Zd�Zd	�Zd
�Zd�Zd�Zd
�Zd�Zd�Zd�ZdS)�TestDefectsBaseFc#�K�dV�dS�N���self�defects  �8D:\Python311\Lib\test\test_email\test_defect_handling.py�_raise_pointzTestDefectsBase._raise_points����
������c�&�tjd��}|�tj��5|�|��}ddd��n#1swxYwY|jrdS|�d��}|�t|d����|�
t|�|����d��|�
|�|��dtj��dS)Na_            Subject: XX
            From: xx@xx.dk
            To: XX
            Mime-version: 1.0
            Content-type: multipart/mixed;
               boundary="MS_Mac_OE_3071477847_720252_MIME_Part"

            --MS_Mac_OE_3071477847_720252_MIME_Part
            Content-type: multipart/alternative;
               boundary="MS_Mac_OE_3071477847_720252_MIME_Part"

            --MS_Mac_OE_3071477847_720252_MIME_Part
            Content-type: text/plain; charset="ISO-8859-1"
            Content-transfer-encoding: quoted-printable

            text

            --MS_Mac_OE_3071477847_720252_MIME_Part
            Content-type: text/html; charset="ISO-8859-1"
            Content-transfer-encoding: quoted-printable

            <HTML></HTML>

            --MS_Mac_OE_3071477847_720252_MIME_Part--

            --MS_Mac_OE_3071477847_720252_MIME_Part
            Content-type: image/gif; name="xx.gif";
            Content-disposition: attachment
            Content-transfer-encoding: base64

            Some removed base64 encoded chars.

            --MS_Mac_OE_3071477847_720252_MIME_Part--

            r�defects�)�textwrap�dedentrr�StartBoundaryNotFoundDefect�_str_msg�raise_expected�get_payload�
assertTrue�hasattr�assertEqual�len�get_defects�assertIsInstance)r�source�msg�inners    r�test_same_boundary_inner_outerz.TestDefectsBase.test_same_boundary_inner_outers@����#"�#�#��J�
�
�v�A�
B�
B�	(�	(��-�-��'�'�C�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(���&�������"�"�������y�1�1�2�2�2�����T�-�-�e�4�4�5�5�q�9�9�9����d�.�.�u�5�5�a�8�$�@�	B�	B�	B�	B�	B��A�A�Ac��tjd��}|�tj��5|�|��}ddd��n#1swxYwY|jrdS|�|���t��|�
t|�|����d��|�|�|��dtj��|�|�|��dtj
��dS)Na�            Date: Fri, 6 Apr 2001 09:23:06 -0800 (GMT-0800)
            From: foobar
            Subject: broken mail
            MIME-Version: 1.0
            Content-Type: multipart/report; report-type=delivery-status;

            --JAB03225.986577786/zinfandel.lacita.com

            One part

            --JAB03225.986577786/zinfandel.lacita.com
            Content-Type: message/delivery-status

            Header: Another part

            --JAB03225.986577786/zinfandel.lacita.com--
            �rr)rrrr�NoBoundaryInMultipartDefectrrrr�strrrr�!MultipartInvariantViolationDefect�rr r!s   r�test_multipart_no_boundaryz*TestDefectsBase.test_multipart_no_boundaryAsh����"����$�
�
�v�A�
B�
B�	(�	(��-�-��'�'�C�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(���&������c�o�o�/�/��5�5�5�����T�-�-�c�2�2�3�3�Q�7�7�7����d�.�.�s�3�3�A�6�$�@�	B�	B�	B����d�.�.�s�3�3�A�6�$�F�	H�	H�	H�	H�	Hr$a^        Date: Wed, 14 Nov 2007 12:56:23 GMT
        From: foo@bar.invalid
        To: foo@bar.invalid
        Subject: Content-Transfer-Encoding: base64 and multipart
        MIME-Version: 1.0
        Content-Type: multipart/mixed;
            boundary="===============3344438784458119861=="{}

        --===============3344438784458119861==
        Content-Type: text/plain

        Test message

        --===============3344438784458119861==
        Content-Type: application/octet-stream
        Content-Transfer-Encoding: base64

        YWJj

        --===============3344438784458119861==--
        c��|�tj��5|�|j�d����}ddd��n#1swxYwY|jrdS|�t|�	|����d��|�
|�	|��dtj��dS)Nz"
Content-Transfer-Encoding: base64rr)rr�-InvalidMultipartContentTransferEncodingDefectr�
multipart_msg�formatrrrrr�rr!s  r�test_multipart_invalid_ctez*TestDefectsBase.test_multipart_invalid_cteus1��
�
�
��D�F�F�	@�	@��-�-��&�-�-�=�?�?�@�@�C�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@�	@����	@�	@�	@�	@�
��&�������T�-�-�c�2�2�3�3�Q�7�7�7����d�.�.�s�3�3�A�6��@�	B�	B�	B�	B�	Bs�.A�A�!Ac���|jrdS|�|j�d����}|�t|�|����d��dS)N�r�rrr.r/rrrr0s  r�test_multipart_no_cte_no_defectz/TestDefectsBase.test_multipart_no_cte_no_defect�sc����&����m�m�D�.�5�5�b�9�9�:�:������T�-�-�c�2�2�3�3�Q�7�7�7�7�7rc��|jrdSdD]l}|�|j�d|z����}|�t|�|����dd|z���mdS)N)�7bit�8bit�BINaryz
Content-Transfer-Encoding: rzcte=r4)r�cter!s   r�"test_multipart_valid_cte_no_defectz2TestDefectsBase.test_multipart_valid_cte_no_defect�s�����&���-�	H�	H�C��-�-��"�)�)�*I�#�*M�N�N�P�P�C����S��!1�!1�#�!6�!6�7�7��F�3�J�G�G�G�G�	H�	Hrc�n�tjd��}|�tj��5|�|��}ddd��n#1swxYwY|jrdS|�t|d����|�	t|�|����d��|�|�|��dtj��|�|�|��dtj
��dS)Na            From: "Allison Dunlap" <xxx@example.com>
            To: yyy@example.com
            Subject: 64423
            Date: Sun, 11 Jul 2004 16:09:27 -0300
            MIME-Version: 1.0
            Content-Type: multipart/alternative;

            Blah blah blah
            rr&rr)rrrrr'rrrrrrrrr)r*s   r�test_lying_multipartz$TestDefectsBase.test_lying_multipart�sd����	"�	�	���
�
�v�A�
B�
B�	(�	(��-�-��'�'�C�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(���&��������Y�/�/�0�0�0�����T�-�-�c�2�2�3�3�Q�7�7�7����d�.�.�s�3�3�A�6�$�@�	B�	B�	B����d�.�.�s�3�3�A�6�$�F�	H�	H�	H�	H�	Hr$c��tjd��}|�tj��5|�|��}ddd��n#1swxYwY|jrdS|�d���d��}|�t|�
|����d��|�|�
|��dtj��dS)Na�            Content-Type: multipart/mixed; boundary="AAA"
            From: Mail Delivery Subsystem <xxx@example.com>
            To: yyy@example.com

            --AAA

            Stuff

            --AAA
            Content-Type: message/rfc822

            From: webmaster@python.org
            To: zzz@example.com
            Content-Type: multipart/mixed; boundary="BBB"

            --BBB--

            --AAA--

            rr)rrrrrrrrrrrr)rr �outer�bads    r�test_missing_start_boundaryz+TestDefectsBase.test_missing_start_boundary�s3����"����:�
�
�v�A�
B�
B�	*�	*��M�M�&�)�)�E�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*�	*����	*�	*�	*�	*���&�������"�"�.�.�q�1�1������T�-�-�c�2�2�3�3�Q�7�7�7����d�.�.�s�3�3�A�6�$�@�	B�	B�	B�	B�	Br$c��|�tj��5|�d��}ddd��n#1swxYwY|jrdS|�|���dg��|�|���d��|�t|�	|����d��|�
|�	|��tjg��|�|�	|��djd��dS)Nz Line 1
Subject: test

body�Subject�bodyrrz Line 1
)rr�#FirstHeaderLineIsContinuationDefectrrr�keysrrr�assertDefectsEqual�liner0s  r�&test_first_line_is_continuation_headerz6TestDefectsBase.test_first_line_is_continuation_header�sp��
�
�
�v�I�
J�
J�	B�	B��-�-� @�A�A�C�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B�	B����	B�	B�	B�	B���&�����������i�[�1�1�1�������*�*�F�3�3�3�����T�-�-�c�2�2�3�3�Q�7�7�7����� 0� 0�� 5� 5�"(�"L�!M�	O�	O�	O�����)�)�#�.�.�q�1�6��D�D�D�D�D��A�A�	Ac��|�tj��5|�d��}ddd��n#1swxYwY|jrdS|�|���dg��|�|���d��|�|�	|��tjg��dS)Nz&Subject: test
not a header
To: abc

b
rCznot a header
To: abc

b
)
rr� MissingHeaderBodySeparatorDefectrrrrFrrGrr0s  r�"test_missing_header_body_separatorz2TestDefectsBase.test_missing_header_body_separator�s!��
�
�
�v�F�
G�
G�	O�	O��-�-� M�N�N�C�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O�	O����	O�	O�	O�	O���&�����������i�[�1�1�1�������*�*�,J�K�K�K����� 0� 0�� 5� 5�!'�!H� I�	K�	K�	K�	K�	KrJc��tjd��}|�|��}|�tj��5|�d���}ddd��n#1swxYwY|jrdS|�|d��|�	|�
|��tjg��dS)Nz�            Subject: test
            MIME-Version: 1.0
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: base64

            dmk
            T��decode�vi)rrrrr�InvalidBase64PaddingDefectrrrrGr�rr r!�payloads    r�"test_bad_padding_in_base64_payloadz2TestDefectsBase.test_bad_padding_in_base64_payload�s
����"�����m�m�F�#�#��
�
�
�v�@�
A�
A�	3�	3��o�o�T�o�2�2�G�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3���&�������%�(�(�(����� 0� 0�� 5� 5�!'�!B� C�	E�	E�	E�	E�	E��	A,�,A0�3A0c��tjd��}|�|��}|�tj��5|�d���}ddd��n#1swxYwY|jrdS|�|d��|�	|�
|��tjg��dS)Nz�            Subject: test
            MIME-Version: 1.0
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: base64

            dmk===
            TrOrQ)rrrrr�InvalidBase64CharactersDefectrrrrGrrSs    r�$test_invalid_chars_in_base64_payloadz4TestDefectsBase.test_invalid_chars_in_base64_payload�s
����"�����m�m�F�#�#��
�
�
�v�C�
D�
D�	3�	3��o�o�T�o�2�2�G�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3���&�������%�(�(�(����� 0� 0�� 5� 5�!'�!E� F�	H�	H�	H�	H�	HrVc��tjd��}|�|��}|�tj��5|�d���}ddd��n#1swxYwY|jrdS|�|d��|�	|�
|��tjg��dS)Nz�            Subject: test
            MIME-Version: 1.0
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: base64

            abcde
            TrOsabcde)rrrrr�InvalidBase64LengthDefectrrrrGrrSs    r�%test_invalid_length_of_base64_payloadz5TestDefectsBase.test_invalid_length_of_base64_payloads
����"�����m�m�F�#�#��
�
�
�v�?�
@�
@�	3�	3��o�o�T�o�2�2�G�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3�	3����	3�	3�	3�	3���&�������(�+�+�+����� 0� 0�� 5� 5�!'�!A� B�	D�	D�	D�	D�	DrVc� �tjd��}|�tj��5|�|��}ddd��n#1swxYwY|jrdS|�t|�	����d��|�|�	d���	��d��|�
|�|��tjg��dS)Na?            To: 1@harrydomain4.com
            Subject: Fwd: 1
            MIME-Version: 1.0
            Content-Type: multipart/alternative;
             boundary="------------000101020201080900040301"

            --------------000101020201080900040301
            Content-Type: text/plain; charset=ISO-8859-1
            Content-Transfer-Encoding: 7bit

            Alternative 1

            --------------000101020201080900040301
            Content-Type: text/html; charset=ISO-8859-1
            Content-Transfer-Encoding: 7bit

            Alternative 2

            r&rzAlternative 2
)rrrr�CloseBoundaryNotFoundDefectrrrrrrGrr*s   r�test_missing_ending_boundaryz,TestDefectsBase.test_missing_ending_boundarys;����"����(�
�
�v�A�
B�
B�	(�	(��-�-��'�'�C�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(���&�������S�_�_�.�.�/�/��3�3�3��������+�+�7�7�9�9�;L�M�M�M����� 0� 0�� 5� 5�!'�!C� D�	F�	F�	F�	F�	Fr$N)�__name__�
__module__�__qualname__r�defaultr�
contextlib�contextmanagerrr#r+rrr.r1r5r;r=rArIrMrUrYr\r_r
rrrr	sB������
�^�F��N��������-B�-B�-B�^H�H�H�:$�H�O�%�
�
�M�.	B�	B�	B�8�8�8�
H�H�H�H�H�H�*$B�$B�$B�L	E�	E�	E�K�K�K�E�E�E�"H�H�H�"D�D�D�"F�F�F�F�Frrc��eZdZd�ZdS)�TestDefectDetectionc��|jSr	)r�r�objs  rrzTestDefectDetection.get_defects2s
���{�rN)r`rarbrr
rrrgrg0s#����������rrgc�@�eZdZGd�dej��Zd�Zd�ZdS)�TestDefectCapturec��eZdZdZd�ZdS)�TestDefectCapture.CapturePolicyNc�:�|j�|��dSr	)�captured�append)rrjr
s   r�register_defectz/TestDefectCapture.CapturePolicy.register_defect:s���M� � ��(�(�(�(�(r)r`rarbrprrr
rr�
CapturePolicyrn8s(��������	)�	)�	)�	)�	)rrsc�T�|�t�����|_dS)N)rp)rs�listr)rs r�setUpzTestDefectCapture.setUp=s"���(�(�$�&�&�(�9�9����rc��|jjSr	)rrpris  rrzTestDefectCapture.get_defects@s
���{�#�#rN)r`rarbr�EmailPolicyrsrvrr
rrrlrl6s_������)�)�)�)�)��*�)�)�)�
:�:�:�$�$�$�$�$rrlc�b�eZdZejZejd���ZdZejd���Z	dS)�TestDefectRaisingT)�raise_on_defectc#�nK�|�|��5dV�ddd��dS#1swxYwYdSr	)�assertRaisesrs  rrzTestDefectRaising._raise_pointJs�����
�
�
�v�
&�
&�	�	��E�E�E�	�	�	�	�	�	�	�	�	�	�	�	����	�	�	�	�	�	s�*�.�.N)
r`rarbrr�clonerrdrerr
rrrzrzDsR������
�
#�F�
�V�\�$�
/�
/�
/�F��N���������rrz�__main__)r�unittestrd�emailrr�test.test_emailrrrgrlrzr`�mainr
rr�<module>r�s@��������������������������)�)�)�)�)�)�dF�dF�dF�dF�dF�dF�dF�dF�N	�����/�=����$�$�$�$�$���$�$�$�	�	�	�	�	���	�	�	��z����H�M�O�O�O�O�O��r