Your IP : 216.73.216.213


Current Path : /opt/alt/python34/lib64/python3.4/test/test_email/__pycache__/
Upload File :
Current File : //opt/alt/python34/lib64/python3.4/test/test_email/__pycache__/test_policy.cpython-34.pyo

�
f fi4�@s�ddlZddlZddlZddlZddlZddlZddlZddlmZdd�Z	Gdd�dej
�ZGdd�dej
�ZGd	d
�d
ej
�Z
edkr�ej�ndS)�N)�headerregistrycCs|j�}|j|�|S)N)�copy�update)Z
base_defaultsZdifferences�defaults�r�@/opt/alt/python34/lib64/python3.4/test/test_email/test_policy.py�
make_defaults
s
rc@sceZdZdZidd6dd6dd6dd	6Zej�Zejidd	6ej	j
jd
6dd6ej	j
jd
6�ej	j
�Z
ieei�ej	j6eei�ej	j6eeidd6�ej	j6eeidd6dd6�ej	j6eeidd	6�ej	j6eei�e
6Ze
jee
d
<dd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd�ZGd d!�d!�ZGd"d#�d#e�Zd$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*dS):�PolicyAPITestsT�N�max_line_length�
�linesepZ8bitZcte_typeF�raise_on_defect�header_factoryZlongZ
refold_source�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_defaults8s
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_covered?sz*PolicyAPITests.test_all_attributes_coveredcCs_|jt��}tjj�WdQXt|j�}d}x|D]}|j||�qAWdS)N�fold�fold_binary�header_fetch_parse�header_source_parse�header_store_parse)zfoldzfold_binaryr(zheader_source_parsezheader_store_parse)�assertRaises�	TypeErrorr r�Policy�strZ	exceptionr$)r�cm�msgZabstract_methods�methodrrr�test_abcJs
zPolicyAPITests.test_abcc
Cs�x}|jj�D]l\}}x;|D]3}|jt|d��t||d�WdQXq#W|jtd��d|_WdQXqWdS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutableVs
z'PolicyAPITests.test_policy_is_immutablecCsmxf|jj�D]U\}}dd�|D�}|j|�}x$|D]}|jt||��qEWqWdS)NcSsi|]}d|�qS)Nr)�.0rrrr�
<dictcomp>bs	zDPolicyAPITests.test_set_policy_attrs_when_cloned.<locals>.<dictcomp>)rr�cloneZassertIsNoner)r�policyclassrZtestattrdictrrrrr�!test_set_policy_attrs_when_cloned^s

