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/__pycache__/test_pyexpat.cpython-37.pyc
B

��gj�@sJddlmZddlZddlZddlZddlZddlZddlmZddl	m
Z
ddlmZGdd�dej
�ZdZGd	d
�d
ej
�ZGdd�dej
�ZGd
d�dej
�ZGdd�dej
�ZGdd�dej
�ZGdd�dej
�ZGdd�dej
�ZGdd�dej
�ZGdd�dej
�ZGdd�dej
�ZGdd�dej
�Zedk�rFe��dS) �)�BytesION)�expat)�errors)�sortdictc@s<eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
S)�SetAttributeTestcCstjdd�|_dS)N�!)�namespace_separator)r�ParserCreate�parser)�self�r�-/usr/local/lib/python3.7/test/test_pyexpat.py�setUpszSetAttributeTest.setUpcCs>|�|jjd�x(dD] }||j_|�|jjt|��qWdS)NF)r��r)�assertIsr
�buffer_text�bool)r�xrrr
�test_buffer_texts
z!SetAttributeTest.test_buffer_textcCs>|�|jjd�x(dD] }||j_|�|jjt|��qWdS)NF)rrrr)rr
Znamespace_prefixesr)rrrrr
�test_namespace_prefixess
z(SetAttributeTest.test_namespace_prefixescCs>|�|jjd�x(dD] }||j_|�|jjt|��qWdS)NF)rrrr)rr
Zordered_attributesr)rrrrr
�test_ordered_attributes!s
z(SetAttributeTest.test_ordered_attributescCs>|�|jjd�x(dD] }||j_|�|jjt|��qWdS)NF)rrrr)rr
Zspecified_attributesr)rrrrr
�test_specified_attributes's
z*SetAttributeTest.test_specified_attributesc	Cs�|�t��d|j_WdQRX|�t��|jjWdQRX|�tt|jtd�d�|�t|jjtd�d�|�tt|jtd��dS)Nr�r)	�assertRaises�AttributeErrorr
Zreturns_unicode�	TypeError�setattr�range�__setattr__�getattr)rrrr
�test_invalid_attributes-sz(SetAttributeTest.test_invalid_attributesN)	�__name__�
__module__�__qualname__rrrrrr!rrrr
rs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@szeZdZGdd�d�Zddddddd	d
ddd
dddddddddddgZdd�Zdd�Zdd�Zdd �Zd!d"�Z	d#d$�Z
d%S)&�	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)�out)rrrr
�__init__VszParseTest.Outputter.__init__cCs$|j�dt|�dt|��dS)NzStart element: � )r&�append�reprr)r�name�attrsrrr
�StartElementHandlerYsz'ParseTest.Outputter.StartElementHandlercCs|j�dt|��dS)Nz
End element: )r&r)r*)rr+rrr
�EndElementHandler]sz%ParseTest.Outputter.EndElementHandlercCs$|��}|r |j�dt|��dS)NzCharacter data: )�stripr&r)r*)r�datarrr
�CharacterDataHandler`sz(ParseTest.Outputter.CharacterDataHandlercCs$|j�dt|�dt|��dS)NzPI: r()r&r)r*)r�targetr0rrr
�ProcessingInstructionHandleresz0ParseTest.Outputter.ProcessingInstructionHandlercCs$|j�dt|�dt|��dS)Nz	NS decl: r()r&r)r*)r�prefixZurirrr
�StartNamespaceDeclHandlerhsz-ParseTest.Outputter.StartNamespaceDeclHandlercCs|j�dt|��dS)NzEnd of NS decl: )r&r)r*)rr4rrr
�EndNamespaceDeclHandlerksz+ParseTest.Outputter.EndNamespaceDeclHandlercCs|j�d�dS)NzStart of CDATA section)r&r))rrrr
�StartCdataSectionHandlernsz,ParseTest.Outputter.StartCdataSectionHandlercCs|j�d�dS)NzEnd of CDATA section)r&r))rrrr
�EndCdataSectionHandlerqsz*ParseTest.Outputter.EndCdataSectionHandlercCs|j�dt|��dS)Nz	Comment: )r&r)r*)r�textrrr
�CommentHandlertsz"ParseTest.Outputter.CommentHandlercGs"|\}}}}|j�d|f�dS)NzNotation declared: %s)r&r))r�argsr+�baseZsysidZpubidrrr
�NotationDeclHandlerwsz'ParseTest.Outputter.NotationDeclHandlercGs$|\}}}}}|j�d|f�dS)NzUnparsed entity decl: %s)r&r))rr;Z
entityNamer<ZsystemIdZpublicIdZnotationNamerrr
�UnparsedEntityDeclHandler{sz-ParseTest.Outputter.UnparsedEntityDeclHandlercCs|j�d�dS)NzNot standaloner)r&r))rrrr
�NotStandaloneHandlersz(ParseTest.Outputter.NotStandaloneHandlercGs*|\}}}}|j�d|dd�f�dS)NzExternal entity ref: %sr)r&r))rr;�contextr<�sysId�pubIdrrr
�ExternalEntityRefHandler�sz,ParseTest.Outputter.ExternalEntityRefHandlercGs|j�d|f�dS)Nz
Start doctyper)r&r))rr;rrr
�StartDoctypeDeclHandler�sz+ParseTest.Outputter.StartDoctypeDeclHandlercCs|j�d�dS)NzEnd doctyper)r&r))rrrr
�EndDoctypeDeclHandler�sz)ParseTest.Outputter.EndDoctypeDeclHandlercGs|j�d|f�dS)NzEntity declarationr)r&r))rr;rrr
�EntityDeclHandler�sz%ParseTest.Outputter.EntityDeclHandlercGs|j�d|f�dS)NzXML declarationr)r&r))rr;rrr
�XmlDeclHandler�sz"ParseTest.Outputter.XmlDeclHandlercGs|j�d|f�dS)NzElement declarationr)r&r))rr;rrr
�ElementDeclHandler�sz&ParseTest.Outputter.ElementDeclHandlercGs|j�d|f�dS)NzAttribute list declarationr)r&r))rr;rrr
�AttlistDeclHandler�sz&ParseTest.Outputter.AttlistDeclHandlercGs|j�d|f�dS)NzSkipped entityr)r&r))rr;rrr
�SkippedEntityHandler�sz(ParseTest.Outputter.SkippedEntityHandlercCsdS)Nr)r�userDatarrr
�DefaultHandler�sz"ParseTest.Outputter.DefaultHandlercCsdS)Nr)rrKrrr
�DefaultHandlerExpand�sz(ParseTest.Outputter.DefaultHandlerExpandN)r"r#r$r'r-r.r1r3r5r6r7r8r:r=r>r?rCrDrErFrGrHrIrJrLrMrrrr
�	OutputterUs.rNr-r.r1r3r>r=r5r6r:r7r8rLrMr?rCrDrErFrGrHrIrJcCs&x |jD]}t||t||��qWdS)z{
        Set each of the callbacks defined on handler and named in
        self.handler_names on the given parser.
        N)�
handler_namesrr )rr
�handlerr+rrr
�_hookup_callbacks�szParseTest._hookup_callbackscCsfddddddddd	d
dddd
dddddddddddddddg}x"t||�D]\}}|�||�qJWdS)N)zXML declaration)z1.0z
iso-8859-1rz,PI: 'xml-stylesheet' 'href="stylesheet.css"'zComment: ' comment data 'zNot standalone)z
Start doctype)Z
quotationszquotations.dtdNr)zElement declaration)�root)rrNr)zAttribute list declaration)rRZattr1�CDATANr)zAttribute list declaration)rRZattr2rSNrz<Notation declared: ('notation', None, 'notation.jpeg', None))zEntity declaration)Zacircr�âNNNN)zEntity declaration)Zexternal_entityrNNzentity.fileNNzPUnparsed entity decl: ('unparsed_entity', None, 'entity.file', None, 'notation')zEnd doctypeu?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' {}zStart of CDATA sectionz+Character data: 'contents of CDATA section'zEnd of CDATA sectionzEnd element: 'sub2'z0External entity ref: (None, 'entity.file', None))zSkipped entity)Zskipped_entityruCharacter data: 'µ'zEnd element: 'root')�zip�assertEqual)r�
operationsZexpected_operationsZ	operationZexpected_operationrrr
�_verify_parse_output�s>zParseTest._verify_parse_outputcCsP|��}tjdd�}|�||�|�td�|j}|�|�|�t	t
|d�dS)Nr)rru�)rNrr	rQ�Parser0r&rXrrr )rr&r
rWrrr
�test_parse_bytes�s
zParseTest.test_parse_bytescCsF|��}tjdd�}|�||�|�t�d�d�|j}|�|�dS)Nr)rz
iso-8859-1r)	rNrr	rQrYr0�decoder&rX)rr&r
rWrrr
�test_parse_str�szParseTest.test_parse_strcCsF|��}tjdd�}|�||�tt�}|�|�|j}|�|�dS)Nr)r)	rNrr	rQrr0�	ParseFiler&rX)rr&r
�filerWrrr
�test_parse_file�s
zParseTest.test_parse_filec	CsZt��}tt�}|�|�|�tj��}|�|�WdQRX|�t�|j	j
�tjj�dS)N)
rr	rr0r]r�errorrVZErrorStringZ	exception�coderZXML_ERROR_FINISHED)rr
r^�cmrrr
�test_parse_agains
zParseTest.test_parse_againN)r"r#r$rNrOrQrXrZr\r_rcrrrr
r%Ts V
&
r%c@s$eZdZdd�Zdd�Zdd�ZdS)�NamespaceSeparatorTestcCs$t��tjdd�tjdd�dS)N)rr()rr	)rrrr
�
test_legalsz!NamespaceSeparatorTest.test_legalc
Cs�ytjdd�|��Wn2tk
rJ}z|�t|�d�Wdd}~XYnXytjdd�|��Wn2tk
r�}z|�t|�d�Wdd}~XYnXdS)N�*)rz6ParserCreate() argument 2 must be str or None, not intztoo longzCnamespace_separator must be at most one character, omitted, or None)rr	�failrrV�str�
ValueError)r�errr
�test_illegals

z#NamespaceSeparatorTest.test_illegalcCstjdd�dS)N�)r)rr	)rrrr
�test_zero_length)s	z'NamespaceSeparatorTest.test_zero_lengthN)r"r#r$rerkrmrrrr
rdsrdc@seZdZdd�Zdd�ZdS)�
InterningTestcsht��}g��fdd�}||_||_|�dd��d}|�t��d�x�D]}|�||k�qNWdS)Ncs��|�dS)N)r))r+r;)�Lrr
�	collector:sz%InterningTest.test.<locals>.collectors<e> <e/> <e></e> </e>rr�)rr	r-r.rYrV�len�
assertTrue)r�prp�tag�entryr)ror
�test6s
zInterningTest.testcCsNGdd�d�}tjdd�}d|_||�}|j|_|�td�|�|jd�dS)Nc@seZdZdd�Zdd�ZdS)z7InterningTest.test_issue9402.<locals>.ExternalOutputtercSs||_d|_dS)N)r
�
parser_result)rr
rrr
r'Hsz@InterningTest.test_issue9402.<locals>.ExternalOutputter.__init__cSs|j�d�}|�dd�|_dS)Nrl�r)r
ZExternalEntityParserCreaterYrx)rr@r<rArBZexternal_parserrrr
rCLszPInterningTest.test_issue9402.<locals>.ExternalOutputter.ExternalEntityRefHandlerN)r"r#r$r'rCrrrr
�ExternalOutputterGsrzr)rr)rr	rrCrYr0rVrx)rrzr
r&rrr
�test_issue9402Es
zInterningTest.test_issue9402N)r"r#r$rwr{rrrr
rn5srnc@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)�stuffrr	r
rr1)rrrr
rZs
zBufferTextTest.setUpc
Cs&|�|j|d||jtt|�f�dS)Nz%s
stuff    = %r
expected = %r)rVr}�maprh)r�expectedZlabelrrr
�check`s
zBufferTextTest.checkcCs|j�|�dS)N)r}r))rr9rrr
r1esz#BufferTextTest.CharacterDataHandlercCs@|j�d|�|�d�}|dkr,d|j_n|dkr<d|j_dS)Nz<%s>zbuffer-textZyesr�nor)r}r)�getr
r)rr+r,Zbtrrr
r-hs

