Your IP : 216.73.216.196


Current Path : /opt/alt/python310/lib64/python3.10/test/__pycache__/
Upload File :
Current File : //opt/alt/python310/lib64/python3.10/test/__pycache__/test_pyexpat.cpython-310.opt-2.pyc

o

0�i=��@s�ddlmZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlm
Z
ddlmZddlmZddlmZGdd�de
j�Zd	ZGd
d�de
j�ZGdd
�d
e
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�ZGdd�de
j�Z Gd d!�d!e
j�Z!Gd"d#�d#e
j�Z"Gd$d%�d%ej#�Z$e
�%e
j&d&kd'�Gd(d)�d)e$e
j��Z'e(d*kr�e
�)�dSdS)+�)�BytesION)�expat)�errors)�
import_helper)�sortdictc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�SetAttributeTestcCstjdd�|_dS�N�!�Znamespace_separator)r�ParserCreate�parser��self�r�8/opt/alt/python310/lib64/python3.10/test/test_pyexpat.py�setUp�zSetAttributeTest.setUpcC�:|�|jjd�dD]}||j_|�|jjt|��q
dS�NF)r��r)�assertIsr�buffer_text�bool�r�xrrr�test_buffer_text�
�z!SetAttributeTest.test_buffer_textcCrr)rrZnamespace_prefixesrrrrr�test_namespace_prefixes!rz(SetAttributeTest.test_namespace_prefixescCrr)rrZordered_attributesrrrrr�test_ordered_attributes'rz(SetAttributeTest.test_ordered_attributescCrr)rrZspecified_attributesrrrrr�test_specified_attributes-rz*SetAttributeTest.test_specified_attributescCs�|�t��d|j_Wd�n1swY|�t��|jjWd�n1s-wY|�tt|jtd�d�|�t|jjtd�d�|�tt|jtd��dS)Nr�r)	�assertRaises�AttributeErrorrZreturns_unicode�	TypeError�setattr�range�__setattr__�getattrr
rrr�test_invalid_attributes3s
�
�z(SetAttributeTest.test_invalid_attributesN)	�__name__�
__module__�__qualname__rrrrr r)rrrrrsrs�<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>
<?xml-stylesheet href="stylesheet.css"?>
<!-- comment data -->
<!DOCTYPE quotations SYSTEM "quotations.dtd" [
<!ELEMENT root ANY>
<!ATTLIST root attr1 CDATA #REQUIRED attr2 CDATA #IMPLIED>
<!NOTATION notation SYSTEM "notation.jpeg">
<!ENTITY acirc "&#226;">
<!ENTITY external_entity SYSTEM "entity.file">
<!ENTITY unparsed_entity SYSTEM "entity.file" NDATA notation>
%unparsed_entity;
]>

<root attr1="value1" attr2="value2&#8000;">
<myns:subelement xmlns:myns="http://www.python.org/namespace">
     Contents of subelements
