HEX
Server: Apache
System: Linux bd12.noc223.com 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User: handcraf (1693)
PHP: 8.1.28
Disabled: NONE
Upload Files
File: //opt/alt/python312/lib64/python3.12/test/test_email/__pycache__/test_policy.cpython-312.opt-1.pyc
�

}h�er@�� �ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddlm
Z
d�ZGd�dej�Z
Gd�de�ZGd�d	ej�ZGd
�dej�Zedk(rej&�yy)
�N)�headerregistryc�H�|j�}|j|�|S�N)�copy�update)�
base_defaults�differences�defaultss   �B/opt/alt/python312/lib64/python3.12/test/test_email/test_policy.py�
make_defaultsrs!���!�!�#�H��O�O�K� ��O�c���eZdZdZddddddd�Zej�Zejddejjjdejjjdejjd	��ejj�Zejj eei�ejj$eei�ejj&eed
di�ejj(eeddd��ejj*eeddd
��ejj,eeddi�eeei�iZejeed<d�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!Gd�d�Z"Gd�de#�Z$d�Z%d�Z&Gd �d!ejj�Z'd"�Z(d#�Z)d$�Z*Gd%�d&�Z+d'�Z,d(�Z-d)�Z.d*�Z/d+�Z0d,�Z1y)-�PolicyAPITestsT�N�
�8bitFN)�max_line_length�linesep�cte_type�raise_on_defect�mangle_from_�message_factory�long)�utf8r�header_factory�
refold_source�content_managerrrrz
)rr)rrrrc
� �|jj�D]e\}}|j�D]M\}}|j||��5|jt	||�|dj|��ddd��O�gy#1swY�\xYw)N��policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr �expectedr!�values     r�
test_defaultszPolicyAPITests.test_defaultsBs��� $�
�
� 3� 3� 5�	?��F�H�'�~�~�/�
?���e��\�\��d�\�;�?��$�$�W�V�T�%:�E�&.�/5�v�f�~�?�?�?�
?�	?�?�?�s�
-B�B
c
��|jj�D]�\}}t|�D]�}|j||��5|j	d�s<tt
tjj|�tj�r
	ddd��n|j||dj|��	ddd�����y#1swY��xYw)Nr�_z{} is not fully tested)r"r#�dirr$�
startswith�
isinstancer&�emailr �EmailPolicy�types�FunctionType�assertInr')r(r r)r!s    r�test_all_attributes_coveredz*PolicyAPITests.test_all_attributes_coveredJs��� $�
�
� 3� 3� 5�		M��F�H��F��
M���\�\��d�\�;�M�����,�&�w�u�|�|�/G�/G��'N�"'�"4�"4�6� �	M�M��
�
�d�H�&>�&E�&E�d�&K�M�
M�M�
M�		M�M�M�s�AC
�"C
�
Cc���|jt�5}tjj	�ddd�tj�}d}|D]}|j||��y#1swY�:xYw)N)�fold�fold_binary�header_fetch_parse�header_source_parse�header_store_parse)�assertRaises�	TypeErrorr1r �Policy�str�	exceptionr5)r(�cm�msg�abstract_methods�methods     r�test_abczPolicyAPITests.test_abcVsl��
�
�
�y�
)�	"�R��L�L���!�	"��"�,�,���2��
'�	'�F��M�M�&�#�&�	'�	"�	"�s�A.�.A7c�0�|jj�D]a\}}|D]1}|jt|dz�5t	||d�ddd��3|jtd�5d|_ddd��cy#1swY�fxYw#1swY�zxYw)Nz.*read-onlyzno attribute.*foo)r"r#�assertRaisesRegex�AttributeError�setattr�foo)r(r r
r!s    r�test_policy_is_immutablez'PolicyAPITests.test_policy_is_immutablebs��� $�
�
� 3� 3� 5�	"��F�H� �
0���+�+�N�D��<N�O�0��F�D�$�/�0�0�
0��'�'��8K�L�
"�!��
�
"�
"�		"�0�0��
"�
"�s�B�-B�B	�B	c���|jj�D]I\}}|D�cic]}|d��}}|jdi|��}|D]}|jt	||����Kycc}w)N�)r"r#�clone�assertIsNoner&)r(�policyclassr
r!�testattrdictr s      r�!test_set_policy_attrs_when_clonedz0PolicyAPITests.test_set_policy_attrs_when_clonedjsx��&*�]�]�%8�%8�%:�	9�!�K��3;�<�4�D�$�J�<�L�<�&�[�&�&�6��6�F� �
9���!�!�'�&�$�"7�8�
9�	9��<s�
A(c���|jD]P}|jt�5|d��ddd�|jt�5|d��ddd��Ry#1swY�3xYw#1swY�ixYw)N)� this_keyword_should_not_be_valid)�newtline)r"r=r>)r(rQs  r�*test_reject_non_policy_keyword_when_calledz9PolicyAPITests.test_reject_non_policy_keyword_when_calledsst���=�=�	+�K��"�"�9�-�
C��T�B�
C��"�"�9�-�
+��T�*�
+�
+�	+�
C�
C��
+�
+�s�
A!�
A-�!A*	�-A6	c��|jj�}tjjjd��}tjjjd��}||z}|j
d��|j�D]!\}}|jt||�|��#||z}|j
d��|j�D]!\}}|jt||�|��#|tjjz}|j�D]!\}}|jt||�|��#y)N�d�r�2)
�policy_defaultsrr1r �defaultrOrr#r%r&)r(r)�p1�p2�addedr!r*s       r�test_policy_additionz#PolicyAPITests.test_policy_additionzs%���'�'�,�,�.��
�\�\�
!�
!�
'�
'��
'�
<��
�\�\�
!�
!�
'�
'��
'�
;���R��������+�#�>�>�+�	:�K�D�%����W�U�D�1�5�9�	:��R��������,�#�>�>�+�	:�K�D�%����W�U�D�1�5�9�	:�����,�,�,��#�>�>�+�	:�K�D�%����W�U�D�1�5�9�	:r
c��d}d}tjj�}d}||d<tjjj�}tjjjd��}|j
|jd|d�|�|j
|jd|d�|�|j
|jd|�|�|j
|jd|�|�y)N�Subject: =?utf-8?q?=C3=A1?=
uSubject: á
�á�SubjectT)r�r1�message�EmailMessager r]rOr%r8)r(�expected_ascii�
expected_utf8rC�s�p_ascii�p_utf8s       r�test_fold_utf8zPolicyAPITests.test_fold_utf8�s���8��'�
��m�m�(�(�*������I���,�,�&�&�,�,�.�����%�%�+�+��+�6��������i��Y��@�.�Q�������Y��I��?��O�������i��3�^�D�������Y��2�M�Br
c��d}tjj�}d|d<tjjjd��}tjjjd��}|j
|jd|d�|�|j
|jd|d�|�y)NrcrdrerrZrf)r(r)rCr^r_s     r�test_fold_zero_max_line_lengthz-PolicyAPITests.test_fold_zero_max_line_length�s���2���m�m�(�(�*����I��
�\�\�
!�
!�
'�
'��
'�
:��
�\�\�
!�
!�
'�
'��
'�
=���������C�	�N�;�X�F��������C�	�N�;�X�Fr
c�H�Gd�d�}|�}t�}tjj�}|j	||�|j|j|g�t�}|j	||�|j|j||g�y)Nc��eZdZd�Zy)�2PolicyAPITests.test_register_defect.<locals>.Dummyc��g|_yr��defects�r(s r�__init__z;PolicyAPITests.test_register_defect.<locals>.Dummy.__init__�s	��!��r
N��__name__�
__module__�__qualname__rxrNr
r�Dummyrs�s��
"r
r})�objectr1r r2�register_defectr%rv)r(r}�obj�defectr �defect2s      r�test_register_defectz#PolicyAPITests.test_register_defect�s���	"�	"��g��������)�)�+�����s�F�+�������v�h�/��(�����s�G�,�������v�w�&7�8r
c��eZdZd�Zy)�PolicyAPITests.MyObjc��g|_yrrurws rrxzPolicyAPITests.MyObj.__init__�s	���D�Lr
NryrNr
r�MyObjr��s��	r
r�c��eZdZy)�PolicyAPITests.MyDefectN�rzr{r|rNr
r�MyDefectr��s��r
r�c��|j�}|jd�}|j|jd�5tjj
j
||�ddd�y#1swYyxYw)N�the telly is broken)r�r�rHr1r �strict�
handle_defect�r(rKr�s   r�#test_handle_defect_raises_on_strictz2PolicyAPITests.test_handle_defect_raises_on_strict�s`���j�j�l�����4�5��
�
#�
#�D�M�M�3H�
I�	;��L�L���-�-�c�6�:�	;�	;�	;�s�+A2�2A;c��|j�}|jd�}tjjj||�|j
|j|g�|jd�}tjjj||�|j
|j||g�y�N�one�two)r�r�r1r r]r�r%rv)r(rK�defect1r�s    r�#test_handle_defect_registers_defectz2PolicyAPITests.test_handle_defect_registers_defect�s����j�j�l���-�-��&��
�����*�*�3��8�������w�i�0��-�-��&��
�����*�*�3��8�������w��&8�9r
c�(��eZdZdZ�fd�Zd�Z�xZS)�PolicyAPITests.MyPolicyNc�(��t�|�|dgi|��y)Nrv)�superrx)r(�args�kw�	__class__s   �rrxz PolicyAPITests.MyPolicy.__init__�s����G��d�5�B�5�"�5r
c�:�|jj|�yr)rv�append)r(r�r�s   rrz'PolicyAPITests.MyPolicy.register_defect�s���L�L����'r
)rzr{r|rvrxr�
__classcell__)r�s@r�MyPolicyr��s�����	6�	(r
r�c���|j�}|jd�}|j|jd�5|jd��j	||�ddd�y#1swYyxYw)Nr�T)r)r�r�rHr�r�r�s   r�,test_overridden_register_defect_still_raisesz;PolicyAPITests.test_overridden_register_defect_still_raises�se���j�j�l�����4�5��
�
#�
#�D�M�M�3H�
I�	K��M�M�$�M�/�=�=�c�6�J�	K�	K�	K�s�#A*�*A3c��|j�}|jd�}|j�}|j||�|j	|j
|g�|j	|j
g�|jd�}|j||�|j	|j
||g�|j	|j
g�yr�)r�r�r�r�r%rv)r(rKr��	my_policyr�s     r�%test_overridden_register_defect_worksz4PolicyAPITests.test_overridden_register_defect_works�s����j�j�l���-�-��&���M�M�O�	�����W�-�����*�*�W�I�6�������b�)��-�-��&������W�-�����*�*�W�g�,>�?�������b�)r
c��tjjjdd�}|j	|j
d�|j
|tj�|j
|tj�y)N�Test�test)
r1r r]rr%�name�assertIsInstancer�UnstructuredHeader�
BaseHeader)r(�hs  r�test_default_header_factoryz*PolicyAPITests.test_default_header_factory�s^���L�L� � �/�/���?���������(����a��!B�!B�C����a��!:�!:�;r
c�8�eZdZejj
Zy)�PolicyAPITests.FooN)rzr{r|rr��parserNr
r�Foor��s���1�1�7�7�r
r�c��tjj�}tjj�}|jj	d|j
�|jdd�}|j
||j
�|j|tj�|jdd�}|j||j
�|j
|tj�y�NrKr�)
r1r r2r�map_to_typer�r��assertNotIsInstancerr��r(�policy1�policy2r�s    r�$test_each_Policy_gets_unique_factoryz3PolicyAPITests.test_each_Policy_gets_unique_factory�s����,�,�*�*�,���,�,�*�*�,�����*�*�5�$�(�(�;��"�"�5�&�1�����a����*�� � ��N�$E�$E�F��"�"�5�&�1��� � ��D�H�H�-����a��!B�!B�Cr
c�d�tjj�}|j�}|jjd|j�|j	dd�}|j||j�|j	dd�}|j||j�yr�)r1r r2rOrr�r�r�r�s    r�test_clone_copies_factoryz(PolicyAPITests.test_clone_copies_factory�s����,�,�*�*�,���-�-�/�����*�*�5�$�(�(�;��"�"�5�&�1�����a����*��"�"�5�&�1�����a����*r
c�<�tjj�}|j}|tjjz}|j|j|�tjj|z}|j|j|�yr)r1r r2rr�r%)r(�mypolicy�	myfactory�	newpolicys    r�"test_new_factory_overrides_defaultz1PolicyAPITests.test_new_factory_overrides_defaultss���<�<�+�+�-���+�+�	��u�|�|�2�2�2�	�����1�1�9�=��L�L�'�'�(�2�	�����1�1�9�=r
c�&�tjjtjjz}|j	|j
tjjj
�|j	|jddi�y)NrT)r1r r]r�r%rr2�__dict__)r(r�s  r�6test_adding_default_policies_preserves_default_factoryzEPolicyAPITests.test_adding_default_policies_preserves_default_factorysf���L�L�(�(�5�<�<�+>�+>�>�	�����1�1����1�1�@�@�	B�����+�+�.?��-F�Gr
c��tjjjd��}|j	dd�}|j|d�y)N�rZreuąąąąąąąąąąąąz�Subject: 
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
 =?utf-8?q?=C4=85?=
)r1r r]rOr8r%)r(r �actuals   r�*test_non_ascii_chars_do_not_cause_inf_loopz9PolicyAPITests.test_non_ascii_chars_do_not_cause_inf_loopsE�����%�%�+�+�B�+�?�����Y�	�2������
)�	*r
c�X�d}dD]�}|j|��5tjjj	|��}|jtjj�5|jd|�ddd�ddd���y#1swY�xYw#1swY��xYw)Nz;Melt away the pounds with this one simple trick! 1234567890)���	)�maxlenrZre)	r$r1r r]rOr=�errors�HeaderParseErrorr8)r(�subjectr�r s    r�test_short_maxlen_errorz&PolicyAPITests.test_short_maxlen_errors���P���	4�F����V��,�
4����-�-�3�3�F�3�K���&�&�u�|�|�'D�'D�E�4��K�K�	�7�3�4�
4�
4�	4�4�4��
4�
4�s$�AB �.B�B �B�B � B)	)2rzr{r|�longMessage�compat32_defaultsrr\rr1r r2rrrgrh�
new_policy�compat32rr]�SMTP�SMTPUTF8�HTTPr�r"r+r6rFrLrSrWrarnrpr�r��	Exceptionr�r�r�r�r�r�r�r�r�r�r�r�r�r�rNr
rrrs���K�%'�$(�$*�$)�$(�$(�

��(�,�,�.�O����$)�$)�$)�L�L�$<�$<�$K�$K�$*�$)�L�L�$<�$<�$L�$L�$)�$)�M�M�$>�$>�
�����)�)�+�J�
�����}�->��C�
�����m�O�R�@�
�����=��*3�V�)<�>�
�����}�_�9?�6:�.<� =�	�����=��5;�=A�*C�D�	�����]�?�,=�t�+D�F��M�/�2�6�
�H�".8�-F�-F�H�Z��)�*�?�
M�
'�"�9�+�:� C�"
G�9���
�9�
�;�:�(�5�<�<�+�+�(�K�
*�<�8�8�	D�+�>�H�*�4r
rc��eZdZy)�
TestExceptionNr�rNr
rr�r�.s��r
r�c��eZdZGd�dejj
�Zd�Zd�Zd�Z	d�Z
d�Zd�Zdd
�Z
d�Zd�Zd
�Zd�Zy	)�TestPolicyPropagationc�&�eZdZd�ZexZxZZexZZy)�TestPolicyPropagation.MyPolicyc��td��)Nr�)r�)r(r�r�s   r�	badmethodz(TestPolicyPropagation.MyPolicy.badmethod7s
����'�'r
N)	rzr{r|r�r8r9�header_fetch_parserr;r<rNr
rr�r�6s#��	(�3<�<��<�{�0�3<�<��0r
r�c��|jtd�5tjd|j��ddd�y#1swYyxYw)N�^test$�Subject: test

�r )rHr�r1�message_from_stringr�rws r�test_message_from_stringz.TestPolicyPropagation.test_message_from_string<s?��
�
#�
#�M�8�
<�	<��%�%�&9�-1�]�]�
<�	<�	<�	<���"A�Ac��|jtd�5tjd|j��ddd�y#1swYyxYw)Nr��Subject: test