z"BufferTextTest.StartElementHandlercCs|j�d|�dS)Nz</%s>)r}r))rr+rrr
r.psz BufferTextTest.EndElementHandlercCs|j�d|�dS)Nz	<!--%s-->)r}r))rr0rrr
r:sszBufferTextTest.CommentHandlercCs&x |D]}t|j|t||��qWdS)N)rr
r )rZhandlersr+rrr
�setHandlersvs
zBufferTextTest.setHandlerscCst��}|�|j�dS)N)rr	�assertFalser)rr
rrr
�test_default_to_disabledzsz'BufferTextTest.test_default_to_disabledcCs2|�|jj�|j�dd�|�|jdgd�dS)Ns<a>1<b/>2<c/>3</a>rZ123z$buffered text not properly collapsed)rsr
rrYrVr})rrrr
�test_buffering_enabled~sz%BufferTextTest.test_buffering_enabledcCs>|�dg�|j�dd�|�|jdddddd	d
dgd�dS)
Nr-s9<a>1<b buffer-text='no'/>2
3<c buffer-text='yes'/>4
5</a>rz<a>�1z<b>�2�
�3z<c>z4
5z*buffering control not reacting as expected)r�r
rYrVr})rrrr
�test1�s
zBufferTextTest.test1cCs$|j�dd�|�|jdgd�dS)Ns&<a>1<b/>&lt;2&gt;<c/>&#32;
&#x20;3</a>rz1<2> 
 3z$buffered text not properly collapsed)r