</myns:subelement>
<sub2><![CDATA[contents of CDATA section]]></sub2>
&external_entity;
&skipped_entity;
�
</root>
c@sReZdZGdd�d�Zgd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�	ParseTestc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zd-d.�Zd/S)0zParseTest.OutputtercCs
g|_dS�N)�outr
rrr�__init__\�
zParseTest.Outputter.__init__cCs$|j�dt|�dt|��dS)NzStart element: � )r/�append�reprr�r�name�attrsrrr�StartElementHandler_s
�z'ParseTest.Outputter.StartElementHandlercC�|j�dt|��dS)Nz
End element: �r/r3r4�rr6rrr�EndElementHandlerc�z%ParseTest.Outputter.EndElementHandlercCs(|��}|r|j�dt|��dSdS)NzCharacter data: )�stripr/r3r4�r�datarrr�CharacterDataHandlerfs�z(ParseTest.Outputter.CharacterDataHandlercC�$|j�dt|�dt|��dS)NzPI: r2r:)r�targetr@rrr�ProcessingInstructionHandlerk�$z0ParseTest.Outputter.ProcessingInstructionHandlercCrB)Nz	NS decl: r2r:)r�prefixZurirrr�StartNamespaceDeclHandlernrEz-ParseTest.Outputter.StartNamespaceDeclHandlercCr9)NzEnd of NS decl: r:)rrFrrr�EndNamespaceDeclHandlerqr=z+ParseTest.Outputter.EndNamespaceDeclHandlercC�|j�d�dS)N�Start of CDATA section�r/r3r
rrr�StartCdataSectionHandlert�z,ParseTest.Outputter.StartCdataSectionHandlercCrI)N�End of CDATA sectionrKr
rrr�EndCdataSectionHandlerwrMz*ParseTest.Outputter.EndCdataSectionHandlercCr9)Nz	Comment: r:�r�textrrr�CommentHandlerzr=z"ParseTest.Outputter.CommentHandlercGs"|\}}}}|j�d|f�dS)NzNotation declared: %srK)r�argsr6�baseZsysidZpubidrrr�NotationDeclHandler}sz'ParseTest.Outputter.NotationDeclHandlercGs$|\}}}}}|j�d|f�dS)NzUnparsed entity decl: %srK)rrSZ
entityNamerTZsystemIdZpublicIdZnotationNamerrr�UnparsedEntityDeclHandler�sz-ParseTest.Outputter.UnparsedEntityDeclHandlercC�|j�d�dS)N�Not standalonerrKr
rrr�NotStandaloneHandler��z(ParseTest.Outputter.NotStandaloneHandlercGs*|\}}}}|j�d|dd�f�dS)NzExternal entity ref: %srrK)rrS�contextrT�sysId�pubIdrrr�ExternalEntityRefHandler�sz,ParseTest.Outputter.ExternalEntityRefHandlercG�|j�d|f�dS)N�
Start doctyperrK�rrSrrr�StartDoctypeDeclHandler��z+ParseTest.Outputter.StartDoctypeDeclHandlercCrW)N�End doctyperrKr
rrr�EndDoctypeDeclHandler�rZz)ParseTest.Outputter.EndDoctypeDeclHandlercGr_)N�Entity declarationrrKrarrr�EntityDeclHandler�rcz%ParseTest.Outputter.EntityDeclHandlercGr_)N�XML declarationrrKrarrr�XmlDeclHandler�rcz"ParseTest.Outputter.XmlDeclHandlercGr_)N�Element declarationrrKrarrr�ElementDeclHandler�rcz&ParseTest.Outputter.ElementDeclHandlercGr_)N�Attribute list declarationrrKrarrr�AttlistDeclHandler�rcz&ParseTest.Outputter.AttlistDeclHandlercGr_)N�Skipped entityrrKrarrr�SkippedEntityHandler�rcz(ParseTest.Outputter.SkippedEntityHandlercC�dSr.r�rZuserDatarrr�DefaultHandler��z"ParseTest.Outputter.DefaultHandlercCrpr.rrqrrr�DefaultHandlerExpand�rsz(ParseTest.Outputter.DefaultHandlerExpandN)r*r+r,r0r8r<rArDrGrHrLrOrRrUrVrYr^rbrergrirkrmrorrrtrrrr�	Outputter[s0ru)r8r<rArDrVrUrGrHrRrLrOrrrtrYr^rbrergrirkrmrocCs$	|jD]}t||t||��qdSr.)�
handler_namesr%r()rr�handlerr6rrr�_hookup_callbacks�s
�zParseTest._hookup_callbackscCs,gd�}t||�D]
\}}|�||�q	dS)N))rh)z1.0�
iso-8859-1rz,PI: 'xml-stylesheet' 'href="stylesheet.css"'zComment: ' comment data 'rX)r`)Z
quotationszquotations.dtdNr)rj)�root)rrNr)rl)rzZattr1�CDATANr)rl)rzZattr2r{Nrz<Notation declared: ('notation', None, 'notation.jpeg', None))rf)Zacircr�âNNNN)rf)Zexternal_entityrNNzentity.fileNNzPUnparsed entity decl: ('unparsed_entity', None, 'entity.file', None, 'notation')rXrdu?Start element: 'root' {'attr1': 'value1', 'attr2': 'value2ὀ'}z1NS decl: 'myns' 'http://www.python.org/namespace'z>Start element: 'http://www.python.org/namespace!subelement' {}z)Character data: 'Contents of subelements'z9End element: 'http://www.python.org/namespace!subelement'zEnd of NS decl: 'myns'zStart element: 'sub2' {}rJz+Character data: 'contents of CDATA section'rNzEnd element: 'sub2'z0External entity ref: (None, 'entity.file', None))rn)Zskipped_entityruCharacter data: 'µ'zEnd element: 'root')�zip�assertEqual)r�
operationsZexpected_operationsZ	operationZexpected_operationrrr�_verify_parse_output�s"�zParseTest._verify_parse_outputcCsP|��}tjdd�}|�||�|�td�|j}|�|�|�t	t
|d�dS)Nr	r
Tu�)rurrrx�Parser@r/r�r"r#r(�rr/rrrrr�test_parse_bytes�s
zParseTest.test_parse_bytescCsF|��}tjdd�}|�||�|�t�d�d�|j}|�|�dS)Nr	r
ryT)	rurrrxr�r@�decoder/r�r�rrr�test_parse_str�szParseTest.test_parse_strcCsF|��}tjdd�}|�||�tt�}|�|�|j}|�|�dSr)	rurrrxrr@�	ParseFiler/r�)rr/r�filerrrr�test_parse_files
zParseTest.test_parse_filecCsnt��}tt�}|�|�|�tj��
}|�|�Wd�n1s#wY|�t�|j	j
�tjj�dSr.)
rrrr@r�r"�errorr~ZErrorStringZ	exception�coderZXML_ERROR_FINISHED)rrr��cmrrr�test_parse_agains
��zParseTest.test_parse_againN)r*r+r,rurvrxr�r�r�r�r�rrrrr-ZsU&
r-c@�$eZdZdd�Zdd�Zdd�ZdS)�NamespaceSeparatorTestcCs$t��tjdd�tjdd�dS)Nr
r2�rrr
rrr�
test_legalsz!NamespaceSeparatorTest.test_legalc
Cs�ztjdd�|��Wnty&}z|�t|�d�WYd}~nd}~wwz
tjdd�|��WdStyO}z|�t|�d�WYd}~dSd}~ww)N�*r
zJParserCreate() argument 'namespace_separator' must be str or None, not intztoo longzCnamespace_separator must be at most one character, omitted, or None)rr�failr$r~�str�
ValueError)r�errr�test_illegal s$
���
���z#NamespaceSeparatorTest.test_illegalcCstjdd�dS)N�r
r�r
rrr�test_zero_length/s	z'NamespaceSeparatorTest.test_zero_lengthN)r*r+r,r�r�r�rrrrr�sr�c@�eZdZdd�Zdd�ZdS)�
InterningTestcsdt��}g��fdd�}||_||_|�dd��d}|�t��d��D]	}|�||u�q&dS)Nc���|�dSr.�r3)r6rS��Lrr�	collector@�z%InterningTest.test.<locals>.collectors<e> <e/> <e></e> </e>Tr�)rrr8r<r�r~�len�
assertTrue)r�pr��tag�entryrr�r�test<s�zInterningTest.testcCsNGdd�d�}tjdd�}d|_||�}|j|_|�td�|�|jd�dS)Nc@r�)z7InterningTest.test_issue9402.<locals>.ExternalOutputtercSs||_d|_dSr.)r�
parser_result�rrrrrr0Ns
z@InterningTest.test_issue9402.<locals>.ExternalOutputter.__init__cSs|j�d�}|�dd�|_dS)Nr��Tr)r�ExternalEntityParserCreater�r�)rr[rTr\r]Zexternal_parserrrrr^RszPInterningTest.test_issue9402.<locals>.ExternalOutputter.ExternalEntityRefHandlerN)r*r+r,r0r^rrrr�ExternalOutputterMsr�r	r
rT)rrrr^r�r@r~r�)rr�rr/rrr�test_issue9402Ks
zInterningTest.test_issue9402N)r*r+r,r�r�rrrrr�;sr�c@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zgfd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�Zdd�Zdd�Zdd�Zdd �Zd!S)"�BufferTextTestcCs&g|_t��|_d|j_|j|j_dS�Nr)�stuffrrrrrAr
rrrr`s
zBufferTextTest.setUpc
Cs&|�|j|d||jtt|�f�dS)Nz%s
stuff    = %r
expected = %r)r~r��mapr�)r�expectedZlabelrrr�checkfs

