HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/test_email/__pycache__/test_policy.cpython-37.opt-1.pyc
B

��g>�@s�ddlZddlZddlZddlZddlZddlZddlZddlZddl	Zddl
ZddlmZdd�ZGdd�dej
�ZGdd�de�ZGd	d
�d
ej
�ZGdd�dej
�Zed
kr�e��dS)�N)�headerregistrycCs|��}|�|�|S)N)�copy�update)Z
base_defaultsZdifferences�defaults�r�7/usr/local/lib/python3.7/test/test_email/test_policy.py�
make_defaults
s
rc@s�eZdZdZddddddd�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?�Z0dS)@�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`|j��D]R\}}xH|��D]<\}}|j||d�� |�t||�|d�|��WdQRXqWqWdS)N)�policy�attrz2change {} docs/docstrings if defaults have changed)�policies�items�subTest�assertEqual�getattr�format)�selfr�expectedr�valuerrr�
test_defaultsCszPolicyAPITests.test_defaultscCs�xz|j��D]l\}}xbt|�D]V}|j||d��>|�d�sRtttjj	|�t
j�rVwn|�||d�
|��WdQRXqWqWdS)N)rr�_z{} is not fully tested)rr�dirr�
startswith�
isinstancer�emailr�EmailPolicy�types�FunctionType�assertInr)rrrrrrr�test_all_attributes_coveredKs
z*PolicyAPITests.test_all_attributes_coveredc	CsL|�t��}tj��WdQRXt|j�}d}x|D]}|�||�q4WdS)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_abccCspxj|j��D]\\}}x4|D],}|�t|d��t||d�WdQRXqW|�td��d|_WdQRXqWdS)Nz.*read-onlyzno attribute.*foo)rr�assertRaisesRegex�AttributeError�setattr�foo)rrrrrrr�test_policy_is_immutablecs
z'PolicyAPITests.test_policy_is_immutablecCsTxN|j��D]@\}}dd�|D�}|jf|�}x|D]}|�t||��q4WqWdS)NcSsi|]
}d|�qS)Nr)�.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
CsTxN|jD]D}|�t��|dd�WdQRX|�t��|dd�WdQRXqWdS)N)Z this_keyword_should_not_be_valid)Znewtline)rr.r/)rr>rrr�*test_reject_non_policy_keyword_when_calledts
z9PolicyAPITests.test_reject_non_policy_keyword_when_calledcCs�|j��}tjjjdd�}tjjjdd�}||}|jdd�x&|��D]\}}|�t	||�|�qHW||}|jdd�x&|��D]\}}|�t	||�|�q�W|tjj}x&|��D]\}}|�t	||�|�q�WdS)N�d)r�2)
�policy_defaultsrr$r�defaultr=rrrr)rr�p1�p2Zaddedrrrrr�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?=
�á�Subjectr)r)r$�message�EmailMessagerrDr=rr*)rrr3rErFrrr�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|_dS)N)�defects)rrrr�__init__�sz;PolicyAPITests.test_register_defect.<locals>.Dummy.__init__N)�__name__�
__module__�__qualname__rNrrrr�Dummy�srR)�objectr$rr%�register_defectrrM)rrR�obj�defectr�defect2rrr�test_register_defect�s
z#PolicyAPITests.test_register_defectc@seZdZdd�ZdS)zPolicyAPITests.MyObjcCs
g|_dS)N)rM)rrrrrN�szPolicyAPITests.MyObj.__init__N)rOrPrQrNrrrr�MyObj�srYc@seZdZdS)zPolicyAPITests.MyDefectN)rOrPrQrrrr�MyDefect�srZc	Cs@|��}|�d�}|�|jd��tjj�||�WdQRXdS)Nzthe telly is broken)rYrZr6r$r�strict�
handle_defect)rr9rVrrr�#test_handle_defect_raises_on_strict�s
z2PolicyAPITests.test_handle_defect_raises_on_strictcCsb|��}|�d�}tjj�||�|�|j|g�|�d�}tjj�||�|�|j||g�dS)N�one�two)rYrZr$rrDr\rrM)rr9�defect1rWrrr�#test_handle_defect_registers_defect�s

z2PolicyAPITests.test_handle_defect_registers_defectcs(eZdZdZ�fdd�Zdd�Z�ZS)zPolicyAPITests.MyPolicyNcst�j|dgi|��dS)NrM)�superrN)r�args�kw)�	__class__rrrN�sz PolicyAPITests.MyPolicy.__init__cCs|j�|�dS)N)rM�append)rrUrVrrrrT�sz'PolicyAPITests.MyPolicy.register_defect)rOrPrQrMrNrT�
__classcell__rr)rer�MyPolicy�srhc	CsD|��}|�d�}|�|jd��|jdd��||�WdQRXdS)Nzthe telly is brokenT)r)rYrZr6rhr\)rr9rVrrr�,test_overridden_register_defect_still_raises�s
z;PolicyAPITests.test_overridden_register_defect_still_raisescCs~|��}|�d�}|��}|�||�|�|j|g�|�|jg�|�d�}|�||�|�|j||g�|�|jg�dS)Nr^r_)rYrZrhr\rrM)rr9r`Z	my_policyrWrrr�%test_overridden_register_defect_works�s

z4PolicyAPITests.test_overridden_register_defect_workscCs>tjj�dd�}|�|jd�|�|tj�|�|tj	�dS)NZTest�test)
r$rrDrr�name�assertIsInstancer�UnstructuredHeaderZ
BaseHeader)r�hrrr�test_default_header_factory�sz*PolicyAPITests.test_default_header_factoryc@seZdZejjZdS)zPolicyAPITests.FooN)rOrPrQrrn�parserrrr�Foo�srrcCsxtj��}tj��}|j�d|j�|�dd�}|�||j�|�|tj	�|�dd�}|�||j�|�|tj	�dS)Nr9rk)
r$rr%r�map_to_typerrrmZassertNotIsInstancerrn)r�policy1�policy2rorrr�$test_each_Policy_gets_unique_factory�s