rYrVr})rrrr
�test2�szBufferTextTest.test2c	Cs:|�dg�|j�dd�|�|jdddddd	gd
�dS)Nr-s<a>1<b/>2<c/>3</a>rz<a>r�z<b>r�z<c>r�z buffered text not properly split)r�r
rYrVr})rrrr
�test3�szBufferTextTest.test3c	CsB|�ddg�d|j_|j�dd�|�|jddddd	d
g�dS)Nr-r.s<a>1<b/>2<c/>3</a>rz<a>z<b>z</b>z<c>z</c>z</a>)r�r
r1rYrVr})rrrr
�test4�s
zBufferTextTest.test4cCs@|�ddg�|j�dd�|�|jddddd	d
ddd
g	�dS)Nr-r.s<a>1<b></b>2<c/>3</a>rz<a>r�z<b>z</b>r�z<c>z</c>r�z</a>)r�r
rYrVr})rrrr
�test5�szBufferTextTest.test5cCsD|�dddg�|j�dd�|�|jdddd	d
ddd
dg	d�dS)Nr:r.r-s<a>1<b/>2<c></c>345</a> rz<a>r�z<b>z</b>r�z<c>z</c>Z345z</a>z buffered text not properly split)r�r
rYrVr})rrrr
�test6�szBufferTextTest.test6cCsL|�dddg�|j�dd�|�|jdddd	d
ddd
dddddg
d�dS)Nr:r.r-s,<a>1<b/>2<c></c>3<!--abc-->4<!--def-->5</a> rz<a>r�z<b>z</b>r�z<c>z</c>r�z
<!--abc-->�4z
<!--def-->�5z</a>z buffered text not properly split)r�r
rYrVr})rrrr
�test7�szBufferTextTest.test7N)r"r#r$rr�r1r-r.r:r�r�r�r�r�r�r�r�r�r�rrrr
r|Ys 	r|c@s$eZdZdd�Zdd�Zdd�ZdS)�HandlerExceptionTestcCst|��dS)N)�RuntimeError)rr+r,rrr
r-�sz(HandlerExceptionTest.StartElementHandlercCs,|�tj�|d�|�|�|d|�dS)Nrr)rV�os�path�basename)rrv�filename�funcnamerrr
�check_traceback_entry�sz*HandlerExceptionTest.check_traceback_entrycCs�t��}|j|_y|�dd�|��Wn�tk
r�}z�|�|jdddd|jd�t�	|j
�}|�t|�d�|�|ddd	�|�|dd
d�|�|ddd
�t
��r�|�d|dd�Wdd}~XYnXdS)Ns<a><b><c/></b></a>rr�az*Expected RuntimeError for element 'a', butz	 found %r�ztest_pyexpat.py�test_exceptionz	pyexpat.cZStartElementrr-zcall_with_frame("StartElement")rr	r-rYrgr�rVr;�	traceback�
extract_tb�
__traceback__rrr��	sysconfigZis_python_buildZassertIn)rr
rj�entriesrrr
r��s&