��zBufferTextTest.checkcCs|j�|�dSr.�r�r3rPrrrrAkrMz#BufferTextTest.CharacterDataHandlercCsF|j�d|�|�d�}|dkrd|j_dS|dkr!d|j_dSdS)Nz<%s>zbuffer-textZyesrZnor)r�r3�getrr)rr6r7Zbtrrrr8ns
�z"BufferTextTest.StartElementHandlercC�|j�d|�dS)Nz</%s>r�r;rrrr<v�z BufferTextTest.EndElementHandlercCr�)Nz	<!--%s-->r�r?rrrrRyr�zBufferTextTest.CommentHandlercCs"|D]}t|j|t||��qdSr.)r%rr()r�handlersr6rrr�setHandlers|s�zBufferTextTest.setHandlerscCst��}|�|j�dSr.)rr�assertFalserr�rrr�test_default_to_disabled�sz'BufferTextTest.test_default_to_disabledcCs2|�|jj�|j�dd�|�|jdgd�dS)N�<a>1<b/>2<c/>3</a>TZ123�$buffered text not properly collapsed)r�rrr�r~r�r
rrr�test_buffering_enabled�s
�z%BufferTextTest.test_buffering_enabledcC�2|�dg�|j�dd�|�|jgd�d�dS)Nr8s9<a>1<b buffer-text='no'/>2
3<c buffer-text='yes'/>4
5</a>T)�<a>�1�<b>�2�
�3�<c>z4
5z*buffering control not reacting as expected�r�rr�r~r�r
rrr�test1�s�zBufferTextTest.test1cCs$|j�dd�|�|jdgd�dS)Ns&<a>1<b/>&lt;2&gt;<c/>&#32;
&#x20;3</a>Tz1<2> 
 3r�)rr�r~r�r
