HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.10/test/test_email/__pycache__/test_policy.cpython-310.opt-1.pyc
o

�i>�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddlm
Z
dd�ZGdd�dej�Z
Gdd�de�ZGd	d
�d
ej�ZGdd�dej�Zed
kr[e��dSdS)�N)�headerregistrycCs|��}|�|�|S�N)�copy�update)Z
base_defaultsZdifferences�defaults�r�8/usr/local/lib/python3.10/test/test_email/test_policy.py�
make_defaultss
r	c@s�eZdZdZddddddd�Ze��Ze�ddej	j
jdej	j
jdej
jd	��ej	�
�Zej	jeei�ej	jeei�ej	jeed
di�ej	jeeddd��ej	jeeddd
��ej	jeeddi�eeei�iZejeed<dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�Z Gd"d#�d#�Z!Gd$d%�d%e"�Z#d&d'�Z$d(d)�Z%Gd*d+�d+ej	j
�Z&d,d-�Z'd.d/�Z(d0d1�Z)Gd2d3�d3�Z*d4d5�Z+d6d7�Z,d8d9�Z-d:d;�Z.d<d=�Z/d>d?�Z0dS)@�PolicyAPITestsT�N�
Z8bitFN)�max_line_length�linesepZcte_type�raise_on_defect�mangle_from_�message_factory�long)�utf8r�header_factoryZ
refold_source�content_managerrrrz
)rr)rr
rrc
Csr|j��D]1\}}|��D](\}}|j||d��|�t||�|d�|��Wd�n1s0wYq
qdS)N��policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr�expectedr�valuerrr�
test_defaultsBs�����zPolicyAPITests.test_defaultsc
Cs�|j��D]D\}}t|�D];}|j||d��*|�d�s'tttjj	|�t
j�r/	Wd�q
|�||d�
|��Wd�n1sCwYq
qdS)Nr�_z{} is not fully tested)rr�dirr�
startswith�
isinstancer�emailr�EmailPolicy�types�FunctionType�assertInr)rrr rrrr�test_all_attributes_coveredJs"
��������z*PolicyAPITests.test_all_attributes_coveredcCs\|�t��
}tj��Wd�n1swYt|j�}d}|D]}|�||�q#dS)N)�fold�fold_binaryZheader_fetch_parse�header_source_parse�header_store_parse)�assertRaises�	TypeErrorr'r�Policy�str�	exceptionr+)r�cm�msgZabstract_methods�methodrrr�test_abcVs�
�zPolicyAPITests.test_abcc
Cs�|j��D]@\}}|D] }|�t|d��t||d�Wd�n1s&wYq|�td��d|_Wd�n1s@wYqdS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutablebs�����z'PolicyAPITests.test_policy_is_immutablecCsP|j��D] \}}dd�|D�}|jdi|��}|D]
}|�t||��qqdS)NcSsi|]}|d�qSrr)�.0rrrr�
<dictcomp>nszDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>r)rr�cloneZassertIsNoner)r�policyclassrZtestattrdictrrrrr�!test_set_policy_attrs_when_clonedjs��z0PolicyAPITests.test_set_policy_attrs_when_clonedc	Csx|jD]6}|�t��
|dd�Wd�n1swY|�t��
|dd�Wd�n1s4wYqdS)N)Z this_keyword_should_not_be_valid)Znewtline)rr1r2)rrBrrr�*test_reject_non_policy_keyword_when_calledss
����z9PolicyAPITests.test_reject_non_policy_keyword_when_calledcCs�|j��}tjjjdd�}tjjjdd�}||}|jdd�|��D]
\}}|�t	||�|�q#||}|jdd�|��D]
\}}|�t	||�|�q?|tjj}|��D]
\}}|�t	||�|�qWdS)N�d�r
�2)
�policy_defaultsrr'r�defaultrArrrr)rr �p1�p2Zaddedrr!rrr�test_policy_additionzs
�z#PolicyAPITests.test_policy_additioncCsjd}tj��}d|d<tjjjdd�}tjjjdd�}|�|�d|d�|�|�|�d|d�|�dS)NzSubject: =?utf-8?q?=C3=A1?=
�á�SubjectrrF)r'�message�EmailMessagerrIrArr-)rr r7rJrKrrr�test_fold_zero_max_line_length�s
z-PolicyAPITests.test_fold_zero_max_line_lengthcCshGdd�d�}|�}t�}tj��}|�||�|�|j|g�t�}|�||�|�|j||g�dS)Nc@�eZdZdd�ZdS)z2PolicyAPITests.test_register_defect.<locals>.DummycS�
g|_dSr��defects�rrrr�__init__��
z;PolicyAPITests.test_register_defect.<locals>.Dummy.__init__N��__name__�
__module__�__qualname__rWrrrr�Dummy��r])�objectr'rr(�register_defectrrU)rr]�obj�defectr�defect2rrr�test_register_defect�s
z#PolicyAPITests.test_register_defectc@rR)zPolicyAPITests.MyObjcCrSrrTrVrrrrW�rXzPolicyAPITests.MyObj.__init__NrYrrrr�MyObj�r^rec@�eZdZdS)zPolicyAPITests.MyDefectN�rZr[r\rrrr�MyDefect��rhcCsV|��}|�d�}|�|jd��tjj�||�Wd�dS1s$wYdS)N�the telly is broken)rerhr:r'r�strict�
handle_defect�rr=rbrrr�#test_handle_defect_raises_on_strict�s

