Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/test_email/__pycache__/test_policy.cpython-35.opt-1.pyc



��Yf�5�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZdd�Z	Gdd�dej
�ZGdd�dej
�ZGd	d
�d
ej
�Z
edkr�ej�dS)�N)�headerregistrycCs|j�}|j|�|S)N)�copy�update)Z
base_defaultsZdifferences�defaults�r�@/opt/alt/python35/lib64/python3.5/test/test_email/test_policy.py�
make_defaults
s
rc@s�eZdZdZdddddddd	d
diZej�Zejdd	dd	dej	j
jd
ddej	j
jd
d	i�ej	j
�Z
ej	jeei�ej	jeei�ej	jeeddi�ej	jeeddddi�ej	jeeddddi�ej	jeeddi�e
eei�iZe
jee
d<dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zd d!�ZGd"d#�d#�ZGd$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+dS)<�PolicyAPITestsT�max_line_length�N�linesep�
Zcte_typeZ8bit�raise_on_defectFZmangle_from_�utf8�header_factoryZ
refold_sourceZlong�content_managerz
NcCsfx_|jj�D]N\}}x?|j�D]1\}}|jt||�|dj|��q)WqWdS)Nz2change {} docs/docstrings if defaults have changed)�policies�items�assertEqual�getattr�format)�self�policy�expected�attr�valuerrr�
test_defaults>s
zPolicyAPITests.test_defaultscCs�x�|jj�D]u\}}xft|�D]X}|jd�s)tttjj|�t	j
�req)q)|j||dj|��q)WqWdS)N�_z{} is not fully tested)
rr�dir�
startswith�
isinstancer�emailr�EmailPolicy�types�FunctionType�assertInr)rrrrrrr�test_all_attributes_coveredEsz*PolicyAPITests.test_all_attributes_coveredcCs`|jt��}tjj�WdQRXt|j�}d}x|D]}|j||�qBWdS)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_abcPs
zPolicyAPITests.test_abcc
Cs�x|jj�D]n\}}x<|D]4}|jt|d��t||d�WdQRXq#W|jtd��d|_WdQRXqWdS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutable\s
z'PolicyAPITests.test_policy_is_immutablecCsmxf|jj�D]U\}}dd�|D�}|j|�}x$|D]}|jt||��qEWqWdS)NcSsi|]}d|�qS)Nr)�.0rrrr�
<dictcomp>hs	zDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>)rr�cloneZassertIsNoner)r�policyclassrZtestattrdictrrrrr�!test_set_policy_attrs_when_clonedds

z0PolicyAPITests.test_set_policy_attrs_when_clonedcCs`xY|jD]N}|jt��|dd�WdQRX|jt��|dd�WdQRXq
WdS)NZ this_keyword_should_not_be_validZnewtline)rr,r-)rr<rrr�*test_reject_non_policy_keyword_when_calledms
z9PolicyAPITests.test_reject_non_policy_keyword_when_calledcCs)|jj�}tjjjdd�}tjjjdd�}||}|jdd�x3|j�D]%\}}|jt	||�|�qfW||}|jdd�x3|j�D]%\}}|jt	||�|�q�W|tjj}x3|j�D]%\}}|jt	||�|�q�WdS)Nr
�d�2)
�policy_defaultsrr!r�defaultr;rrrr)rrZp1Zp2Zaddedrrrrr�test_policy_additionts