rrr�test2�s�zBufferTextTest.test2cCr�)Nr8r�T)r�r�r�r�r�r�� buffered text not properly splitr�r
rrr�test3�s
�zBufferTextTest.test3cCs:|�ddg�d|j_|j�dd�|�|jgd��dS)Nr8r<r�T)r�r��</b>r��</c>�</a>)r�rrAr�r~r�r
rrr�test4�s�zBufferTextTest.test4cCs2|�ddg�|j�dd�|�|jgd��dS)Nr8r<s<a>1<b></b>2<c/>3</a>T)	r�r�r�r�r�r�r�r�r�r�r
rrr�test5�s
�zBufferTextTest.test5cC�4|�gd��|j�dd�|�|jgd�d�dS)N�rRr<r8s<a>1<b/>2<c></c>345</a> T)	r�r�r�r�r�r�r�Z345r�r�r�r
rrr�test6�s�zBufferTextTest.test6cCr�)Nr�s,<a>1<b/>2<c></c>3<!--abc-->4<!--def-->5</a> T)
r�r�r�r�r�r�r�r�z
<!--abc-->�4z
<!--def-->�5r�r�r�r
rrr�test7�s�zBufferTextTest.test7N)r*r+r,rr�rAr8r<rRr�r�r�r�r�r�r�r�r�r�rrrrr�_s"	r�c@r�)�HandlerExceptionTestcCst|��r.)�RuntimeErrorr5rrrr8�sz(HandlerExceptionTest.StartElementHandlercCs,|�tj�|d�|�|�|d|�dS)Nrr)r~�os�path�basename)rr��filename�funcnamerrr�check_traceback_entry�sz*HandlerExceptionTest.check_traceback_entrycCst��}|j|_z
|�dd�|��WdSty�}zh|�|jdddd|jd�t�	|j
�}|�t|�d�|�|ddd	�|�|d
dd�|�|d
dd�t
��rwtjdkrft��dks~|�d|d
d�WYd}~dSWYd}~dSWYd}~dSd}~ww)Ns<a><b><c/></b></a>Tr�az*Expected RuntimeError for element 'a', butz	 found %r�ztest_pyexpat.py�test_exceptionrz	pyexpat.cZStartElementrr8Zwin32ZARMzcall_with_frame("StartElement")rrr8r�r�r�r~rS�	traceback�
extract_tb�
__traceback__r�r��	sysconfigZis_python_build�sys�platform�machineZassertIn)rrr��entriesrrrr��s6��
�
�
�"���z#HandlerExceptionTest.test_exceptionN)r*r+r,r8r�r�rrrrr��sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�PositionTestcC�|�d�dS)N�s��	check_posr5rrrr8�r�z PositionTest.StartElementHandlercCr�)Nr�r�r;rrrr<�r�zPositionTest.EndElementHandlercCsd||jj|jj|jjf}|�|jt|j�kd�|j|j}|�||d||f�|jd7_dS)Nztoo many parser eventsz%Expected position %s, got position %sr)	rZCurrentByteIndexZCurrentLineNumberZCurrentColumnNumberr��uptor��
expected_listr~)rZevent�posr�rrrr��s��
�zPositionTest.check_poscCsDt��|_|j|j_|j|j_d|_gd�|_d}|j�|d�dS)Nr))r�rrr)r��rr)r��r�r)r�r!r�r�)r���r)r��r�rs<a>
 <b>
  <c/>
 </b>
