Your IP : 216.73.216.213


Current Path : /opt/alt/python36/lib64/python3.6/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python36/lib64/python3.6/test/test_email/__pycache__/test_policy.cpython-36.pyc

3

� fR<�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddlm
Z
dd�ZGdd�dej�Z
Gdd�de�ZGd	d
�d
ej�ZGdd�dej�Zed
kr�ej�dS)�N)�headerregistrycCs|j�}|j|�|S)N)�copy�update)Z
base_defaultsZdifferences�defaults�r�@/opt/alt/python36/lib64/python3.6/test/test_email/test_policy.py�
make_defaultss
rc@s�eZdZdZddddddd�Zej�Zejddej	j
jdej	j
jdej
jd	��ej	j
�Zej	jeei�ej	jeei�ej	jeed
di�ej	jeeddd��ej	jeeddd
��ej	jeeddi�eeei�iZejeed<dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGd 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'd.d/�Z(Gd0d1�d1�Z)d2d3�Z*d4d5�Z+d6d7�Z,d8d9�Z-d:d;�Z.d<d=�Z/dS)>�PolicyAPITestsT�N�
Z8bitFN)�max_line_length�linesepZcte_type�raise_on_defect�mangle_from_�message_factoryZlong)�utf8r�header_factoryZ
refold_source�content_managerrrr
z
)r
r)r
rrrcCsfx`|jj�D]R\}}xH|j�D]<\}}|j||d�� |jt||�|dj|��WdQRXqWqWdS)N)�policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr�expectedr�valuerrr�
test_defaultsBszPolicyAPITests.test_defaultscCs�xz|jj�D]l\}}xbt|�D]V}|j||d��>|jd�sRtttjj	|�t
j�rVwn|j||dj
|��WdQRXqWqWdS)N)rr�_z{} is not fully tested)rr�dirr�
startswith�
isinstancer�emailr�EmailPolicy�types�FunctionType�assertInr)rrrrrrr�test_all_attributes_coveredJs
z*PolicyAPITests.test_all_attributes_coveredcCsL|jt��}tjj�WdQRXt|j�}d}x|D]}|j||�q4WdS)N�fold�fold_binary�header_fetch_parse�header_source_parse�header_store_parse)r*r+r,r-r.)�assertRaises�	TypeErrorr$r�Policy�strZ	exceptionr()r�cm�msgZabstract_methods�methodrrr�test_abcVs

zPolicyAPITests.test_abcc
Cspxj|jj�D]\\}}x4|D],}|jt|d��t||d�WdQRXqW|jtd��d|_WdQRXqWdS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutablebs
z'PolicyAPITests.test_policy_is_immutablecCsTxN|jj�D]@\}}dd�|D�}|jf|�}x|D]}|jt||��q4WqWdS)NcSsi|]
}d|�qS)Nr)�.0rrrr�
<dictcomp>nszDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>)rr�cloneZassertIsNoner)r�policyclassrZtestattrdictrrrrr�!test_set_policy_attrs_when_clonedjs

z0PolicyAPITests.test_set_policy_attrs_when_clonedcCsTxN|jD]D}|jt��|dd�WdQRX|jt��|dd�WdQRXqWdS)N)Z this_keyword_should_not_be_valid)Znewtline)rr/r0)rr?rrr�*test_reject_non_policy_keyword_when_calledss
z9PolicyAPITests.test_reject_non_policy_keyword_when_calledcCs�|jj�}tjjjdd�}tjjjdd�}||}|jdd�x&|j�D]\}}|jt	||�|�qHW||}|jdd�x&|j�D]\}}|jt	||�|�q�W|tjj}x&|j�D]\}}|jt	||�|�q�WdS)N�d)r�2)
�policy_defaultsrr$r�defaultr>rrrr)rrZp1Zp2Zaddedrrrrr�test_policy_additionzs
z#PolicyAPITests.test_policy_additioncCshGdd�d�}|�}t�}tjj�}|j||�|j|j|g�t�}|j||�|j|j||g�dS)Nc@seZdZdd�ZdS)z2PolicyAPITests.test_register_defect.<locals>.DummycSs
g|_dS)N)�defects)rrrr�__init__�sz;PolicyAPITests.test_register_defect.<locals>.Dummy.__init__N)�__name__�
__module__�__qualname__rHrrrr�Dummy�srL)�objectr$rr%�register_defectrrG)rrL�obj�defectr�defect2rrr�test_register_defect�s
z#PolicyAPITests.test_register_defectc@seZdZdd�ZdS)zPolicyAPITests.MyObjcCs
g|_dS)N)rG)rrrrrH�szPolicyAPITests.MyObj.__init__N)rIrJrKrHrrrr�MyObj�srSc@seZdZdS)zPolicyAPITests.MyDefectN)rIrJrKrrrr�MyDefect�srTc
Cs@|j�}|jd�}|j|jd��tjjj||�WdQRXdS)Nzthe telly is broken)rSrTr7r$r�strict�
handle_defect)rr:rPrrr�#test_handle_defect_raises_on_strict�s
z2PolicyAPITests.test_handle_defect_raises_on_strictcCsb|j�}|jd�}tjjj||�|j|j|g�|jd�}tjjj||�|j|j||g�dS)N�one�two)rSrTr$rrErVrrG)rr:�defect1rQrrr�#test_handle_defect_registers_defect�s

z2PolicyAPITests.test_handle_defect_registers_defectcs(eZdZdZ�fdd�Zdd�Z�ZS)zPolicyAPITests.MyPolicyNcst�j|dgi|��dS)NrG)�superrH)r�args�kw)�	__class__rrrH�sz PolicyAPITests.MyPolicy.__init__cCs|jj|�dS)N)rG�append)rrOrPrrrrN�sz'PolicyAPITests.MyPolicy.register_defect)rIrJrKrGrHrN�
__classcell__rr)r_r�MyPolicy�srbc
CsD|j�}|jd�}|j|jd��|jdd�j||�WdQRXdS)Nzthe telly is brokenT)r)rSrTr7rbrV)rr:rPrrr�,test_overridden_register_defect_still_raises�s
z;PolicyAPITests.test_overridden_register_defect_still_raisescCs~|j�}|jd�}|j�}|j||�|j|j|g�|j|jg�|jd�}|j||�|j|j||g�|j|jg�dS)NrXrY)rSrTrbrVrrG)rr:rZZ	my_policyrQrrr�%test_overridden_register_defect_works�s

z4PolicyAPITests.test_overridden_register_defect_workscCs>tjjjdd�}|j|jd�|j|tj�|j|tj	�dS)NZTest�test)
r$rrErr�name�assertIsInstancer�UnstructuredHeaderZ
BaseHeader)r�hrrr�test_default_header_factory�sz*PolicyAPITests.test_default_header_factoryc@seZdZejjZdS)zPolicyAPITests.FooN)rIrJrKrrh�parserrrr�Foo�srlcCsxtjj�}tjj�}|jjd|j�|jdd�}|j||j�|j|tj	�|jdd�}|j||j�|j|tj	�dS)Nr:re)
r$rr%r�map_to_typerlrgZassertNotIsInstancerrh)r�policy1�policy2rirrr�$test_each_Policy_gets_unique_factory�s

z3PolicyAPITests.test_each_Policy_gets_unique_factorycCsZtjj�}|j�}|jjd|j�|jdd�}|j||j�|jdd�}|j||j�dS)Nr:re)r$rr%r>rrmrlrg)rrnrorirrr�test_clone_copies_factory�s
z(PolicyAPITests.test_clone_copies_factorycCsHtjj�}|j}|tjj}|j|j|�tjj|}|j|j|�dS)N)r$rr%rrUr)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s
z1PolicyAPITests.test_new_factory_overrides_defaultcCs:tjjtjj}|j|jtjjj�|j|jddi�dS)NrT)r$rrErUrrr%�__dict__)rrrrrr�6test_adding_default_policies_preserves_default_factory�szEPolicyAPITests.test_adding_default_policies_preserves_default_factorycCs4tjjjdd�}|jdd�}|j|ddd�dS)	N�)r�Subjectuą�z
Subject: 
z =?utf-8?q?=C4=85?=
uąąąąąąąąąąąą)r$rrEr>r*r)rrZactualrrr�*test_non_ascii_chars_do_not_cause_inf_loop�sz9PolicyAPITests.test_non_ascii_chars_do_not_cause_inf_loopcCsdd}xZdD]R}|j|d��<tjjj|d�}|jtjj��|jd|�WdQRXWdQRXq
WdS)	Nz;Melt away the pounds with this one simple trick! 1234567890���	)�maxlen)rrw)rzr{r|)	rr$rrEr>r/�errorsZHeaderParseErrorr*)rZsubjectr}rrrr�test_short_maxlen_error�s
z&PolicyAPITests.test_short_maxlen_error)0rIrJrKZlongMessageZcompat32_defaultsrrDrr$rr%rr�messageZEmailMessageZ
new_policyZcompat32rrEZSMTPZSMTPUTF8ZHTTPrUrrr)r6r;r@rArFrRrS�	ExceptionrTrWr[rbrcrdrjrlrprqrsruryrrrrrr	sl




	
		r	c@seZdZdS)�
TestExceptionN)rIrJrKrrrrr�sr�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)Nre)r�)rr]r^rrr�	badmethodsz(TestPolicyPropagation.MyPolicy.badmethodN)	rIrJrKr�r*r+Zheader_fetch_parserr-r.rrrrrbsrbcCs,|jtd��tjd|jd�WdQRXdS)Nz^test$zSubject: test

)r)r7r�r$�message_from_stringrb)rrrr�test_message_from_stringsz.TestPolicyPropagation.test_message_from_stringcCs,|jtd��tjd|jd�WdQRXdS)Nz^test$sSubject: test

)r)r7r�r$Zmessage_from_bytesrb)rrrr�test_message_from_bytes$sz-TestPolicyPropagation.test_message_from_bytescCs6tjd�}|jtd��tj||jd�WdQRXdS)NzSubject: test

z^test$)r)�io�StringIOr7r�r$Zmessage_from_filerb)r�frrr�test_message_from_file)s
z,TestPolicyPropagation.test_message_from_filecCs6tjd�}|jtd��tj||jd�WdQRXdS)NsSubject: test

z^test$)r)r��BytesIOr7r�r$Zmessage_from_binary_filerb)rr�rrr�test_message_from_binary_file.s
z3TestPolicyPropagation.test_message_from_binary_filec	Cs6tjj|jd�}|jtd��|jd�WdQRXdS)N)rz^test$zSubject: test

)r$�parserZParserrbr7r�Zparsestr)r�prrr�test_parser5sz!TestPolicyPropagation.test_parserc	Cs6tjj|jd�}|jtd��|jd�WdQRXdS)N)rz^test$sSubject: test

)r$r�ZBytesParserrbr7r�Z
parsebytes)rr�rrr�test_bytes_parser:sz'TestPolicyPropagation.test_bytes_parser�Subject: test

NcCs*|dkrtjjj�n||_tj||jd�S)N)r)r$rrEr>r�)r�sourcerrrr�	_make_msgCszTestPolicyPropagation._make_msgcCs|j�}|j|j|j�dS)N)r��assertIsr)rr4rrr�(test_parser_propagates_policy_to_messageGsz>TestPolicyPropagation.test_parser_propagates_policy_to_messagecCs6|jtjd��}x |j�D]}|j|j|j�qWdS)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)rr4�partrrr�-test_parser_propagates_policy_to_sub_messagesKszCTestPolicyPropagation.test_parser_propagates_policy_to_sub_messagescCsL|jdtjjjdd�d�}tj�}tjj|�}|j	|�|j
|j�d�dS)NzSubject: test
To: foo

�X)r
)rzSubject: testXTo: fooXX)r�r$rrEr>r�r��	generator�	GeneratorZflattenr�getvalue)rr4�s�grrr�+test_message_policy_propagates_to_generator^s
zATestPolicyPropagation.test_message_policy_propagates_to_generatorcCs.|jdtjjjdd�d�}|j|j�d�dS)NzSubject: test
To: foo

r�)r
)rzSubject: testXTo: fooXX)r�r$rrEr>rZ	as_string)rr4rrr�%test_message_policy_used_by_as_stringfsz;TestPolicyPropagation.test_message_policy_used_by_as_string)r�N)rIrJrKr$rr1rbr�r�r�r�r�r�r�r�r�r�r�rrrrr�s	
r�c@seZdZdd�ZdS)�TestConcretePoliciescCs tjj�}|jt|jdd�dS)NZFromzspam
egg@foo.py)r$rr%r/�
ValueErrorr.)r�instancerrr�(test_header_store_parse_rejects_newlinesns
z=TestConcretePolicies.test_header_store_parse_rejects_newlinesN)rIrJrKr�rrrrr�lsr��__main__)r�r&r�ZunittestZemail.errorsr$Zemail.policyZemail.parserZemail.generatorZ
email.messagerrZTestCaser	r�r�r�r�rI�mainrrrr�<module>s$X