r�)rHr�r1�message_from_bytesr�rws r�test_message_from_bytesz-TestPolicyPropagation.test_message_from_bytesAs?��
�
#�
#�M�8�
<�	;��$�$�%9�,0�M�M�
;�	;�	;�	;�r�c���tjd�}|jtd�5t	j
||j��ddd�y#1swYyxYw)Nr�r�r�)�io�StringIOrHr�r1�message_from_filer��r(�fs  r�test_message_from_filez,TestPolicyPropagation.test_message_from_fileFsJ���K�K�+�,��
�
#�
#�M�8�
<�	=��#�#�A�d�m�m�<�	=�	=�	=���"A�A c���tjd�}|jtd�5t	j
||j��ddd�y#1swYyxYw)Nr�r�r�)r��BytesIOrHr�r1�message_from_binary_filer�r�s  r�test_message_from_binary_filez3TestPolicyPropagation.test_message_from_binary_fileKsN���J�J�+�,��
�
#�
#�M�8�
<�	D��*�*�1�T�]�]�C�	D�	D�	D�r�c���tjj|j��}|j	t
d�5|j
d�ddd�y#1swYyxYw)Nr�r�r�)r1�parser�Parserr�rHr��parsestr�r(�ps  r�test_parserz!TestPolicyPropagation.test_parserRsO���L�L���t�}�}��5��
�
#�
#�M�8�
<�	,�
�J�J�*�+�	,�	,�	,���A�A%c���tjj|j��}|j	t
d�5|j
d�ddd�y#1swYyxYw)Nr�r�r�)r1r��BytesParserr�rHr��
parsebytesrs  r�test_bytes_parserz'TestPolicyPropagation.test_bytes_parserWsO���L�L�$�$�D�M�M�$�:��
�
#�
#�M�8�
<�	/�
�L�L�-�.�	/�	/�	/�rNc��|�(tjjj�n||_tj||j��S)Nr�)r1r r]rOr�)r(�sourcer s   r�	_make_msgzTestPolicyPropagation._make_msg`s9��6<�n�e�l�l�*�*�0�0�2�&����(�(�����D�Dr
c�p�|j�}|j|j|j�yr)r
�assertIsr �r(rCs  r�(test_parser_propagates_policy_to_messagez>TestPolicyPropagation.test_parser_propagates_policy_to_messageds$���n�n����
�
�c�j�j�$�+�+�.r
c���|jtjd��}|j�D](}|j	|j
|j
��*y)Na+            Subject: mime test
            MIME-Version: 1.0
            Content-Type: multipart/mixed, boundary="XXX"

            --XXX
            Content-Type: text/plain

            test
            --XXX
            Content-Type: text/plain

            test2
            --XXX--
            )r
�textwrap�dedent�walkrr )r(rC�parts   r�-test_parser_propagates_policy_to_sub_messageszCTestPolicyPropagation.test_parser_propagates_policy_to_sub_messageshsM���n�n�X�_�_�.�����H�H�J�	4�D��M�M�$�+�+�t�{�{�3�	4r
c�B�|jdtjjj	d����}tj�}tjj|�}|j|�|j|j�d�y�NzSubject: test
To: foo

�X)rr�zSubject: testXTo: fooXX)r
r1r r]rOr�r��	generator�	Generator�flattenr%�getvalue)r(rCrk�gs    r�+test_message_policy_propagates_to_generatorzATestPolicyPropagation.test_message_policy_propagates_to_generator{su���n�n�9�$)�L�L�$8�$8�$>�$>�s�$>�$K��M���K�K�M���O�O�%�%�a�(��	�	�	�#���������'@�Ar
c��|jdtjjj	d����}|j|j
�d�yr)r
r1r r]rOr%�	as_stringr
s  r�%test_message_policy_used_by_as_stringz;TestPolicyPropagation.test_message_policy_used_by_as_string�sK���n�n�9�$)�L�L�$8�$8�$>�$>�s�$>�$K��M���������*C�Dr
)r�N)rzr{r|r1r r?r�r�r�r�r�rrr
rrrr rNr
rr�r�1sS��
=�5�<�<�&�&�=�<�
;�
=�
D�,�
/�E�/�4�&B�Er
r�c��eZdZd�Zy)�TestConcretePoliciesc��tjj�}|jt|j
dd�y)N�Fromzspam
egg@foo.py)r1r r2r=�
ValueErrorr<)r(�instances  r�(test_header_store_parse_rejects_newlinesz=TestConcretePolicies.test_header_store_parse_rejects_newlines�s3���<�<�+�+�-�����*�"�5�5� �"4�	6r
N)rzr{r|r'rNr
rr"r"�s��6r
r"�__main__)r�r3r�unittest�email.errorsr1�email.policy�email.parser�email.generator�
email.messagerr�TestCaserr�r�r�r"rz�mainrNr
r�<module>r1s���	��������� ��
V4�X�&�&�V4�z	�I�	�UE�H�-�-�UE�p6�8�,�,�6��z���H�M�M�O�r