z#HandlerExceptionTest.test_exceptionN)r"r#r$r-r�r�rrrr
r��sr�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�PositionTestcCs|�d�dS)N�s)�	check_pos)rr+r,rrr
r-�sz PositionTest.StartElementHandlercCs|�d�dS)Nrj)r�)rr+rrr
r.�szPositionTest.EndElementHandlercCsd||jj|jj|jjf}|�|jt|j�kd�|j|j}|�||d||f�|jd7_dS)Nztoo many parser eventsz%Expected position %s, got position %sr)	r
ZCurrentByteIndexZCurrentLineNumberZCurrentColumnNumberrs�uptorr�
expected_listrV)rZevent�posrrrr
r��s
zPositionTest.check_poscCsLt��|_|j|j_|j|j_d|_ddddddg|_d}|j�|d	�dS)
Nr)r�rrr)r��rr)r��r�r)rjrr�rq)rj��r)rj�r�rs<a>
 <b>
  <c/>
 </b>
</a>r)rr	r
r-r.r�r�rY)r�xmlrrr
rw�s


zPositionTest.testN)r"r#r$r-r.r�rwrrrr
r��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$rrrr
�SpecificExceptionsr�cs��dS)Nr)r9)r�rr
rPsz7sf1296433Test.test_parse_only_xml_data.<locals>.handler�iso8859)�	Exceptionrr	r1rrY�encode)rr�rPr
r)r�r
�test_parse_only_xml_data�sz&sf1296433Test.test_parse_only_xml_dataN)r"r#r$r�rrrr
r��sr�c@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�ChardataBufferTestz.
    test setting of chardata buffer size
    cCs|�|�d�d�dS)Nir)rV�small_buffer_test)rrrr