</a>T)rrrr8r<r�r�r�)r�xmlrrrr��s



zPositionTest.testN)r*r+r,r8r<r�r�rrrrr��s
r�c@seZdZdd�ZdS)�
sf1296433TestcsLdd}Gdd�dt���fdd�}t��}||_|�t|j|�d��dS)Nz1<?xml version='1.0' encoding='iso8859'?><s>%s</s>Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac@seZdZdS)zAsf1296433Test.test_parse_only_xml_data.<locals>.SpecificExceptionN)r*r+r,rrrr�SpecificExceptionsr�cs��r.r�rQ�r�rrrw	rsz7sf1296433Test.test_parse_only_xml_data.<locals>.handler�iso8859)�	ExceptionrrrAr"r��encode)rr�rwrrr�r�test_parse_only_xml_data�sz&sf1296433Test.test_parse_only_xml_dataN)r*r+r,r�rrrrr��sr�c@sVeZdZ	dd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�ZdS)�ChardataBufferTestcC�|�|�d�d�dS)Nir�r~�small_buffer_testr
rrr�test_1025_bytes�z"ChardataBufferTest.test_1025_bytescCr)Ni�rrr
rrr�test_1000_bytesrz"ChardataBufferTest.test_1000_bytescCs�t��}d|_|�t��d|_Wd�n1swY|�t��d|_Wd�n1s2wY|�ttf��tjd|_Wd�n1sOwY|�t	��d|_Wd�dS1shwYdS)Nr���rg�@)
rrrr"r��buffer_size�
OverflowErrorr��maxsizer$r�rrr�test_wrong_sizes���"�z"ChardataBufferTest.test_wrong_sizecCstd}d}t��}|j|_d|_d|_d|_|�|�|�|jd�|j|_|�|jd�|�|�|�|jd�dS)Ns+<?xml version='1.0' encoding='iso8859'?><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s>irrr)	rr�counting_handlerrArr�nr�r~�r�xml1�xml2rrrr�test_unchanged_size(s

z&ChardataBufferTest.test_unchanged_sizecCs�d}d}d}t��}|j|_d|_d|_|�|jd�d|_|�|d�|�|jd�|�|jd�d|_|�	|j�|�|jd�t
d�D]}|�|d�qF|�|jd	�d|_|�|j�|�|jd�|�|d
�|�|jd�dS)Ns+<?xml version='1.0' encoding='iso8859'?><a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc</a>r�rF�
r�T�)rrrrArrr~r
r�r�r&r�)rrrZxml3r�irrr�test_disabling_buffer?s.z(ChardataBufferTest.test_disabling_buffercCs|jd7_dSr�)r
rPrrrr]rz#ChardataBufferTest.counting_handlercCsBdd|d}t��}|j|_d|_d|_d|_|�|�|jS)Ns+<?xml version='1.0' encoding='iso8859'?><s>�as</s>rrr)rrrrArrr
r�)rZ
buffer_lenr�rrrrr`s
z$ChardataBufferTest.small_buffer_testcCs~d}d}t��}|j|_d|_d|_|�|jd�d|_|�|d�|jd9_|�|jd�|�|d	�|�|jd�dS)
Ns.<?xml version='1.0' encoding='iso8859'?><a><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�aaa</s><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s></a>rrrFr�T�	rrrrArrr~r
r�rrrr�test_change_size_1ksz%ChardataBufferTest.test_change_size_1cCs|d}d}t��}|j|_d|_d|_|�|jd�d|_|�|d�|jd|_|�|jd�|�|d	�|�|jd
�dS)Ns.<?xml version='1.0' encoding='iso8859'?><a>a<s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrFrrTr�rrrrr�test_change_size_2{sz%ChardataBufferTest.test_change_size_2N)r*r+r,rrrrrrrrrrrrrrsrc@r�)�MalformedInputTestc
Cs`d}t��}z
|�|d�|��WdStjy/}z|�t|�d�WYd}~dSd}~ww)Ns
Tz unclosed token: line 2, column 0)rrr�r��
ExpatErrorr~r��rr�rr�rrrr��s��zMalformedInputTest.test1cCsPd}t��}d}|�tj|��|�|d�Wd�dS1s!wYdS)Ns<?xml version…='1.0'?>
z3XML declaration not well-formed: line 1, column \d+T)rr�assertRaisesRegexrr�)rr�rZerr_patternrrrr��s"�zMalformedInputTest.test2N)r*r+r,r�r�rrrrr�s	rc@r�)�ErrorMessageTestcCs |�tjtjtjtj�dSr.)r~rZXML_ERROR_SYNTAXZmessages�codesr
rrr�
test_codes�s�zErrorMessageTest.test_codesc
Csfd}t��}z
|�|d�|��WdStjy2}z|�|jtjtj	�WYd}~dSd}~ww)N�<T)
rrr�r�rr~r�rr"ZXML_ERROR_UNCLOSED_TOKENrrrr�test_expaterror�s
���z ErrorMessageTest.test_expaterrorN)r*r+r,r#r%rrrrr!�sr!c@seZdZ	dd�Zdd�ZdS)�ForeignDTDTestscs�	g��fdd�}t��}|�d�|�tj�||_|�d�|��dg�g�dd�<t��}|��|�tj�||_|�d�|��dg�dS)Nc���||f�dSr�r��r[rTZ	system_idZ	public_id�Zhandler_call_argsrr�resolve_entity��z<ForeignDTDTests.test_use_foreign_dtd.<locals>.resolve_entityTs<?xml version='1.0'?><element/>)NN�rrZ
UseForeignDTDZSetParamEntityParsingZXML_PARAM_ENTITY_PARSING_ALWAYSr^r�r~�rr*rrr)r�test_use_foreign_dtd�s 