z3PolicyAPITests.test_each_Policy_gets_unique_factorycCsZtj��}|��}|j�d|j�|�dd�}|�||j�|�dd�}|�||j�dS)Nr9rk)r$rr%r=rrsrrrm)rrtrurorrr�test_clone_copies_factory�s
z(PolicyAPITests.test_clone_copies_factorycCsHtj��}|j}|tjj}|�|j|�tjj|}|�|j|�dS)N)r$rr%rr[r)rZmypolicyZ	myfactory�	newpolicyrrr�"test_new_factory_overrides_default�s
z1PolicyAPITests.test_new_factory_overrides_defaultcCs:tjjtjj}|�|jtjjj�|�|jddi�dS)NrT)r$rrDr[rrr%�__dict__)rrxrrr�6test_adding_default_policies_preserves_default_factory�szEPolicyAPITests.test_adding_default_policies_preserves_default_factorycCs,tjjjdd�}|�dd�}|�|d�dS)N�)rrIuąąąąąąąąąąąą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$rrDr=r*r)rr�actualrrr�*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�}|�tjj��|�d|�WdQRXWdQRXq
WdS)Nz;Melt away the pounds with this one simple trick! 1234567890)���	)�maxlen)rrI)	rr$rrDr=r.�errorsZHeaderParseErrorr*)rZsubjectr�rrrr�test_short_maxlen_errors
z&PolicyAPITests.test_short_maxlen_error)1rOrPrQZlongMessageZcompat32_defaultsrrCrr$rr%rrrJrKZ
new_policyZcompat32rrDZSMTPZSMTPUTF8ZHTTPr[rrr)r5r:r?r@rGrLrXrY�	ExceptionrZr]rarhrirjrprrrvrwryr{r~r�rrrrr	sn




	
		r	c@seZdZdS)�
TestExceptionN)rOrPrQrrrrr�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)Nrk)r�)rrcrdrrr�	badmethod'sz(TestPolicyPropagation.MyPolicy.badmethodN)	rOrPrQr�r*r+Zheader_fetch_parserr,r-rrrrrh&srhc	Cs,|�td��tjd|jd�WdQRXdS)Nz^test$zSubject: test

)r)r6r�r$�message_from_stringrh)rrrr�test_message_from_string,sz.TestPolicyPropagation.test_message_from_stringc	Cs,|�td��tjd|jd�WdQRXdS)Nz^test$sSubject: test

)r)r6r�r$Zmessage_from_bytesrh)rrrr�test_message_from_bytes1sz-TestPolicyPropagation.test_message_from_bytesc	Cs6t�d�}|�td��tj||jd�WdQRXdS)NzSubject: test

z^test$)r)�io�StringIOr6r�r$Zmessage_from_filerh)r�frrr�test_message_from_file6s
z,TestPolicyPropagation.test_message_from_filec	Cs6t�d�}|�td��tj||jd�WdQRXdS)NsSubject: test

z^test$)r)r��BytesIOr6r�r$Zmessage_from_binary_filerh)rr�rrr�test_message_from_binary_file;s
z3TestPolicyPropagation.test_message_from_binary_filec	Cs6tjj|jd�}|�td��|�d�WdQRXdS)N)rz^test$zSubject: test

)r$�parserZParserrhr6r�Zparsestr)r�prrr�test_parserBsz!TestPolicyPropagation.test_parserc	Cs6tjj|jd�}|�td��|�d�WdQRXdS)N)rz^test$sSubject: test

)r$r�ZBytesParserrhr6r�Z
parsebytes)rr�rrr�test_bytes_parserGsz'TestPolicyPropagation.test_bytes_parser�Subject: test

NcCs*|dkrtjj��n||_tj||jd�S)N)r)r$rrDr=r�)r�sourcerrrr�	_make_msgPszTestPolicyPropagation._make_msgcCs|��}|�|j|j�dS)N)r��assertIsr)rr3rrr�(test_parser_propagates_policy_to_messageTsz>TestPolicyPropagation.test_parser_propagates_policy_to_messagecCs6|�t�d��}x |��D]}|�|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)rr3�partrrr�-test_parser_propagates_policy_to_sub_messagesXszCTestPolicyPropagation.test_parser_propagates_policy_to_sub_messagescCsL|jdtjjjdd�d�}t��}tj�|�}|�	|�|�
|��d�dS)NzSubject: test
To: foo

�X)r
)rzSubject: testXTo: fooXX)r�r$rrDr=r�r��	generator�	GeneratorZflattenr�getvalue)rr3�s�grrr�+test_message_policy_propagates_to_generatorks
zATestPolicyPropagation.test_message_policy_propagates_to_generatorcCs.|jdtjjjdd�d�}|�|��d�dS)NzSubject: test
To: foo

r�)r
)rzSubject: testXTo: fooXX)r�r$rrDr=rZ	as_string)rr3rrr�%test_message_policy_used_by_as_stringssz;TestPolicyPropagation.test_message_policy_used_by_as_string)r�N)rOrPrQr$rr0rhr�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%r.�
ValueErrorr-)r�instancerrr�(test_header_store_parse_rejects_newlines{s
z=TestConcretePolicies.test_header_store_parse_rejects_newlinesN)rOrPrQr�rrrrr�ysr��__main__)r��sysr&r�ZunittestZemail.errorsr$Zemail.policyZemail.parserZemail.generatorZ
email.messagerrZTestCaser	r�r�r�r�rO�mainrrrr�<module>s&X