z0PolicyAPITests.test_set_policy_attrs_when_clonedcCs^xW|jD]L}|jt��|dd�WdQX|jt��|dd�WdQXq
WdS)NZ this_keyword_should_not_be_validZnewtline)rr+r,)rr;rrr�*test_reject_non_policy_keyword_when_calledgs
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_additionns

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__rDrrrr�DummysrH)�objectr rr!�register_defectrrC)rrH�obj�defectr�defect2rrr�test_register_defect~s			z#PolicyAPITests.test_register_defectc@seZdZdd�ZdS)zPolicyAPITests.MyObjcCs
g|_dS)N)rC)rrrrrD�szPolicyAPITests.MyObj.__init__N)rErFrGrDrrrr�MyObj�srOc@seZdZdS)zPolicyAPITests.MyDefectN)rErFrGrrrr�MyDefect�srPc
CsQ|j�}|jd�}|j|jd��tjjj||�WdQXdS)Nzthe telly is broken)rOrPr3r r�strict�
handle_defect)rr6rLrrr�#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)rOrPr rrArRrrC)rr6�defect1rMrrr�#test_handle_defect_registers_defect�sz2PolicyAPITests.test_handle_defect_registers_defectcs4eZdZdZ�fdd�Zdd�Z�S)zPolicyAPITests.MyPolicyNcst�jdg||�dS)NrC)�superrD)r�args�kw)�	__class__rrrD�sz PolicyAPITests.MyPolicy.__init__cCs|jj|�dS)N)rC�append)rrKrLrrrrJ�sz'PolicyAPITests.MyPolicy.register_defect)rErFrGrCrDrJrr)r[r�MyPolicy�sr]c
CsW|j�}|jd�}|j|jd��!|jdd�j||�WdQXdS)Nzthe telly is brokenrT)rOrPr3r]rR)rr6rLrrr�,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)NrTrU)rOrPr]rRrrC)rr6rVZ	my_policyrMrrr�$test_overriden_register_defect_works�sz3PolicyAPITests.test_overriden_register_defect_workscCsUtjjjdd�}|j|jd�|j|tj�|j|tj	�dS)NZTest�test)
r rrArr�name�assertIsInstancer�UnstructuredHeaderZ
BaseHeader)r�hrrr�test_default_header_factory�sz*PolicyAPITests.test_default_header_factoryc@seZdZejjZdS)zPolicyAPITests.FooN)rErFrGrrc�parserrrr�Foo�srgcCs�tjj�}tjj�}|jjd|j�|jdd�}|j||j�|j|tj	�|jdd�}|j||j�|j|tj	�dS)Nr6r`)
r rr!r�map_to_typergrbZassertNotIsInstancerrc)r�policy1�policy2rdrrr�$test_each_Policy_gets_unique_factory�sz3PolicyAPITests.test_each_Policy_gets_unique_factorycCstjj�}|j�}|jjd|j�|jdd�}|j||j�|jdd�}|j||j�dS)Nr6r`)r rr!r:rrhrgrb)rrirjrdrrr�test_clone_copies_factory�sz(PolicyAPITests.test_clone_copies_factorycCsbtjj�}|j}|tjj}|j|j|�tjj|}|j|j|�dS)N)r rr!rrQr)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s	z1PolicyAPITests.test_new_factory_overrides_defaultcCsPtjjtjj}|j|jtjjj�|j|jidd6�dS)NTr)r rrArQrrr!�__dict__)rrmrrr�6test_adding_default_policies_preserves_default_factory�szEPolicyAPITests.test_adding_default_policies_preserves_default_factory)+rErFrGZlongMessageZcompat32_defaultsrr@rr rr!rrZ
new_policyrZcompat32rAZSMTPZHTTPrQrrr%r2r7r<r=rBrNrO�	ExceptionrPrSrWr]r^r_rergrkrlrnrprrrrr	s\
	
	
		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)Nr`)rq)rrYrZrrr�	badmethod�sz(TestPolicyPropagation.MyPolicy.badmethodN)	rErFrGrsr&r'Zheader_fetch_parserr)r*rrrrr]�sr]cCs3|jtd��tjdd|j�WdQXdS)Nz^test$zSubject: test

r)r3rqr �message_from_stringr])rrrr�test_message_from_string�sz.TestPolicyPropagation.test_message_from_stringcCs3|jtd��tjdd|j�WdQXdS)Nz^test$sSubject: test

r)r3rqr Zmessage_from_bytesr])rrrr�test_message_from_bytes�sz-TestPolicyPropagation.test_message_from_bytescCsBtjd�}|jtd��tj|d|j�WdQXdS)NzSubject: test

z^test$r)�io�StringIOr3rqr Zmessage_from_filer])r�frrr�test_message_from_file�sz,TestPolicyPropagation.test_message_from_filecCsBtjd�}|jtd��tj|d|j�WdQXdS)NsSubject: test

z^test$r)rw�BytesIOr3rqr Zmessage_from_binary_filer])rryrrr�test_message_from_binary_filesz3TestPolicyPropagation.test_message_from_binary_filec	CsBtjjd|j�}|jtd��|jd�WdQXdS)Nrz^test$zSubject: test

)r �parserZParserr]r3rqZparsestr)r�prrr�test_parsersz!TestPolicyPropagation.test_parserc	CsBtjjd|j�}|jtd��|jd�WdQXdS)Nrz^test$sSubject: test

)r r}ZBytesParserr]r3rqZ
parsebytes)rr~rrr�test_bytes_parsersz'TestPolicyPropagation.test_bytes_parserzSubject: test

NcCs=|dkrtjjj�n||_tj|d|j�S)Nr)r rrAr:rt)r�sourcerrrr�	_make_msgs'zTestPolicyPropagation._make_msgcCs&|j�}|j|j|j�dS)N)r��assertIsr)rr0rrr�(test_parser_propagates_policy_to_messages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)rr0�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 rrAr:rwrxZ	generatorZ	GeneratorZflattenr�getvalue)rr0�s�grrr�+test_message_policy_propagates_to_generator4s
zATestPolicyPropagation.test_message_policy_propagates_to_generatorcCsA|jddtjjjdd��}|j|j�d�dS)NzSubject: test
To: foo

rr
r�zSubject: testXTo: fooXX)r�r rrAr:rZ	as_string)rr0rrr�%test_message_policy_used_by_as_string<sz;TestPolicyPropagation.test_message_policy_used_by_as_string)rErFrGr rr-r]rurvrzr|rr�r�r�r�r�r�rrrrrr�s	rrc@seZdZdd�ZdS)�TestConcretePoliciescCs,tjj�}|jt|jdd�dS)NZFromzspam
egg@foo.py)r rr!r+�
ValueErrorr*)r�instancerrr�(test_header_store_parse_rejects_newlinesDs	z=TestConcretePolicies.test_header_store_parse_rejects_newlinesN)rErFrGr�rrrrr�Bsr��__main__)rwr"r�ZunittestZemail.policyr Zemail.parserZemail.generatorrrZTestCaser	rrr�rE�mainrrrr�<module>s�X