z$ForeignDTDTests.test_use_foreign_dtdcsR	g��fdd�}t��}|�d�|�tj�||_|�d�|��dg�dS)Ncr'r�r�r(r)rrr*�r+zCForeignDTDTests.test_ignore_use_foreign_dtd.<locals>.resolve_entityTs@<?xml version='1.0'?><!DOCTYPE foo PUBLIC 'bar' 'baz'><element/>)ZbarZbazr,r-rr)r�test_ignore_use_foreign_dtd�s
�z+ForeignDTDTests.test_ignore_use_foreign_dtdN)r*r+r,r.r/rrrrr&�sr&c@s&eZdZ	dd�Zdd�Zdd�ZdS)�ParentParserLifetimeTestcCst��}|�d�}~dSr.�rrr�)rr�	subparserrrr�2test_parent_parser_outlives_its_subparsers__single�s
zKParentParserLifetimeTest.test_parent_parser_outlives_its_subparsers__singlecCs"t��}|�d�}|�d�}~dSr.r1)rrZ
subparser_oneZ
subparser_tworrr�4test_parent_parser_outlives_its_subparsers__multiple�s

zMParentParserLifetimeTest.test_parent_parser_outlives_its_subparsers__multiplecCs$t��}|�d�}|�d�}~~dSr.r1)rrr2Zsubsubparserrrr�1test_parent_parser_outlives_its_subparsers__chain�s


zJParentParserLifetimeTest.test_parent_parser_outlives_its_subparsers__chainN)r*r+r,r3r4r5rrrrr0�s
	r0c@r�)�ReparseDeferralTestcCsZt��}tjdk}|�|��|�|�d�|�|��d�|�d�|�|��|�dS)N�rr�rFT)rr�version_infor�GetReparseDeferralEnabled�SetReparseDeferralEnabled)rrZenabledrrr�test_getter_setter_round_trips


