Your IP : 216.73.216.213


Current Path : /opt/alt/python38/lib64/python3.8/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python38/lib64/python3.8/test/test_email/__pycache__/test_policy.cpython-38.opt-1.pyc

U

i�f�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/python38/lib64/python3.8/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
rrcCs^|j��D]N\}}|��D]<\}}|j||d�� |�t||�|d�|��W5QRXqq
dS)N��policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr�expectedr�valuerrr�
test_defaultsCs��zPolicyAPITests.test_defaultscCs�|j��D]r\}}t|�D]`}|j||d��H|�d�sNtttjj	|�t
j�r\W5QR�qn|�||d�
|��W5QRXqq
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_coveredc	CsH|�t��}tj��W5QRXt|j�}d}|D]}|�||�q2dS)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_abccCsh|j��D]X\}}|D],}|�t|d��t||d�W5QRXq|�td��d|_W5QRXq
dS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutablecsz'PolicyAPITests.test_policy_is_immutablecCsL|j��D]<\}}dd�|D�}|jf|�}|D]}|�t||��q0q
dS)NcSsi|]
}|d�qSrr)�.0rrrr�
<dictcomp>oszDPolicyAPITests.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
CsP|jD]D}|�t��|dd�W5QRX|�t��|dd�W5QRXqdS)N)Z this_keyword_should_not_be_valid)Znewtline)rr1r2)rrArrr�*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�defaultr@rrrr)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?=
�á�SubjectrrE)r'�message�EmailMessagerrHr@rr-)rr r6rIrJrrr�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__rTrrrr�Dummy�srY)�objectr'rr(�register_defectrrR)rrY�obj�defectr�defect2rrr�test_register_defect�s
z#PolicyAPITests.test_register_defectc@seZdZdd�ZdS)zPolicyAPITests.MyObjcCs
g|_dSrrQrSrrrrT�szPolicyAPITests.MyObj.__init__NrUrrrr�MyObj�sr`c@seZdZdS)zPolicyAPITests.MyDefectN�rVrWrXrrrr�MyDefect�srbc	Cs@|��}|�d�}|�|jd��tjj�||�W5QRXdS)N�the telly is broken)r`rbr9r'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)r`rbr'rrHrerrR)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)NrR)�superrT�r�args�kw��	__class__rrrT�sz PolicyAPITests.MyPolicy.__init__cCs|j�|�dSr)rR�append)rr\r]rrrr[�sz'PolicyAPITests.MyPolicy.register_defect)rVrWrXrRrTr[�
__classcell__rrror�MyPolicy�srsc	CsD|��}|�d�}|�|jd��|jdd��||�W5QRXdS)NrcT)r)r`rbr9rsrerfrrr�,test_overridden_register_defect_still_raises�s
z;PolicyAPITests.test_overridden_register_defect_still_raisescCs~|��}|�d�}|��}|�||�|�|j|g�|�|jg�|�d�}|�||�|�|j||g�|�|jg�dSrh)r`rbrsrerrR)rr<riZ	my_policyr^rrr�%test_overridden_register_defect_works�s

z4PolicyAPITests.test_overridden_register_defect_workscCs>tjj�dd�}|�|jd�|�|tj�|�|tj	�dS)NZTest�test)
r'rrHrr�name�assertIsInstancer�UnstructuredHeaderZ
BaseHeader)r�hrrr�test_default_header_factory�sz*PolicyAPITests.test_default_header_factoryc@seZdZejjZdS)zPolicyAPITests.FooN)rVrWrXrry�parserrrr�Foo�sr}cCsxtj��}tj��}|j�d|j�|�dd�}|�||j�|�|tj	�|�dd�}|�||j�|�|tj	�dS�Nr<rv)
r'rr(r�map_to_typer}rxZassertNotIsInstancerry�rZpolicy1Zpolicy2rzrrr�$test_each_Policy_gets_unique_factory�s

