Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/test_email/__pycache__/test_policy.cpython-310.opt-1.pyc

o

0�i)B�@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�B/opt/alt/python310/lib64/python3.10/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]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_defaultsCs�����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_coveredKs"
��������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�strZ	exceptionr+)r�cm�msgZabstract_methods�methodrrr�test_abcWs�
�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_immutablecs�����z'PolicyAPITests.test_policy_is_immutablecCsP|j��D] \}}dd�|D�}|jdi|��}|D]
}|�t||��qqdS)NcSsi|]}|d�qSrr)�.0rrrr�
<dictcomp>oszDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>r)rr�cloneZassertIsNoner)r�policyclassrZtestattrdictrrrrr�!test_set_policy_attrs_when_clonedks��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)rrArrr�*test_reject_non_policy_keyword_when_calledts
����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�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@�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__rVrrrr�Dummy��r\)�objectr'rr(�register_defectrrT)rr\�obj�defectr�defect2rrr�test_register_defect�s
z#PolicyAPITests.test_register_defectc@rQ)zPolicyAPITests.MyObjcCrRrrSrUrrrrV�rWzPolicyAPITests.MyObj.__init__NrXrrrr�MyObj�r]rdc@�eZdZdS)zPolicyAPITests.MyDefectN�rYrZr[rrrr�MyDefect��rgcCsV|��}|�d�}|�|jd��tjj�||�Wd�dS1s$wYdS)N�the telly is broken)rdrgr9r'r�strict�
handle_defect�rr<rarrr�#test_handle_defect_raises_on_strict�s

"�z2PolicyAPITests.test_handle_defect_raises_on_strictcCsb|��}|�d�}tjj�||�|�|j|g�|�d�}tjj�||�|�|j||g�dS�NZoneZtwo)rdrgr'rrHrkrrT)rr<�defect1rbrrr�#test_handle_defect_registers_defect�s

z2PolicyAPITests.test_handle_defect_registers_defectcs(eZdZdZ�fdd�Zdd�Z�ZS)zPolicyAPITests.MyPolicyNcst�j|dgi|��dS)NrT)�superrV�r�args�kw��	__class__rrrV�sz PolicyAPITests.MyPolicy.__init__cCs|j�|�dSr)rT�append)rr`rarrrr_�sz'PolicyAPITests.MyPolicy.register_defect)rYrZr[rTrVr_�
__classcell__rrrur�MyPolicy�srycCsZ|��}|�d�}|�|jd��|jdd��||�Wd�dS1s&wYdS)NriT)r)rdrgr9ryrkrlrrr�,test_overridden_register_defect_still_raises�s

"�z;PolicyAPITests.test_overridden_register_defect_still_raisescCs~|��}|�d�}|��}|�||�|�|j|g�|�|jg�|�d�}|�||�|�|j||g�|�|jg�dSrn)rdrgryrkrrT)rr<roZ	my_policyrbrrr�%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)rYrZr[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�r~ZassertNotIsInstancerr�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(r@rr�r�r~r�rrr�test_clone_copies_factory�s
z(PolicyAPITests.test_clone_copies_factorycCsHtj��}|j}|tjj}|�|j|�tjj|}|�|j|�dSr)r'rr(rrjr)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s
z1PolicyAPITests.test_new_factory_overrides_defaultcCs:tjjtjj}|�|jtjjj�|�|jddi�dS)NrT)r'rrHrjrrr(�__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_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)���	)�maxlenrErM)	rr'rrHr@r1�errorsZHeaderParseErrorr-)r�subjectr�rrrr�test_short_maxlen_errors�����z&PolicyAPITests.test_short_maxlen_errorc	Cs�tjjjdd�}dD]H}|j|d��8tjd|d�}Gdd�dt�}|d	=||�|d	<|�|��|�d
��|�|�	�|�d
��
��Wd�n1sMwYq
dS)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)rYrZr[r}r-rrrr�
LiteralHeader%sr�r�z
Body)r'rrHr@r�message_from_stringr4r�	as_stringZas_bytes�encode)rrr�rNr�rrr�test_verify_generated_headerss*������z,PolicyAPITests.test_verify_generated_headers)2rYrZr[ZlongMessageZcompat32_defaultsrrGrr'rr(rrrNrOZ
new_policyZcompat32r	rHZSMTPZSMTPUTF8ZHTTPrjrr"r,r8r=rBrCrKrPrcrd�	Exceptionrgrmrpryrzr{r�r�r�r�r�r�r�r�r�rrrrr
s���


�
��
��
�
�	
		r
c@re)�
TestExceptionNrfrrrrr�;rhr�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�rrrrr�	badmethodDsz(TestPolicyPropagation.MyPolicy.badmethodN)	rYrZr[r�r-r.Zheader_fetch_parserr/r0rrrrryCsrycC�B|�td��tjd|jd�Wd�dS1swYdS)N�^test$�Subject: test

r�)r9r�r'r�ryrUrrr�test_message_from_stringI�
�"�z.TestPolicyPropagation.test_message_from_stringcCr�)Nr��Subject: test

r�)r9r�r'Zmessage_from_bytesryrUrrr�test_message_from_bytesNr�z-TestPolicyPropagation.test_message_from_bytescC�Lt�d�}|�td��tj||jd�Wd�dS1swYdS)Nr�r�r�)�io�StringIOr9r�r'Zmessage_from_filery�r�frrr�test_message_from_fileS�
"�z,TestPolicyPropagation.test_message_from_filecCr�)Nr�r�r�)r��BytesIOr9r�r'Zmessage_from_binary_fileryr�rrr�test_message_from_binary_fileXr�z3TestPolicyPropagation.test_message_from_binary_filecC�Ltjj|jd�}|�td��|�d�Wd�dS1swYdS)Nr�r�r�)r'�parserZParserryr9r�Zparsestr�r�prrr�test_parser_�"�z!TestPolicyPropagation.test_parsercCr�)Nr�r�r�)r'r�ZBytesParserryr9r�Z
parsebytesr�rrr�test_bytes_parserdr�z'TestPolicyPropagation.test_bytes_parserr�NcCs*|dur
tjj��n||_tj||jd�S)Nr�)r'rrHr@r�)r�sourcerrrr�	_make_msgmszTestPolicyPropagation._make_msgcCs|��}|�|j|j�dSr)r��assertIsr�rr6rrr�(test_parser_propagates_policy_to_messageqsz>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)rr6�partrrr�-test_parser_propagates_policy_to_sub_messagesus�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)rYrZr[r'rr3ryr�r�r�r�r�r�r�r�r�r�r�rrrrr�>s
	r�c@rQ)�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)rYrZr[r�rrrrr��sr��__main__)r�r)r�ZunittestZemail.errorsr'Zemail.policyZemail.parserZemail.generatorZ
email.messagerr	ZTestCaser
r�r�r�r�rY�mainrrrr�<module>s(,X	