�test_1025_bytessz"ChardataBufferTest.test_1025_bytescCs|�|�d�d�dS)Ni�r)rVr�)rrrr
�test_1000_bytessz"ChardataBufferTest.test_1000_bytesc	Cs�t��}d|_|�t��d|_WdQRX|�t��d|_WdQRX|�ttf��tjd|_WdQRX|�t	��d|_WdQRXdS)Nr���rg�@)
rr	rrri�buffer_size�
OverflowError�sys�maxsizer)rr
rrr
�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_handlerr1r�r�nrYrV)r�xml1�xml2r
rrr
�test_unchanged_size"s

z&ChardataBufferTest.test_unchanged_sizecCs�d}d}d}t��}|j|_d|_d|_|�|jd�d|_|�|d�|�|jd�|�|jd�d|_|�	|j�|�|jd�xt
d�D]}|�|d�q�W|�|jd�d|_|�|j�|�|jd�|�|d�|�|jd	�dS)
Ns+<?xml version='1.0' encoding='iso8859'?><a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc</a>rir�
r��)rr	r�r1rr�rVr�rYr�rrs)rr�r�Zxml3r
�irrr
�test_disabling_buffer9s.z(ChardataBufferTest.test_disabling_buffercCs|jd7_dS)Nr)r�)rr9rrr
r�Wsz#ChardataBufferTest.counting_handlercCsBdd|d}t��}|j|_d|_d|_d|_|�|�|jS)Ns+<?xml version='1.0' encoding='iso8859'?><s>�as</s>irr)rr	r�r1r�rr�rY)rZ
buffer_lenr�r
rrr
r�Zs
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>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaa</s><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s></a>rirri)	rr	r�r1rr�rVr�rY)rr�r�r
rrr
�test_change_size_1es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>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaa</s><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s></a>rirrir�)	rr	r�r1rr�rVr�rY)rr�r�r
rrr
�test_change_size_2usz%ChardataBufferTest.test_change_size_2N)
r"r#r$�__doc__r�r�r�r�r�r�r�r�r�rrrr
r�sr�c@seZdZdd�Zdd�ZdS)�MalformedInputTestc
Cs^d}t��}y|�|d�|��Wn4tjk
rX}z|�t|�d�Wdd}~XYnXdS)Ns
Tz unclosed token: line 2, column 0)rr	rYrg�
ExpatErrorrVrh)rr�r
rjrrr
r��szMalformedInputTest.test1c	Cs:d}t��}d}|�tj|��|�|d�WdQRXdS)Ns<?xml version…='1.0'?>
z3XML declaration not well-formed: line 1, column \d+T)rr	ZassertRaisesRegexr�rY)rr�r
Zerr_patternrrr
r��s
zMalformedInputTest.test2N)r"r#r$r�r�rrrr
r��s	r�c@seZdZdd�Zdd�ZdS)�ErrorMessageTestcCs |�tjtjtjtj�dS)N)rVrZXML_ERROR_SYNTAX�messages�codes)rrrr
�
test_codes�szErrorMessageTest.test_codesc
Csdd}t��}y|�|d�|��Wn:tjk
r^}z|�|jtjtj	�Wdd}~XYnXdS)N�<T)
rr	rYrgr�rVrarr�ZXML_ERROR_UNCLOSED_TOKEN)rr�r
rjrrr
�test_expaterror�sz ErrorMessageTest.test_expaterrorN)r"r#r$r�r�rrrr
r��sr�c@s eZdZdZdd�Zdd�ZdS)�ForeignDTDTestszE
    Tests for the UseForeignDTD method of expat parser objects.
    cs�g��fdd�}t��}|�d�|�tj�||_|�d�|��dg�g�dd�<t��}|��|�tj�||_|�d�|��dg�dS)z�
        If UseForeignDTD is passed True and a document without an external
        entity reference is parsed, ExternalEntityRefHandler is first called
        with None for the public and system ids.
        cs��||f�dS)Nr)r))r@r<�	system_id�	public_id)�handler_call_argsrr