z3PolicyAPITests.test_each_Policy_gets_unique_factorycCsZtj��}|��}|j�d|j�|�dd�}|�||j�|�dd�}|�||j�dSr~)r'rr(r@rrr}rxr�rrr�test_clone_copies_factory�s
z(PolicyAPITests.test_clone_copies_factorycCsHtj��}|j}|tjj}|�|j|�tjj|}|�|j|�dSr)r'rr(rrdr)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s
z1PolicyAPITests.test_new_factory_overrides_defaultcCs:tjjtjj}|�|jtjjj�|�|jddi�dS)NrT)r'rrHrdrrr(�__dict__)rr�rrr�6test_adding_default_policies_preserves_default_factory�s
�zEPolicyAPITests.test_adding_default_policies_preserves_default_factorycCs,tjjjdd�}|�dd�}|�|d�dS)N�rErMuąąąąąąąąąąąą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'rrHr@r-r)rrZactualrrr�*test_non_ascii_chars_do_not_cause_inf_loop�s�z9PolicyAPITests.test_non_ascii_chars_do_not_cause_inf_loopcCs`d}dD]R}|j|d��<tjjj|d�}|�tjj��|�d|�W5QRXW5QRXqdS)Nz;Melt away the pounds with this one simple trick! 1234567890)���	)�maxlenrErM)	rr'rrHr@r1�errorsZHeaderParseErrorr-)rZsubjectr�rrrr�test_short_maxlen_errorsz&PolicyAPITests.test_short_maxlen_errorc
Cs|tjjjdd�}dD]b}|j|d��Ltjd|d�}Gdd�dt�}|d	=||�|d	<|�|��|�d
��W5QRXqdS)z.Turning protection off allows header injectionF)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)rVrWrXrwr-rrrr�
LiteralHeader%sr�r�z
BodyN)	r'rrHr@r�message_from_stringr4r�	as_string)rrr�rNr�rrr�test_verify_generated_headerss��z,PolicyAPITests.test_verify_generated_headers)2rVrWrXZlongMessageZcompat32_defaultsrrGrr'rr(rrrNrOZ
new_policyZcompat32r	rHZSMTPZSMTPUTF8ZHTTPrdrr"r,r8r=rBrCrKrPr_r`�	Exceptionrbrgrjrsrtrur{r}r�r�r�r�r�r�r�rrrrr
s���
�������	
		r
c@seZdZdS)�
TestExceptionNrarrrrr�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)Nrv)r�rlrrr�	badmethod@sz(TestPolicyPropagation.MyPolicy.badmethodN)	rVrWrXr�r-r.Zheader_fetch_parserr/r0rrrrrs?srsc	Cs,|�td��tjd|jd�W5QRXdS)N�^test$�Subject: test

r�)r9r�r'r�rsrSrrr�test_message_from_stringEs�z.TestPolicyPropagation.test_message_from_stringc	Cs,|�td��tjd|jd�W5QRXdS)Nr��Subject: test

r�)r9r�r'Zmessage_from_bytesrsrSrrr�test_message_from_bytesJs�z-TestPolicyPropagation.test_message_from_bytesc	Cs6t�d�}|�td��tj||jd�W5QRXdS)Nr�r�r�)�io�StringIOr9r�r'Zmessage_from_filers�r�frrr�test_message_from_fileOs
z,TestPolicyPropagation.test_message_from_filec	Cs6t�d�}|�td��tj||jd�W5QRXdS)Nr�r�r�)r��BytesIOr9r�r'Zmessage_from_binary_filersr�rrr�test_message_from_binary_fileTs
z3TestPolicyPropagation.test_message_from_binary_filec	Cs6tjj|jd�}|�td��|�d�W5QRXdS)Nr�r�r�)r'�parserZParserrsr9r�Zparsestr�r�prrr�test_parser[sz!TestPolicyPropagation.test_parserc	Cs6tjj|jd�}|�td��|�d�W5QRXdS)Nr�r�r�)r'r�ZBytesParserrsr9r�Z
parsebytesr�rrr�test_bytes_parser`sz'TestPolicyPropagation.test_bytes_parserr�NcCs*|dkrtjj��n||_tj||jd�S)Nr�)r'rrHr@r�)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'rrHr@r�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'rrHr@rr�r�rrr�%test_message_policy_used_by_as_string�s�z;TestPolicyPropagation.test_message_policy_used_by_as_string)r�N)rVrWrXr'rr3rsr�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)rVrWrXr�rrrrr��sr��__main__)r�r)r�ZunittestZemail.errorsr'Zemail.policyZemail.parserZemail.generatorZ
email.messagerr	ZTestCaser
r�r�r�r�rV�mainrrrr�<module>s$(X