"�z2PolicyAPITests.test_handle_defect_raises_on_strictcCsb|��}|�d�}tjj�||�|�|j|g�|�d�}tjj�||�|�|j||g�dS�NZoneZtwo)rerhr'rrIrlrrU)rr=�defect1rcrrr�#test_handle_defect_registers_defect�s

z2PolicyAPITests.test_handle_defect_registers_defectcs(eZdZdZ�fdd�Zdd�Z�ZS)zPolicyAPITests.MyPolicyNcst�j|dgi|��dS)NrU)�superrW�r�args�kw��	__class__rrrW�sz PolicyAPITests.MyPolicy.__init__cCs|j�|�dSr)rU�append)rrarbrrrr`�sz'PolicyAPITests.MyPolicy.register_defect)rZr[r\rUrWr`�
__classcell__rrrvr�MyPolicy�srzcCsZ|��}|�d�}|�|jd��|jdd��||�Wd�dS1s&wYdS)NrjT)r)rerhr:rzrlrmrrr�,test_overridden_register_defect_still_raises�s

"�z;PolicyAPITests.test_overridden_register_defect_still_raisescCs~|��}|�d�}|��}|�||�|�|j|g�|�|jg�|�d�}|�||�|�|j||g�|�|jg�dSro)rerhrzrlrrU)rr=rpZ	my_policyrcrrr�%test_overridden_register_defect_works�s

z4PolicyAPITests.test_overridden_register_defect_workscCs>tjj�dd�}|�|jd�|�|tj�|�|tj	�dS)NZTest�test)
r'rrIrr�name�assertIsInstancer�UnstructuredHeaderZ
BaseHeader)r�hrrr�test_default_header_factory�sz*PolicyAPITests.test_default_header_factoryc@seZdZejjZdS)zPolicyAPITests.FooN)rZr[r\rr��parserrrr�Foo�r^r�cCsxtj��}tj��}|j�d|j�|�dd�}|�||j�|�|tj	�|�dd�}|�||j�|�|tj	�dS�Nr=r})
r'rr(r�map_to_typer�rZassertNotIsInstancerr��rZpolicy1Zpolicy2r�rrr�$test_each_Policy_gets_unique_factory�s

z3PolicyAPITests.test_each_Policy_gets_unique_factorycCsZtj��}|��}|j�d|j�|�dd�}|�||j�|�dd�}|�||j�dSr�)r'rr(rArr�r�rr�rrr�test_clone_copies_factory�s
z(PolicyAPITests.test_clone_copies_factorycCsHtj��}|j}|tjj}|�|j|�tjj|}|�|j|�dSr)r'rr(rrkr)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s
z1PolicyAPITests.test_new_factory_overrides_defaultcCs:tjjtjj}|�|jtjjj�|�|jddi�dS)NrT)r'rrIrkrrr(�__dict__)rr�rrr�6test_adding_default_policies_preserves_default_factory�s
�zEPolicyAPITests.test_adding_default_policies_preserves_default_factorycCs,tjjjdd�}|�dd�}|�|d�dS)N�rFrNuąąąąąąąąąąąą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?=
)r'rrIrAr-r)rr�actualrrr�*test_non_ascii_chars_do_not_cause_inf_loop�s�z9PolicyAPITests.test_non_ascii_chars_do_not_cause_inf_loopc
Cs�d}dD]=}|j|d��-tjjj|d�}|�tjj��|�d|�Wd�n1s-wYWd�n1s<wYqdS)Nz;Melt away the pounds with this one simple trick! 1234567890)���	)�maxlenrFrN)	rr'rrIrAr1�errorsZHeaderParseErrorr-)r�subjectr�rrrr�test_short_maxlen_errors�����z&PolicyAPITests.test_short_maxlen_error)1rZr[r\ZlongMessageZcompat32_defaultsrrHrr'rr(rrrOrPZ
new_policyZcompat32r	rIZSMTPZSMTPUTF8ZHTTPrkrr"r,r9r>rCrDrLrQrdre�	Exceptionrhrnrqrzr{r|r�r�r�r�r�r�r�r�rrrrr
s��
�


�
��
��
�
�	
		r
c@rf)�
TestExceptionNrgrrrrr�rir�c@szeZdZGdd�dejj�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zddd�Z
dd�Zdd�Zdd�Zdd�ZdS)�TestPolicyPropagationc@s(eZdZdd�ZeZZZeZZdS)zTestPolicyPropagation.MyPolicycOstd��)Nr})r�rsrrr�	badmethod&sz(TestPolicyPropagation.MyPolicy.badmethodN)	rZr[r\r�r-r.Zheader_fetch_parserr/r0rrrrrz%srzcC�B|�td��tjd|jd�Wd�dS1swYdS)N�^test$�Subject: test

