Your IP : 216.73.216.213


Current Path : /opt/alt/python39/lib64/python3.9/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python39/lib64/python3.9/test/test_email/__pycache__/test_policy.cpython-39.opt-2.pyc

a

XC?h�A�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddlm
Z
dd�ZGdd�dej�Z
Gdd�de�ZGd	d
�d
ej�ZGdd�dej�Zed
kr�e��dS)�N)�headerregistrycCs|��}|�|�|S�N)�copy�update)Z
base_defaultsZdifferences�defaults�r�@/opt/alt/python39/lib64/python3.9/test/test_email/test_policy.py�
make_defaultss
r	c@s�eZdZdZdddddddd�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?�Z0d@dA�Z1dS)B�PolicyAPITestsT�N�
Z8bitFN)�max_line_length�linesepZcte_type�raise_on_defect�mangle_from_�message_factory�verify_generated_headersZlong)�utf8r�header_factoryZ
refold_source�content_managerrrrz
)rr)rr
rrc
Csr|j��D]b\}}|��D]P\}}|j||d��*|�t||�|d�|��Wd�q1s`0Yqq
dS)N��policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr�expectedr�valuerrr�
test_defaultsCs��zPolicyAPITests.test_defaultsc
Cs�|j��D]�\}}t|�D]v}|j||d��T|�d�sNtttjj	|�t
j�r^Wd�qn|�||d�
|��Wd�q1s�0Yqq
dS)Nr�_z{} is not fully tested)rr�dirr�
startswith�
isinstancer�emailr�EmailPolicy�types�FunctionType�assertInr)rrr rrrr�test_all_attributes_coveredKs
���z*PolicyAPITests.test_all_attributes_coveredcCs\|�t��}tj��Wd�n1s*0Yt|j�}d}|D]}|�||�qFdS)N)�fold�fold_binaryZheader_fetch_parse�header_source_parse�header_store_parse)�assertRaises�	TypeErrorr'r�Policy�strZ	exceptionr+)r�cm�msgZabstract_methods�methodrrr�test_abcWs(
zPolicyAPITests.test_abcc
Cs�|j��D]�\}}|D]@}|�t|d��t||d�Wd�q1sL0Yq|�td��d|_Wd�q
1s�0Yq
dS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutablecs,z'PolicyAPITests.test_policy_is_immutablecCsP|j��D]@\}}dd�|D�}|jfi|��}|D]}|�t||��q4q
dS)NcSsi|]
}|d�qSrr)�.0rrrr�
<dictcomp>o�zDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>)rr�cloneZassertIsNoner)r�policyclassrZtestattrdictrrrrr�!test_set_policy_attrs_when_clonedks
z0PolicyAPITests.test_set_policy_attrs_when_clonedc	Csx|jD]l}|�t��|dd�Wd�n1s40Y|�t��|dd�Wd�q1sh0YqdS)N)Z this_keyword_should_not_be_valid)Znewtline)rr1r2)rrBrrr�*test_reject_non_policy_keyword_when_calledts

(z9PolicyAPITests.test_reject_non_policy_keyword_when_calledcCs�|j��}tjjjdd�}tjjjdd�}||}|jdd�|��D]\}}|�t	||�|�qF||}|jdd�|��D]\}}|�t	||�|�q~|tjj}|��D]\}}|�t	||�|�q�dS)N�d�r
�2)
�policy_defaultsrr'r�defaultrArrrr)rr �p1�p2Zaddedrr!rrr�test_policy_addition{s
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 r6rJrKrrr�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@seZdZdd�ZdS)z2PolicyAPITests.test_register_defect.<locals>.DummycSs
g|_dSr��defects�rrrr�__init__�sz;PolicyAPITests.test_register_defect.<locals>.Dummy.__init__N��__name__�
__module__�__qualname__rUrrrr�Dummy�srZ)�objectr'rr(�register_defectrrS)rrZ�obj�defectr�defect2rrr�test_register_defect�s
z#PolicyAPITests.test_register_defectc@seZdZdd�ZdS)zPolicyAPITests.MyObjcCs
g|_dSrrRrTrrrrU�szPolicyAPITests.MyObj.__init__NrVrrrr�MyObj�srac@seZdZdS)zPolicyAPITests.MyDefectN�rWrXrYrrrr�MyDefect�srccCsT|��}|�d�}|�|jd�� tjj�||�Wd�n1sF0YdS)N�the telly is broken)rarcr9r'r�strict�
handle_defect�rr<r^rrr�#test_handle_defect_raises_on_strict�s
z2PolicyAPITests.test_handle_defect_raises_on_strictcCsb|��}|�d�}tjj�||�|�|j|g�|�d�}tjj�||�|�|j||g�dS�NZoneZtwo)rarcr'rrIrfrrS)rr<�defect1r_rrr�#test_handle_defect_registers_defect�s

z2PolicyAPITests.test_handle_defect_registers_defectcs(eZdZdZ�fdd�Zdd�Z�ZS)zPolicyAPITests.MyPolicyNcst�j|dgi|��dS)NrS)�superrU�r�args�kw��	__class__rrrU�sz PolicyAPITests.MyPolicy.__init__cCs|j�|�dSr)rS�append)rr]r^rrrr\�sz'PolicyAPITests.MyPolicy.register_defect)rWrXrYrSrUr\�
__classcell__rrrpr�MyPolicy�srtcCsX|��}|�d�}|�|jd��$|jdd��||�Wd�n1sJ0YdS)NrdT)r)rarcr9rtrfrgrrr�,test_overridden_register_defect_still_raises�s
z;PolicyAPITests.test_overridden_register_defect_still_raisescCs~|��}|�d�}|��}|�||�|�|j|g�|�|jg�|�d�}|�||�|�|j||g�|�|jg�dSri)rarcrtrfrrS)rr<rjZ	my_policyr_rrr�%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)rWrXrYrrz�parserrrr�Foo�sr~cCsxtj��}tj��}|j�d|j�|�dd�}|�||j�|�|tj	�|�dd�}|�||j�|�|tj	�dS�Nr<rw)
r'rr(r�map_to_typer~ryZassertNotIsInstancerrz�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~ryr�rrr�test_clone_copies_factory�s
z(PolicyAPITests.test_clone_copies_factorycCsHtj��}|j}|tjj}|�|j|�tjj|}|�|j|�dSr)r'rr(rrer)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s
z1PolicyAPITests.test_new_factory_overrides_defaultcCs:tjjtjj}|�|jtjjj�|�|jddi�dS)NrT)r'rrIrerrr(�__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)rrZactualrrr�*test_non_ascii_chars_do_not_cause_inf_loop�s�z9PolicyAPITests.test_non_ascii_chars_do_not_cause_inf_loopc
Cs�d}dD]z}|j|d��Ztjjj|d�}|�tjj��|�d|�Wd�n1sZ0YWd�q1sx0YqdS)Nz;Melt away the pounds with this one simple trick! 1234567890)���	)�maxlenrFrN)	rr'rrIrAr1�errorsZHeaderParseErrorr-)rZsubjectr�rrrr�test_short_maxlen_errorsz&PolicyAPITests.test_short_maxlen_errorc	Cs�tjjjdd�}dD]v}|j|d��Vtjd|d�}Gdd�dt�}|d	=||�|d	<|�|��|�d
��Wd�q1s�0YqdS)NF)r)zHeader: Value
Bad: Injection
zHeader: NoNewLine)�textzHeader: Value

Body�rc@seZdZdZdd�ZdS)zCPolicyAPITests.test_verify_generated_headers.<locals>.LiteralHeader�Headerc[s|Srr)r�kwargsrrrr-'szHPolicyAPITests.test_verify_generated_headers.<locals>.LiteralHeader.foldN)rWrXrYrxr-rrrr�
LiteralHeader%sr�r�z
Body)	r'rrIrAr�message_from_stringr4r�	as_string)rrr�rOr�rrr�test_verify_generated_headerss��z,PolicyAPITests.test_verify_generated_headers)2rWrXrYZlongMessageZcompat32_defaultsrrHrr'rr(rrrOrPZ
new_policyZcompat32r	rIZSMTPZSMTPUTF8ZHTTPrerr"r,r8r=rCrDrLrQr`ra�	Exceptionrcrhrkrtrurvr|r~r�r�r�r�r�r�r�rrrrr
s���

�
��
��
�
�	
		r
c@seZdZdS)�
TestExceptionNrbrrrrr�7sr�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.MyPolicycOstd��dS)Nrw)r�rmrrr�	badmethod@sz(TestPolicyPropagation.MyPolicy.badmethodN)	rWrXrYr�r-r.Zheader_fetch_parserr/r0rrrrrt?srtcCs@|�td�� tjd|jd�Wd�n1s20YdS)N�^test$�Subject: test

r�)r9r�r'r�rtrTrrr�test_message_from_stringEs�z.TestPolicyPropagation.test_message_from_stringcCs@|�td�� tjd|jd�Wd�n1s20YdS)Nr��Subject: test

r�)r9r�r'Zmessage_from_bytesrtrTrrr�test_message_from_bytesJs�z-TestPolicyPropagation.test_message_from_bytescCsJt�d�}|�td�� tj||jd�Wd�n1s<0YdS)Nr�r�r�)�io�StringIOr9r�r'Zmessage_from_filert�r�frrr�test_message_from_fileOs
z,TestPolicyPropagation.test_message_from_filecCsJt�d�}|�td�� tj||jd�Wd�n1s<0YdS)Nr�r�r�)r��BytesIOr9r�r'Zmessage_from_binary_filertr�rrr�test_message_from_binary_fileTs
z3TestPolicyPropagation.test_message_from_binary_filecCsJtjj|jd�}|�td��|�d�Wd�n1s<0YdS)Nr�r�r�)r'�parserZParserrtr9r�Zparsestr�r�prrr�test_parser[sz!TestPolicyPropagation.test_parsercCsJtjj|jd�}|�td��|�d�Wd�n1s<0YdS)Nr�r�r�)r'r�ZBytesParserrtr9r�Z
parsebytesr�rrr�test_bytes_parser`sz'TestPolicyPropagation.test_bytes_parserr�NcCs*|durtjj��n||_tj||jd�S)Nr�)r'rrIrAr�)r�sourcerrrr�	_make_msgiszTestPolicyPropagation._make_msgcCs|��}|�|j|j�dSr)r��assertIsr�rr6rrr�(test_parser_propagates_policy_to_messagemsz>TestPolicyPropagation.test_parser_propagates_policy_to_messagecCs2|�t�d��}|��D]}|�|j|j�qdS)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)rr6�partrrr�-test_parser_propagates_policy_to_sub_messagesqs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)rr6�s�grrr�+test_message_policy_propagates_to_generator�s�
zATestPolicyPropagation.test_message_policy_propagates_to_generatorcCs.|jdtjjjdd�d�}|�|��d�dSr�)r�r'rrIrArr�r�rrr�%test_message_policy_used_by_as_string�s�z;TestPolicyPropagation.test_message_policy_used_by_as_string)r�N)rWrXrYr'rr3rtr�r�r�r�r�r�r�r�r�r�r�rrrrr�:s	
r�c@seZdZdd�ZdS)�TestConcretePoliciescCs tj��}|�t|jdd�dS)NZFromzspam
egg@foo.py)r'rr(r1�
ValueErrorr0)r�instancerrr�(test_header_store_parse_rejects_newlines�s

�z=TestConcretePolicies.test_header_store_parse_rejects_newlinesN)rWrXrYr�rrrrr��sr��__main__)r�r)r�ZunittestZemail.errorsr'Zemail.policyZemail.parserZemail.generatorZ
email.messagerr	ZTestCaser
r�r�r�r�rW�mainrrrr�<module>s$(X