�resolve_entity�sz<ForeignDTDTests.test_use_foreign_dtd.<locals>.resolve_entityTs<?xml version='1.0'?><element/>)NNN)rr	�
UseForeignDTD�SetParamEntityParsing�XML_PARAM_ENTITY_PARSING_ALWAYSrCrYrV)rr�r
r)r�r
�test_use_foreign_dtd�s


z$ForeignDTDTests.test_use_foreign_dtdcsPg��fdd�}t��}|�d�|�tj�||_|�d�|��dg�dS)z�
        If UseForeignDTD is passed True and a document with an external
        entity reference is parsed, ExternalEntityRefHandler is called with
        the public and system ids from the document.
        cs��||f�dS)Nr)r))r@r<r�r�)r�rr
r��szCForeignDTDTests.test_ignore_use_foreign_dtd.<locals>.resolve_entityTs@<?xml version='1.0'?><!DOCTYPE foo PUBLIC 'bar' 'baz'><element/>)ZbarZbazN)rr	r�r�r�rCrYrV)rr�r
r)r�r
�test_ignore_use_foreign_dtd�s
z+ForeignDTDTests.test_ignore_use_foreign_dtdN)r"r#r$r�r�r�rrrr
r��sr��__main__)�iorr�r�r�Zunittestr�Zxml.parsersrZxml.parsers.expatrZtest.supportrZTestCaserr0r%rdrnr|r�r�r�r�r�r�r�r"�mainrrrr
�<module>s0??#$` z4