z#PolicyAPITests.test_policy_additioncCs�Gdd�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__rErrrr�Dummy�srI)�objectr!rr"�register_defectrrD)rrI�obj�defectr�defect2rrr�test_register_defect�s			z#PolicyAPITests.test_register_defectc@seZdZdd�ZdS)zPolicyAPITests.MyObjcCs
g|_dS)N)rD)rrrrrE�szPolicyAPITests.MyObj.__init__N)rFrGrHrErrrr�MyObj�srPc@seZdZdS)zPolicyAPITests.MyDefectN)rFrGrHrrrr�MyDefect�srQc
CsR|j�}|jd�}|j|jd��tjjj||�WdQRXdS)Nzthe telly is broken)rPrQr4r!r�strict�
handle_defect)rr7rMrrr�#test_handle_defect_raises_on_strict�sz2PolicyAPITests.test_handle_defect_raises_on_strictcCs�|j�}|jd�}tjjj||�|j|j|g�|jd�}tjjj||�|j|j||g�dS)N�one�two)rPrQr!rrBrSrrD)rr7�defect1rNrrr�#test_handle_defect_registers_defect�sz2PolicyAPITests.test_handle_defect_registers_defectcs4eZdZdZ�fdd�Zdd�Z�S)zPolicyAPITests.MyPolicyNcst�j|dg|�dS)NrD)�superrE)r�args�kw)�	__class__rrrE�sz PolicyAPITests.MyPolicy.__init__cCs|jj|�dS)N)rD�append)rrLrMrrrrK�sz'PolicyAPITests.MyPolicy.register_defect)rFrGrHrDrErKrr)r\r�MyPolicy�sr^c
CsX|j�}|jd�}|j|jd��!|jdd�j||�WdQRXdS)Nzthe telly is brokenrT)rPrQr4r^rS)rr7rMrrr�,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)NrUrV)rPrQr^rSrrD)rr7rWZ	my_policyrNrrr�%test_overridden_register_defect_works�sz4PolicyAPITests.test_overridden_register_defect_workscCsUtjjjdd�}|j|jd�|j|tj�|j|tj	�dS)NZTest�test)
r!rrBrr�name�assertIsInstancer�UnstructuredHeaderZ
BaseHeader)r�hrrr�test_default_header_factory�sz*PolicyAPITests.test_default_header_factoryc@seZdZejjZdS)zPolicyAPITests.FooN)rFrGrHrrd�parserrrr�Foo�srhcCs�tjj�}tjj�}|jjd|j�|jdd�}|j||j�|j|tj	�|jdd�}|j||j�|j|tj	�dS)Nr7ra)
r!rr"r�map_to_typerhrcZassertNotIsInstancerrd)r�policy1�policy2rerrr�$test_each_Policy_gets_unique_factory�sz3PolicyAPITests.test_each_Policy_gets_unique_factorycCstjj�}|j�}|jjd|j�|jdd�}|j||j�|jdd�}|j||j�dS)Nr7ra)r!rr"r;rrirhrc)rrjrkrerrr�test_clone_copies_factory�sz(PolicyAPITests.test_clone_copies_factorycCsbtjj�}|j}|tjj}|j|j|�tjj|}|j|j|�dS)N)r!rr"rrRr)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s	z1PolicyAPITests.test_new_factory_overrides_defaultcCsOtjjtjj}|j|jtjjj�|j|jddi�dS)NrT)r!rrBrRrrr"�__dict__)rrnrrr�6test_adding_default_policies_preserves_default_factory�szEPolicyAPITests.test_adding_default_policies_preserves_default_factory),rFrGrHZlongMessageZcompat32_defaultsrrArr!rr"rrZ
new_policyZcompat32rrBZSMTPZSMTPUTF8ZHTTPrRrrr&r3r8r=r>rCrOrP�	ExceptionrQrTrXr^r_r`rfrhrlrmrorqrrrrr	sd
	
		r	c@s�eZdZGdd�dejj�Zdd�Zdd�Zdd�Z	d	d
�Z
dd�Zd
d�Zdddd�Z
dd�Zdd�Zdd�Zdd�ZdS)�TestPolicyPropagationc@s4eZdZdd�ZeZZZeZZdS)zTestPolicyPropagation.MyPolicycOstd��dS)Nra)rr)rrZr[rrr�	badmethod�sz(TestPolicyPropagation.MyPolicy.badmethodN)	rFrGrHrtr'r(Zheader_fetch_parserr*r+rrrrr^�sr^cCs4|jtd��tjdd|j�WdQRXdS)Nz^test$zSubject: test

r)r4rrr!�message_from_stringr^)rrrr�test_message_from_string�sz.TestPolicyPropagation.test_message_from_stringcCs4|jtd��tjdd|j�WdQRXdS)Nz^test$sSubject: test

r)r4rrr!Zmessage_from_bytesr^)rrrr�test_message_from_bytessz-TestPolicyPropagation.test_message_from_bytescCsCtjd�}|jtd��tj|d|j�WdQRXdS)NzSubject: test

z^test$r)�io�StringIOr4rrr!Zmessage_from_filer^)r�frrr�test_message_from_filesz,TestPolicyPropagation.test_message_from_filecCsCtjd�}|jtd��tj|d|j�WdQRXdS)NsSubject: test

z^test$r)rx�BytesIOr4rrr!Zmessage_from_binary_filer^)rrzrrr�test_message_from_binary_file
sz3TestPolicyPropagation.test_message_from_binary_filec	CsCtjjd|j�}|jtd��|jd�WdQRXdS)Nrz^test$zSubject: test

)r!�parserZParserr^r4rrZparsestr)r�prrr�test_parsersz!TestPolicyPropagation.test_parserc	CsCtjjd|j�}|jtd��|jd�WdQRXdS)Nrz^test$sSubject: test

)r!r~ZBytesParserr^r4rrZ
parsebytes)rrrrr�test_bytes_parsersz'TestPolicyPropagation.test_bytes_parserzSubject: test

NcCs=|dkrtjjj�n||_tj|d|j�S)Nr)r!rrBr;ru)r�sourcerrrr�	_make_msgs'zTestPolicyPropagation._make_msgcCs&|j�}|j|j|j�dS)N)r��assertIsr)rr1rrr�(test_parser_propagates_policy_to_message#sz>TestPolicyPropagation.test_parser_propagates_policy_to_messagecCsI|jtjd��}x*|j�D]}|j|j|j�q%WdS)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)rr1�partrrr�-test_parser_propagates_policy_to_sub_messages'szCTestPolicyPropagation.test_parser_propagates_policy_to_sub_messagescCsl|jddtjjjdd��}tj�}tjj|�}|j	|�|j
|j�d�dS)NzSubject: test
To: foo

rr�XzSubject: testXTo: fooXX)r�r!rrBr;rxry�	generator�	GeneratorZflattenr�getvalue)rr1�s�grrr�+test_message_policy_propagates_to_generator:s
zATestPolicyPropagation.test_message_policy_propagates_to_generatorcCsA|jddtjjjdd��}|j|j�d�dS)NzSubject: test
To: foo

rrr�zSubject: testXTo: fooXX)r�r!rrBr;rZ	as_string)rr1rrr�%test_message_policy_used_by_as_stringBsz;TestPolicyPropagation.test_message_policy_used_by_as_string)rFrGrHr!rr.r^rvrwr{r}r�r�r�r�r�r�r�rrrrrs�s	rsc@seZdZdd�ZdS)�TestConcretePoliciescCs,tjj�}|jt|jdd�dS)NZFromzspam
egg@foo.py)r!rr"r,�
ValueErrorr+)r�instancerrr�(test_header_store_parse_rejects_newlinesJs	z=TestConcretePolicies.test_header_store_parse_rejects_newlinesN)rFrGrHr�rrrrr�Hsr��__main__)rxr#r�ZunittestZemail.policyr!Zemail.parserZemail.generatorrrZTestCaser	rsr�rF�mainrrrr�<module>s�X