�r)r:r�r'�message_from_stringrzrVrrr�test_message_from_string+�
�"�z.TestPolicyPropagation.test_message_from_stringcCr�)Nr��Subject: test

r�)r:r�r'Zmessage_from_bytesrzrVrrr�test_message_from_bytes0r�z-TestPolicyPropagation.test_message_from_bytescC�Lt�d�}|�td��tj||jd�Wd�dS1swYdS)Nr�r�r�)�io�StringIOr:r�r'Zmessage_from_filerz�r�frrr�test_message_from_file5�
"�z,TestPolicyPropagation.test_message_from_filecCr�)Nr�r�r�)r��BytesIOr:r�r'Zmessage_from_binary_filerzr�rrr�test_message_from_binary_file:r�z3TestPolicyPropagation.test_message_from_binary_filecC�Ltjj|jd�}|�td��|�d�Wd�dS1swYdS)Nr�r�r�)r'�parserZParserrzr:r�Zparsestr�r�prrr�test_parserA�"�z!TestPolicyPropagation.test_parsercCr�)Nr�r�r�)r'r�ZBytesParserrzr:r�Z
parsebytesr�rrr�test_bytes_parserFr�z'TestPolicyPropagation.test_bytes_parserr�NcCs*|dur
tjj��n||_tj||jd�S)Nr�)r'rrIrAr�)r�sourcerrrr�	_make_msgOszTestPolicyPropagation._make_msgcCs|��}|�|j|j�dSr)r��assertIsr�rr7rrr�(test_parser_propagates_policy_to_messageSsz>TestPolicyPropagation.test_parser_propagates_policy_to_messagecCs2|�t�d��}|��D]
}|�|j|j�qdS)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)rr7�partrrr�-test_parser_propagates_policy_to_sub_messagesWs�zCTestPolicyPropagation.test_parser_propagates_policy_to_sub_messagescCsL|jdtjjjdd�d�}t��}tj�|�}|�	|�|�
|��d�dS�NzSubject: test
To: foo

�X)rr�zSubject: testXTo: fooXX)r�r'rrIrAr�r��	generator�	GeneratorZflattenr�getvalue)rr7�s�grrr�+test_message_policy_propagates_to_generatorjs�
zATestPolicyPropagation.test_message_policy_propagates_to_generatorcCs.|jdtjjjdd�d�}|�|��d�dSr�)r�r'rrIrArZ	as_stringr�rrr�%test_message_policy_used_by_as_stringrs�z;TestPolicyPropagation.test_message_policy_used_by_as_string)r�N)rZr[r\r'rr3rzr�r�r�r�r�r�r�r�r�r�r�rrrrr� s
	r�c@rR)�TestConcretePoliciescCs tj��}|�t|jdd�dS)NZFromzspam
egg@foo.py)r'rr(r1�
ValueErrorr0)r�instancerrr�(test_header_store_parse_rejects_newlineszs

�z=TestConcretePolicies.test_header_store_parse_rejects_newlinesN)rZr[r\r�rrrrr�xsr��__main__)r�r)r�ZunittestZemail.errorsr'Zemail.policyZemail.parserZemail.generatorZ
email.messagerr	ZTestCaser
r�r�r�r�rZ�mainrrrr�<module>s(X	