z1ReparseDeferralTest.test_getter_setter_round_tripcs�tjdkr|�dtj�d��g��fdd�}t��}||_|�|���dD]}|�|d�q'|��g�|�dd	�|��d
g�dS)Nr7zExpat z" does not support reparse deferralcr�r.r��r6�_�Zstartedrr�
start_elementr�zHReparseDeferralTest.test_reparse_deferral_enabled.<locals>.start_element�s<docs/>Fr�T�doc)	rr8ZskipTestrr8r�r9r�r~�rr?r�chunkrr>r�test_reparse_deferral_enableds
z1ReparseDeferralTest.test_reparse_deferral_enabledcshg��fdd�}t��}||_tjdkr|�d�|�|���dD]}|�|d�q"|��dg�dS)Ncr�r.r�r<r>rrr?,r�zIReparseDeferralTest.test_reparse_deferral_disabled.<locals>.start_elementr7Fr@rA)	rrr8r8r:r�r9r�r~rBrr>r�test_reparse_deferral_disabled)s

z2ReparseDeferralTest.test_reparse_deferral_disabledN)r*r+r,r;rDrErrrrr6s
r6c@s�eZdZ	edd�dd��Zdd�Zdd�Zejd	d
��Z	ejdd��Z
ejd
d��Zejdd��Zejdd��Z
dd�Zdd�Zdd�Zejdd��Zejdd��Zdd�Zdd �Zd!d"�Zd#d$�Zd%S)&�AttackProtectionTestBase�.r�csR	t�d|�d|�d����}d��fdd�t|�D��}t�|d�}|j|d�S)	Nz]            <?xml version="1.0"?>
            <!DOCTYPE doc [
                <!ENTITY row0 "zc">
                <!ELEMENT doc (#PCDATA)>
            {body}
            ]>
            <doc>&rowz;</doc>
        r�c3s2�|]}d|d�dd|�d���d�VqdS)z<!ENTITY rowrz "z&row�;z">Nr)�.0r��ncolsrr�	<genexpr>Vs
� �
�zIAttackProtectionTestBase.exponential_expansion_payload.<locals>.<genexpr>z    )�body)�textwrap�dedent�rstrip�joinr&�indent�format)�nrowsrKrQ�templaterMrrJr�exponential_expansion_payloadEs���
�z6AttackProtectionTestBase.exponential_expansion_payloadcCs(|jddd�}|�|t�d����dS)Nrr�)rTrKa'            <?xml version="1.0"?>
            <!DOCTYPE doc [
                <!ENTITY row0 ".">
                <!ELEMENT doc (#PCDATA)>
                <!ENTITY row1 "&row0;&row0;&row0;">
                <!ENTITY row2 "&row1;&row1;&row1;">
            ]>
            <doc>&row2;</doc>
        )rVr~rNrOrP)r�payloadrrr�test_payload_generation]s	�z0AttackProtectionTestBase.test_payload_generationcO�(	d}|jtj||g|�Ri|��dS)Nzparser must be a root parser�r rr�r�funcrS�kwargs�msgrrr�assert_root_parser_failurek�"z3AttackProtectionTestBase.assert_root_parser_failurecOrpr.r)rr\rSr]rrr�assert_rejectedp�z(AttackProtectionTestBase.assert_rejectedcCrpr.r�rrZ	thresholdrrr�set_activation_thresholdyrbz1AttackProtectionTestBase.set_activation_thresholdcCrpr.r�rrZ
max_factorrrr�set_maximum_amplification}rbz2AttackProtectionTestBase.set_maximum_amplificationcCrpr.rr
rrr�0test_set_activation_threshold__threshold_reached�rbzIAttackProtectionTestBase.test_set_activation_threshold__threshold_reachedcCrpr.rr
rrr�4test_set_activation_threshold__threshold_not_reached�rbzMAttackProtectionTestBase.test_set_activation_threshold__threshold_not_reachedcCsDt��}t�|j|�}|�t|d�|�t|d�|�t|d�dS)N��?g�����)rr�	functools�partialrdr"r$r��rr�setterrrr�5test_set_activation_threshold__invalid_threshold_type�s
zNAttackProtectionTestBase.test_set_activation_threshold__invalid_threshold_typecCs8t�d�}t��}t�|j|�}|�t||j	d�dS)N�	_testcapir)
r�
import_modulerrrkrlrdr"r	Z
ULLONG_MAX)rrprrnrrr�6test_set_activation_threshold__invalid_threshold_range�s
zOAttackProtectionTestBase.test_set_activation_threshold__invalid_threshold_rangecC�0t��}|�d�}t�|j|�}|�|d�dS)Ni90)rrr�rkrlrdr_�rrr2rnrrr�1test_set_activation_threshold__fail_for_subparser��
zJAttackProtectionTestBase.test_set_activation_threshold__fail_for_subparsercCrpr.rr
rrr�6test_set_maximum_amplification__amplification_exceeded�rbzOAttackProtectionTestBase.test_set_maximum_amplification__amplification_exceededcCrpr.rr
rrr�:test_set_maximum_amplification__amplification_not_exceeded�rbzSAttackProtectionTestBase.test_set_maximum_amplification__amplification_not_exceededcCs&td�}t��}|�|�||��dS)N�inf)�floatrr�assertIsNonerf)rryrrrr�(test_set_maximum_amplification__infinity�szAAttackProtectionTestBase.test_set_maximum_amplification__infinitycCs6t��}t�|j|�}|�t|d�|�t|d�dS)N�abc)rrrkrlrfr"r$rmrrr�7test_set_maximum_amplification__invalid_max_factor_type�szPAttackProtectionTestBase.test_set_maximum_amplification__invalid_max_factor_typecCsLt��}t�|j|�}t�d�}|�tj||t	d��|�tj||d�dS)Nz!'max_factor' must be at least 1.0�nang�G�z��?)
rrrkrlrf�re�escaper rrz)rrrnr^rrr�8test_set_maximum_amplification__invalid_max_factor_range�s

zQAttackProtectionTestBase.test_set_maximum_amplification__invalid_max_factor_rangecCrs)Ng������^@)rrr�rkrlrfr_rtrrr�2test_set_maximum_amplification__fail_for_subparser�rvzKAttackProtectionTestBase.test_set_maximum_amplification__fail_for_subparserN)r*r+r,�staticmethodrVrXr_r}�abstractmethodrardrfrgrhrorrrurwrxr|r~r�r�rrrrrF<s6






rF)r�rzrequires Expat >= 2.7.2c@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�MemoryProtectionTestcOrY)Nz#out of memory: line \d+, column \d+rZr[rrrra�r`z$MemoryProtectionTest.assert_rejectedcC�
|�|�Sr.)Z"SetAllocTrackerActivationThresholdrcrrrrd�r1z-MemoryProtectionTest.set_activation_thresholdcCr�r.)Z#SetAllocTrackerMaximumAmplificationrerrrrf�r1z.MemoryProtectionTest.set_maximum_amplificationcC�Ht��}|�|d�|�|�|d��|jddd�}|�|j|d�dS)Nr�rirr��rKrTT�rrrdr{rfrVrar��rrrWrrrrg�s
zEMemoryProtectionTest.test_set_activation_threshold__threshold_reachedcCsPt��}|�|tdd��|�|�|d��|jddd�}|�|�|d��dS)Nrr�rir�r�T)	rrrd�powr{rfrV�assertIsNotNoner�r�rrrrh�s
zIMemoryProtectionTest.test_set_activation_threshold__threshold_not_reachedcCr�)Nrrirrr�Tr�r�rrrrw�s
zKMemoryProtectionTest.test_set_maximum_amplification__amplification_exceededcCsJt��}|�|d�|�|�|d��|jddd�}|�|�|d��dS)Nrg��@rrr�T)rrrdr{rfrVr�r�r�rrrrx�s
zOMemoryProtectionTest.test_set_maximum_amplification__amplification_not_exceededN)
r*r+r,rardrfrgrhrwrxrrrrr��s	


r��__main__)*�iorr}rkr�r�r�r�r�rNZunittestr�Zxml.parsersrZxml.parsers.expatrZtest.supportrrZTestCaserr@r-r�r�r�r�r�r�rrr!r&r0r6�ABCrFZskipIfr8r�r*�mainrrrr�<module>sL(?#$` z4$6<