Current File : //usr/local/apps/python3/lib/python3.11/test/__pycache__/test_pyexpat.cpython-311.pyc
�

�Ke@k��h�ddlmZddlZddlZddlZddlZddlZddlZddlm	Z	ddl
mZddlm
Z
mZmZGd�dej��ZdZGd	�d
ej��ZGd�dej��ZGd
�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��ZGd�dej��Zedkrej��dSdS) �)�BytesION)�expat)�errors)�sortdict�
is_emscripten�is_wasic�2�eZdZd�Zd�Zd�Zd�Zd�Zd�ZdS)�SetAttributeTestc�:�tjd���|_dS�N�!��namespace_separator)r�ParserCreate�parser��selfs �;/usr/local/apps/python3/lib/python3.11/test/test_pyexpat.py�setUpzSetAttributeTest.setUps���(�S�A�A�A�����c���|�|jjd��dD];}||j_|�|jjt|�����<dS�NF)r��r)�assertIsr�buffer_text�bool�r�xs  r�test_buffer_textz!SetAttributeTest.test_buffer_texts`���
�
�d�k�-�u�5�5�5��	<�	<�A�&'�D�K�#��M�M�$�+�1�4��7�7�;�;�;�;�	<�	<rc���|�|jjd��dD];}||j_|�|jjt|�����<dSr)rr�namespace_prefixesrrs  r�test_namespace_prefixesz(SetAttributeTest.test_namespace_prefixes�d���
�
�d�k�4�e�<�<�<��	C�	C�A�-.�D�K�*��M�M�$�+�8�$�q�'�'�B�B�B�B�	C�	Crc���|�|jjd��dD];}||j_|�|jjt|�����<dSr)rr�ordered_attributesrrs  r�test_ordered_attributesz(SetAttributeTest.test_ordered_attributes"r$rc���|�|jjd��dD];}||j_|�|jjt|�����<dSr)rr�specified_attributesrrs  r�test_specified_attributesz*SetAttributeTest.test_specified_attributes(sd���
�
�d�k�6��>�>�>��	E�	E�A�/0�D�K�,��M�M�$�+�:�D��G�G�D�D�D�D�	E�	Erc�8�|�t��5d|j_ddd��n#1swxYwY|�t��5|jjddd��n#1swxYwY|�tt
|jt
d��d��|�t|jjt
d��d��|�tt|jt
d����dS)Nr�r)	�assertRaises�AttributeErrorr�returns_unicode�	TypeError�setattr�range�__setattr__�getattrrs r�test_invalid_attributesz(SetAttributeTest.test_invalid_attributes.s\��
�
�
�~�
.�
.�	,�	,�*+�D�K�'�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,�	,����	,�	,�	,�	,�
�
�
�~�
.�
.�	(�	(��K�'�'�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(�	(����	(�	(�	(�	(�	
���)�W�d�k�5��:�:�q�I�I�I����)�T�[�%<�e�C�j�j�!�L�L�L����)�W�d�k�5��:�:�F�F�F�F�Fs�
4�8�8�
A2�2A6�9A6N)	�__name__�
__module__�__qualname__rr r#r'r*r5�rrr
r
s������B�B�B�<�<�<�C�C�C�C�C�C�E�E�E�	G�	G�	G�	G�	Grr
s�<?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�T�eZdZGd�d��Zgd�Zd�Zd�Zd�Zd�Zd�Z	d	�Z
d
S)�	ParseTestc��eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)�ParseTest.Outputterc��g|_dS�N)�outrs r�__init__zParseTest.Outputter.__init__Ws
���D�H�H�Hrc��|j�dt|��zdzt|��z��dS)NzStart element: � )r@�append�reprr�r�name�attrss   r�StartElementHandlerz'ParseTest.Outputter.StartElementHandlerZsE���H�O�O�-��T�
�
�:�S�@�$�U�O�O�,�
-�
-�
-�
-�
-rc�Z�|j�dt|��z��dS)Nz
End element: �r@rDrE�rrGs  r�EndElementHandlerz%ParseTest.Outputter.EndElementHandler^s'���H�O�O�O�d�4�j�j�8�9�9�9�9�9rc��|���}|r,|j�dt|��z��dSdS)NzCharacter data: )�stripr@rDrE�r�datas  r�CharacterDataHandlerz(ParseTest.Outputter.CharacterDataHandlerasJ���:�:�<�<�D��
A����� 2�T�$�Z�Z� ?�@�@�@�@�@�
A�
Arc��|j�dt|��zdzt|��z��dS)NzPI: rCrK)r�targetrQs   r�ProcessingInstructionHandlerz0ParseTest.Outputter.ProcessingInstructionHandlerfs7���H�O�O�F�T�&�\�\�1�C�7�$�t�*�*�D�E�E�E�E�Erc��|j�dt|��zdzt|��z��dS)Nz	NS decl: rCrK)r�prefix�uris   r�StartNamespaceDeclHandlerz-ParseTest.Outputter.StartNamespaceDeclHandleris7���H�O�O�K�$�v�,�,�6��<�t�C�y�y�H�I�I�I�I�Irc�Z�|j�dt|��z��dS)NzEnd of NS decl: rK)rrWs  r�EndNamespaceDeclHandlerz+ParseTest.Outputter.EndNamespaceDeclHandlerls(���H�O�O�.��f���=�>�>�>�>�>rc�:�|j�d��dS)N�Start of CDATA section�r@rDrs r�StartCdataSectionHandlerz,ParseTest.Outputter.StartCdataSectionHandleros���H�O�O�4�5�5�5�5�5rc�:�|j�d��dS)N�End of CDATA sectionr^rs r�EndCdataSectionHandlerz*ParseTest.Outputter.EndCdataSectionHandlerrs���H�O�O�2�3�3�3�3�3rc�Z�|j�dt|��z��dS)Nz	Comment: rK�r�texts  r�CommentHandlerz"ParseTest.Outputter.CommentHandlerus'���H�O�O�K�$�t�*�*�4�5�5�5�5�5rc�N�|\}}}}|j�d|����dS)NzNotation declared: r^)r�argsrG�base�sysid�pubids      r�NotationDeclHandlerz'ParseTest.Outputter.NotationDeclHandlerxs1��'+�$�D�$��u��H�O�O�O�d�d�<�=�=�=�=�=rc�P�|\}}}}}|j�d|����dS)NzUnparsed entity decl: r^)rrh�
entityNameri�systemId�publicId�notationNames       r�UnparsedEntityDeclHandlerz-ParseTest.Outputter.UnparsedEntityDeclHandler|s3��AE�>�J��h��,��H�O�O�O���?�@�@�@�@�@rc�:�|j�d��dS)N�Not standalonerr^rs r�NotStandaloneHandlerz(ParseTest.Outputter.NotStandaloneHandler�s���H�O�O�,�-�-�-��1rc�^�|\}}}}|j�d|dd�����dS)NzExternal entity ref: rr^)rrh�contextri�sysId�pubIds      r�ExternalEntityRefHandlerz,ParseTest.Outputter.ExternalEntityRefHandler�s8��*.�'�G�T�5�%��H�O�O�O��Q�R�R���B�C�C�C��1rc�>�|j�d|f��dS)N�
Start doctyperr^�rrhs  r�StartDoctypeDeclHandlerz+ParseTest.Outputter.StartDoctypeDeclHandler�s ���H�O�O�_�d�3�4�4�4��1rc�:�|j�d��dS)N�End doctyperr^rs r�EndDoctypeDeclHandlerz)ParseTest.Outputter.EndDoctypeDeclHandler�s���H�O�O�M�*�*�*��1rc�>�|j�d|f��dS)N�Entity declarationrr^r}s  r�EntityDeclHandlerz%ParseTest.Outputter.EntityDeclHandler�s!���H�O�O�1�4�8�9�9�9��1rc�>�|j�d|f��dS)N�XML declarationrr^r}s  r�XmlDeclHandlerz"ParseTest.Outputter.XmlDeclHandler�s!���H�O�O�.��5�6�6�6��1rc�>�|j�d|f��dS)N�Element declarationrr^r}s  r�ElementDeclHandlerz&ParseTest.Outputter.ElementDeclHandler�s!���H�O�O�2�D�9�:�:�:��1rc�>�|j�d|f��dS)N�Attribute list declarationrr^r}s  r�AttlistDeclHandlerz&ParseTest.Outputter.AttlistDeclHandler�s!���H�O�O�9�4�@�A�A�A��1rc�>�|j�d|f��dS)N�Skipped entityrr^r}s  r�SkippedEntityHandlerz(ParseTest.Outputter.SkippedEntityHandler�s!���H�O�O�-�t�4�5�5�5��1rc��dSr?r9�r�userDatas  r�DefaultHandlerz"ParseTest.Outputter.DefaultHandler�����Drc��dSr?r9r�s  r�DefaultHandlerExpandz(ParseTest.Outputter.DefaultHandlerExpand�r�rN)r6r7r8rArIrMrRrUrYr[r_rbrfrlrrrurzr~r�r�r�r�r�r�r�r�r9rr�	Outputterr=Vsy������	�	�	�	-�	-�	-�	:�	:�	:�	A�	A�	A�
	F�	F�	F�	J�	J�	J�	?�	?�	?�	6�	6�	6�	4�	4�	4�	6�	6�	6�	>�	>�	>�	A�	A�	A�	�	�	�	�	�	�
	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	�	rr�)rIrMrRrUrrrlrYr[rfr_rbr�r�rurzr~r�r�r�r�r�r�c	�X�|jD]!}t||t||�����"dS)z{
        Set each of the callbacks defined on handler and named in
        self.handler_names on the given parser.
        N)�
handler_namesr1r4)rr�handlerrGs    r�_hookup_callbackszParseTest._hookup_callbacks�s?��
�&�	:�	:�D��F�D�'�'�4�"8�"8�9�9�9�9�	:�	:rc�f�gd�}t||��D]\}}|�||���dS)N))r�)z1.0�
iso-8859-1rz,PI: 'xml-stylesheet' 'href="stylesheet.css"'zComment: ' comment data 'rt)r|)�
quotationszquotations.dtdNr)r�)�root)rrNr9)r�)r��attr1�CDATANr)r�)r��attr2r�Nrz<Notation declared: ('notation', None, 'notation.jpeg', None))r�)�acircr�âNNNN)r�)�external_entityrNNzentity.fileNNzPUnparsed entity decl: ('unparsed_entity', None, 'entity.file', None, 'notation')rtr�u?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' {}r]z+Character data: 'contents of CDATA section'razEnd element: 'sub2'z0External entity ref: (None, 'entity.file', None))r�)�skipped_entityruCharacter data: 'µ'zEnd element: 'root')�zip�assertEqual)r�
operations�expected_operations�	operation�expected_operations     r�_verify_parse_outputzParseTest._verify_parse_output�s[��!
�!
�!
��D.1��=P�-Q�-Q�	<�	<�)�I�)����Y�(:�;�;�;�;�	<�	<rc�6�|���}tjd���}|�||��|�t
d��|j}|�|��|�tt|d��dS)Nr
rTu�)r�rrr��ParserQr@r�r-r.r4�rr@rr�s    r�test_parse_byteszParseTest.test_parse_bytes�s����n�n�����#��<�<�<�����v�s�+�+�+����T�4� � � ��W�
��!�!�*�-�-�-����.�'�6�8�D�D�D�D�Drc��|���}tjd���}|�||��|�t
�d��d��|j}|�|��dS)Nr
rr�T)	r�rrr�r�rQ�decoder@r�r�s    r�test_parse_strzParseTest.test_parse_str�s{���n�n�����#��<�<�<�����v�s�+�+�+����T�[�[��.�.��5�5�5��W�
��!�!�*�-�-�-�-�-rc��|���}tjd���}|�||��t	t
��}|�|��|j}|�|��dSr)	r�rrr�rrQ�	ParseFiler@r�)rr@r�filer�s     r�test_parse_filezParseTest.test_parse_file�sz���n�n�����#��<�<�<�����v�s�+�+�+��t�}�}����������W�
��!�!�*�-�-�-�-�-rc��tj��}tt��}|�|��|�tj��5}|�|��ddd��n#1swxYwY|�tj|j	j
��tjj��dSr?)
rrrrQr�r-�errorr��ErrorString�	exception�coder�XML_ERROR_FINISHED)rrr��cms    r�test_parse_againzParseTest.test_parse_agains����#�%�%���t�}�}����������
�
�u�{�
+�
+�	#�r����T�"�"�"�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�����*�2�<�+<�=�=��,�9�	;�	;�	;�	;�	;s�A>�>B�BN)r6r7r8r�r�r�r�r�r�r�r�r9rrr;r;Us�������S�S�S�S�S�S�S�S�j

�

�

�M�:�:�:�$<�$<�$<�L
E�
E�
E�.�.�.�
.�
.�
.�
;�
;�
;�
;�
;rr;c� �eZdZd�Zd�Zd�ZdS)�NamespaceSeparatorTestc��tj��tjd���tjd���dS)NrrC�rrrs r�
test_legalz!NamespaceSeparatorTest.test_legalsA��	�����
��t�4�4�4�4�
��s�3�3�3�3�3�3rc��	tjd���|���n:#t$r-}|�t|��d��Yd}~nd}~wwxYw	tjd���|���dS#t$r.}|�t|��d��Yd}~dSd}~wwxYw)N�*rzJParserCreate() argument 'namespace_separator' must be str or None, not intztoo longzCnamespace_separator must be at most one character, omitted, or None)rr�failr0r��str�
ValueError)r�es  r�test_illegalz#NamespaceSeparatorTest.test_illegals*��	^���2�6�6�6�6��I�I�K�K�K�K���	^�	^�	^����S��V�V�\�
^�
^�
^�
^�
^�
^�
^�
^�����	^����	W���:�>�>�>�>��I�I�K�K�K�K�K���	W�	W�	W����S��V�V�U�
W�
W�
W�
W�
W�
W�
W�
W�
W�����	W���s,�),�
A#�#A�A#�')B�
C
�#C�C
c�0�tjd���dS)N�rr�rs r�test_zero_lengthz'NamespaceSeparatorTest.test_zero_length*s��	��r�2�2�2�2�2�2rN)r6r7r8r�r�r�r9rrr�r�sD������4�4�4�
W�
W�
W�	3�	3�	3�	3�	3rr�c��eZdZd�Zd�ZdS)�
InterningTestc���tj��}g��fd�}||_||_|�dd���d}|�t
���d���D]}|�||u���dS)Nc�2����|��dSr?�rD)rGrh�Ls  �r�	collectorz%InterningTest.test.<locals>.collector;s���
�H�H�T�N�N�N�N�Nrs<e> <e/> <e></e> </e>Tr�)rrrIrMr�r��len�
assertTrue)r�pr��tag�entryr�s     @r�testzInterningTest.test7s������ � ����	�	�	�	�	� )���'���	���(�$�/�/�/���d������Q����#�#�#��	*�	*�E��O�O�C�5�L�)�)�)�)�	*�	*rc���Gd�d��}tjd���}d|_||��}|j|_|�t
d��|�|jd��dS)Nc��eZdZd�Zd�ZdS)�7InterningTest.test_issue9402.<locals>.ExternalOutputterc�"�||_d|_dSr?)r�
parser_result�rrs  rrAz@InterningTest.test_issue9402.<locals>.ExternalOutputter.__init__Is��$���%)��"�"�"rc�p�|j�d��}|�dd��|_dS)Nr�rTr)r�ExternalEntityParserCreater�r�)rrwrirxry�external_parsers      rrzzPInterningTest.test_issue9402.<locals>.ExternalOutputter.ExternalEntityRefHandlerMs4��"&�+�"H�"H��"L�"L��%4�%:�%:�3��%E�%E��"��qrN)r6r7r8rArzr9rr�ExternalOutputterr�Hs2������
*�
*�
*�
�
�
�
�
rr�r
rrT)rrrrzr�rQr�r�)rr�rr@s    r�test_issue9402zInterningTest.test_issue9402Fs���	�	�	�	�	�	�	�	��#��<�<�<��������'�'��*-�*F��'����T�4� � � �����*�A�.�.�.�.�.rN)r6r7r8r�r�r9rrr�r�6s2������
*�
*�
*�/�/�/�/�/rr�c�r�eZdZd�Zd�Zd�Zd�Zd�Zd�Zgfd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�ZdS)�BufferTextTestc�~�g|_tj��|_d|j_|j|j_dS�Nr)�stuffrrrrrRrs rrzBufferTextTest.setUp[s6����
��(�*�*���"#����+/�+D���(�(�(rc�~�|�|j||�d|j�dtt|������dS)Nz
stuff    = z
expected = )r�r��mapr�)r�expected�labels   r�checkzBufferTextTest.checkasM�������X��5�5�$�*�*�*�c�#�x�&8�&8�&8�:�	;�	;�	;�	;�	;rc�:�|j�|��dSr?�r�rDrds  rrRz#BufferTextTest.CharacterDataHandlerfs���
���$�����rc��|j�d|z��|�d��}|dkrd|j_dS|dkrd|j_dSdS)Nz<%s>zbuffer-text�yesr�nor)r�rD�getrr)rrGrH�bts    rrIz"BufferTextTest.StartElementHandlerisf���
���&�4�-�(�(�(�
�Y�Y�}�
%�
%��
��;�;�&'�D�K�#�#�#�
�4�Z�Z�&'�D�K�#�#�#��Zrc�@�|j�d|z��dS)Nz</%s>r�rLs  rrMz BufferTextTest.EndElementHandlerqs"���
���'�D�.�)�)�)�)�)rc�@�|j�d|z��dS)Nz	<!--%s-->r�rPs  rrfzBufferTextTest.CommentHandlerts#���
���+��,�-�-�-�-�-rc	�X�|D]&}t|j|t||�����'dSr?)r1rr4)r�handlersrGs   r�setHandlerszBufferTextTest.setHandlersws<���	<�	<�D��D�K��w�t�T�':�':�;�;�;�;�	<�	<rc�`�tj��}|�|j��dSr?)rr�assertFalserr�s  r�test_default_to_disabledz'BufferTextTest.test_default_to_disabled{s-���#�%�%������+�,�,�,�,�,rc��|�|jj��|j�dd��|�|jdgd��dS)N�<a>1<b/>2<c/>3</a>T�123�$buffered text not properly collapsed)r�rrr�r�r�rs r�test_buffering_enabledz%BufferTextTest.test_buffering_enabledsd�������/�0�0�0�����/��6�6�6������e�W�?�	A�	A�	A�	A�	Arc��|�dg��|j�dd��|�|jgd�d��dS)NrIs9<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�rr�r�r�rs r�test1zBufferTextTest.test1�sm��	
���/�0�1�1�1�����X�Z^�_�_�_������K�K�K�E�	G�	G�	G�	G�	Grc�v�|j�dd��|�|jdgd��dS)Ns&<a>1<b/>&lt;2&gt;<c/>&#32;
&#x20;3</a>Tz1<2> 
 3r)rr�r�r�rs r�test2zBufferTextTest.test2�sM������D�d�K�K�K������k�]�?�	A�	A�	A�	A�	Arc��|�dg��|j�dd��|�|jgd�d��dS)NrIrT)r	r
rrrr� buffered text not properly splitrrs r�test3zBufferTextTest.test3�se�����/�0�1�1�1�����/��6�6�6������%I�%I�%I�;�	=�	=�	=�	=�	=rc��|�ddg��d|j_|j�dd��|�|jgd���dS)NrIrMrT)r	r�</b>r�</c>�</a>)r�rrRr�r�r�rs r�test4zBufferTextTest.test4�st�����/�1D�E�F�F�F�+/���(�����/��6�6�6������F�F�F�	H�	H�	H�	H�	Hrc��|�ddg��|j�dd��|�|jgd���dS)NrIrMs<a>1<b></b>2<c/>3</a>T)	r	r
rrrrrrrrrs r�test5zBufferTextTest.test5�sj�����/�1D�E�F�F�F�����2�D�9�9�9������H�H�H�	J�	J�	J�	J�	Jrc��|�gd���|j�dd��|�|jgd�d��dS)N�rfrMrIs<a>1<b/>2<c></c>345</a> T)	r	r
rrrrr�345rrrrs r�test6zBufferTextTest.test6�st�����+�+�+�	,�	,�	,�����5�t�<�<�<������J�J�J�.�	0�	0�	0�	0�	0rc��|�gd���|j�dd��|�|jgd�d��dS)Nrs,<a>1<b/>2<c></c>3<!--abc-->4<!--def-->5</a> T)
r	r
rrrrrrz
<!--abc-->�4z
<!--def-->�5rrrrs r�test7zBufferTextTest.test7�s}�����+�+�+�	,�	,�	,�����I�4�P�P�P������H�H�H�;�	=�	=�	=�	=�	=rN)r6r7r8rr�rRrIrMrfr�rrrrrrrr!r%r9rrr�r�Zs ������E�E�E�;�;�;�
 � � �(�(�(�*�*�*�.�.�.�$&�<�<�<�<�-�-�-�A�A�A�G�G�G�A�A�A�
=�=�=�H�H�H�J�J�J�0�0�0�=�=�=�=�=rr�c� �eZdZd�Zd�Zd�ZdS)�HandlerExceptionTestc� �t|���r?)�RuntimeErrorrFs   rrIz(HandlerExceptionTest.StartElementHandler�s���4� � � rc��|�tj�|d��|��|�|d|��dS)Nrr)r��os�path�basename)rr��filename�funcnames    r�check_traceback_entryz*HandlerExceptionTest.check_traceback_entry�sL�������)�)�%��(�3�3�X�>�>�>�����q��8�,�,�,�,�,rc	�\�tj��}|j|_	|�dd��|���dS#t
$�rS}|�|jdddd|jdzz��tj	|j
��}|�t|��d��|�|ddd	��|�|d
dd��|�|d
dd��tj��r]tjdkrt!j��dksBt$s5t&s:|�d|d
d��Yd}~dSYd}~dSYd}~dSYd}~dSYd}~dSd}~wwxYw)Ns<a><b><c/></b></a>Tr�az*Expected RuntimeError for element 'a', butz	 found %r�ztest_pyexpat.py�test_exceptionrz	pyexpat.c�StartElementrrI�win32�ARMzcall_with_frame("StartElement")rrrIr�r�r)r�rh�	traceback�
extract_tb�
__traceback__r�r0�	sysconfig�is_python_build�sys�platform�machinerr�assertIn)rrr��entriess    rr4z#HandlerExceptionTest.test_exception�s���#�%�%��%)�%=��"�	O��L�L�.��5�5�5��I�I�K�K�K�K�K���	O�	O�	O����Q�V�A�Y��I�(�1�6�!�9�4�5�
6�
6�
6� �*�1�?�;�;�G����S��\�\�1�-�-�-��&�&�w�q�z�'8�:J�
L�
L�
L��&�&�w�q�z�'2�N�
D�
D�
D��&�&�w�q�z�'8�:O�
Q�
Q�
Q��)�+�+�
O����0�0�X�5E�5G�5G�5�5P�5P�%�6Q��6Q��
�
�>���
�1�
�N�N�N�N�N�N�N�N�N�
O�
O�
O�
O�
O�
O�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�5P�����	O���s�*A
�
F+�D0F&�&F+N)r6r7r8rIr0r4r9rrr'r'�sF������!�!�!�-�-�-�O�O�O�O�Orr'c�&�eZdZd�Zd�Zd�Zd�ZdS)�PositionTestc�0�|�d��dS)N�s��	check_posrFs   rrIz PositionTest.StartElementHandler�������s�����rc�0�|�d��dS)Nr�rFrLs  rrMzPositionTest.EndElementHandler�rHrc�.�||jj|jj|jjf}|�|jt
|j��kd��|j|j}|�||d|�d|����|xjdz
c_dS)Nztoo many parser eventszExpected position z, got position r)	r�CurrentByteIndex�CurrentLineNumber�CurrentColumnNumberr��uptor��
expected_listr�)r�event�posr�s    rrGzPositionTest.check_pos�s�����{�+��{�,��{�.�0��	
����	�C��(:�$;�$;�;�0�	2�	2�	2��%�d�i�0������h�h�:=�#�#�x�x�H�	J�	J�	J��	�	�Q��	�	�	�	rc���tj��|_|j|j_|j|j_d|_gd�|_d}|j�|d��dS)Nr))rErrr)rE�rr)rE�r3r)r�r,r3r�)r���r)r��rSrs<a>
 <b>
  <c/>
 </b>
</a>T)rrrrIrMrNrOr�)r�xmls  rr�zPositionTest.test�so���(�*�*���*.�*B���'�(,�(>���%���	�Q�Q�Q���0������#�t�$�$�$�$�$rN)r6r7r8rIrMrGr�r9rrrCrC�sP������������
�
�
�	%�	%�	%�	%�	%rrCc��eZdZd�ZdS)�
sf1296433Testc����ddz}Gd�dt����fd�}tj��}||_|�t|j|�d����dS)Nz1<?xml version='1.0' encoding='iso8859'?><s>%s</s>�aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaac��eZdZdS)�Asf1296433Test.test_parse_only_xml_data.<locals>.SpecificExceptionN)r6r7r8r9rr�SpecificExceptionr^s�������Drr_c�����r?r9)rer_s �rr�z7sf1296433Test.test_parse_only_xml_data.<locals>.handlers	���#�#r�iso8859)�	ExceptionrrrRr-r��encode)rrXr�rr_s    @r�test_parse_only_xml_dataz&sf1296433Test.test_parse_only_xml_data�s����B�Z�P��	�	�	�	�	�	�	�	�	�	$�	$�	$�	$�	$��#�%�%��&-��#����)�V�\�3�:�:�i�3H�3H�I�I�I�I�IrN)r6r7r8rdr9rrrZrZ�s(������J�J�J�J�JrrZc�H�eZdZdZd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�ZdS)�ChardataBufferTestz.
    test setting of chardata buffer size
    c�X�|�|�d��d��dS)Nir�r��small_buffer_testrs r�test_1025_bytesz"ChardataBufferTest.test_1025_bytes�,������/�/��5�5�q�9�9�9�9�9rc�X�|�|�d��d��dS)Ni�rrhrs r�test_1000_bytesz"ChardataBufferTest.test_1000_bytesrkrc�,�tj��}d|_|�t��5d|_ddd��n#1swxYwY|�t��5d|_ddd��n#1swxYwY|�ttf��5tjdz|_ddd��n#1swxYwY|�t��5d|_ddd��dS#1swxYwYdS)Nr���rg�@)
rrrr-r��buffer_size�
OverflowErrorr=�maxsizer0r�s  r�test_wrong_sizez"ChardataBufferTest.test_wrong_sizes����#�%�%�����
�
�
�z�
*�
*�	$�	$�!#�F��	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�
�
�
�z�
*�
*�	#�	#�!"�F��	#�	#�	#�	#�	#�	#�	#�	#�	#�	#�	#����	#�	#�	#�	#�
�
�
�
�M�:�
;�
;�	1�	1�!$��q��F��	1�	1�	1�	1�	1�	1�	1�	1�	1�	1�	1����	1�	1�	1�	1�
�
�
�y�
)�
)�	'�	'�!&�F��	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'�	'����	'�	'�	'�	'�	'�	'sG�A	�	A
�A
�.B�B�	B�.C�C�C�4D	�	D
�D
c��d}d}tj��}|j|_d|_d|_d|_|�|��|�|jd��|j|_|�|jd��|�|��|�|jd��dS)Ns+<?xml version='1.0' encoding='iso8859'?><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s>irrr)	rr�counting_handlerrRrpr�nr�r��r�xml1�xml2rs    r�test_unchanged_sizez&ChardataBufferTest.test_unchanged_size's���J��!���#�%�%��&*�&;��#� ������������T����������#�#�#�$�/���������#�#�#�	���T����������#�#�#�#�#rc� �d}d}d}tj��}|j|_d|_d|_|�|jd��d|_|�|d��|�|jd��|�|jd��d|_|�	|j��|�|jd��td��D]}|�|d���|�|jd	��d|_|�|j��|�|jd��|�|d
��|�|jd��dS)Ns+<?xml version='1.0' encoding='iso8859'?><a>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbscccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc</a>r�rF�
rTT�)rrrurRrrpr�rvr�rr2r�)rrxry�xml3r�is      r�test_disabling_bufferz(ChardataBufferTest.test_disabling_buffer>s���J����$���#�%�%��&*�&;��#����!�������+�T�2�2�2�������T�5�!�!�!�����+�T�2�2�2�������#�#�#��������+�,�,�,�����+�T�2�2�2��r���	&�	&�A��L�L��u�%�%�%�%�������$�$�$��������*�+�+�+�����+�T�2�2�2����T�4� � � �������$�$�$�$�$rc�&�|xjdz
c_dSr�)rvrds  rruz#ChardataBufferTest.counting_handler\s�����!�����rc��dd|zzdz}tj��}|j|_d|_d|_d|_|�|��|jS)Ns+<?xml version='1.0' encoding='iso8859'?><s>�as</s>r|rr)rrrurRrprrvr�)r�
buffer_lenrXrs    rriz$ChardataBufferTest.small_buffer_test_s`��<�t�j�?P�P�SZ�Z���#�%�%��&*�&;��#�!������������S�����v�
rc��d}d}tj��}|j|_d|_d|_|�|jd��d|_|�|d��|xjdzc_|�|jd��|�|d	��|�|jd��dS)
Ns.<?xml version='1.0' encoding='iso8859'?><a><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa�aaa</s><s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa</s></a>rr|rFr�T�	rrrurRrrpr�rvr�rws    r�test_change_size_1z%ChardataBufferTest.test_change_size_1js���N��8���#�%�%��&*�&;��#����!�������+�T�2�2�2�������T�5�!�!�!����a��������+�T�2�2�2����T�4� � � �������#�#�#�#�#rc��d}d}tj��}|j|_d|_d|_|�|jd��d|_|�|d��|jdz|_|�|jd��|�|d	��|�|jd
��dS)Ns.<?xml version='1.0' encoding='iso8859'?><a>a<s>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar�rr�rFrr|TrVr�rws    r�test_change_size_2z%ChardataBufferTest.test_change_size_2zs���O��8���#�%�%��&*�&;��#����!�������+�T�2�2�2�������T�5�!�!�!�#�/�1�4�������+�T�2�2�2����T�4� � � �������#�#�#�#�#rN)
r6r7r8�__doc__rjrmrsrzr�rurir�r�r9rrrfrfs���������:�:�:�:�:�:�
'�
'�
'�$�$�$�.%�%�%�<���	�	�	�$�$�$� $�$�$�$�$rrfc��eZdZd�Zd�ZdS)�MalformedInputTestc��d}tj��}	|�|d��|���dS#tj$r.}|�t
|��d��Yd}~dSd}~wwxYw)Ns
Tz unclosed token: line 2, column 0)rrr�r��
ExpatErrorr�r��rrXrr�s    rrzMalformedInputTest.test1�s������#�%�%��	I��L�L��d�#�#�#��I�I�K�K�K�K�K����	I�	I�	I����S��V�V�%G�H�H�H�H�H�H�H�H�H�����	I���s�*A�B�#A;�;Bc���d}tj��}d}|�tj|��5|�|d��ddd��dS#1swxYwYdS)Ns<?xml version…='1.0'?>
z3XML declaration not well-formed: line 1, column \d+T)rr�assertRaisesRegexr�r�)rrXr�err_patterns    rrzMalformedInputTest.test2�s���2���#�%�%��L��
�
#�
#�E�$4�k�
B�
B�	$�	$��L�L��d�#�#�#�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$�	$����	$�	$�	$�	$�	$�	$s�A�A �#A N)r6r7r8rrr9rrr�r��s5������I�I�I�$�$�$�$�$rr�c��eZdZd�Zd�ZdS)�ErrorMessageTestc��|�tjtjtjtj��dSr?)r�r�XML_ERROR_SYNTAX�messages�codesrs r�
test_codeszErrorMessageTest.test_codes�sB������0�����f�6M�)N�O�	Q�	Q�	Q�	Q�	Qrc�*�d}tj��}	|�|d��|���dS#tj$r@}|�|jtjtj	��Yd}~dSd}~wwxYw)N�<T)
rrr�r�r�r�r�rr��XML_ERROR_UNCLOSED_TOKENr�s    r�test_expaterrorz ErrorMessageTest.test_expaterror�s������#�%�%��	L��L�L��d�#�#�#��I�I�K�K�K�K�K����	L�	L�	L����Q�V�#�\�&�*I�J�
L�
L�
L�
L�
L�
L�
L�
L�
L�����	L���s�*A�B�5B
�
BN)r6r7r8r�r�r9rrr�r��s:������Q�Q�Q�
L�L�L�L�Lrr�c��eZdZdZd�Zd�ZdS)�ForeignDTDTestszE
    Tests for the UseForeignDTD method of expat parser objects.
    c�
��g��fd�}tj��}|�d��|�tj��||_|�d��|��dg��g�dd�<tj��}|���|�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.
        c�6����||f��dSr�r��rwri�	system_id�	public_id�handler_call_argss    �r�resolve_entityz<ForeignDTDTests.test_use_foreign_dtd.<locals>.resolve_entity��!����$�$�i��%;�<�<�<��1rTs<?xml version='1.0'?><element/>)NNN�rr�
UseForeignDTD�SetParamEntityParsing�XML_PARAM_ENTITY_PARSING_ALWAYSrzr�r��rr�rr�s   @r�test_use_foreign_dtdz$ForeignDTDTests.test_use_foreign_dtd�s�����	�	�	�	�	��#�%�%�����T�"�"�"��$�$�U�%J�K�K�K�*8��'����7�8�8�8����*�\�N�;�;�;� "��!�!�!���#�%�%���������$�$�U�%J�K�K�K�*8��'����7�8�8�8����*�\�N�;�;�;�;�;rc�
��g��fd�}tj��}|�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.
        c�6����||f��dSr�r�r�s    �rr�zCForeignDTDTests.test_ignore_use_foreign_dtd.<locals>.resolve_entity�r�rTs@<?xml version='1.0'?><!DOCTYPE foo PUBLIC 'bar' 'baz'><element/>)�bar�bazNr�r�s   @r�test_ignore_use_foreign_dtdz+ForeignDTDTests.test_ignore_use_foreign_dtd�s������	�	�	�	�	��#�%�%�����T�"�"�"��$�$�U�%J�K�K�K�*8��'����O�	Q�	Q�	Q����*�^�,<�=�=�=�=�=rN)r6r7r8r�r�r�r9rrr�r��s<��������<�<�<�8>�>�>�>�>rr��__main__) �iorr+r>r=r;�unittestr8�xml.parsersr�xml.parsers.expatr�test.supportrrr�TestCaser
rQr;r�r�r�r'rCrZrfr�r�r�r6�mainr9rr�<module>r�s ��������	�	�	�	�����
�
�
�
�������������������$�$�$�$�$�$�9�9�9�9�9�9�9�9�9�9�%G�%G�%G�%G�%G�x�(�%G�%G�%G�P��6|;�|;�|;�|;�|;��!�|;�|;�|;�| 3� 3� 3� 3� 3�X�.� 3� 3� 3�F!/�!/�!/�!/�!/�H�%�!/�!/�!/�H\=�\=�\=�\=�\=�X�&�\=�\=�\=�@ O� O� O� O� O�8�,� O� O� O�H%�%�%�%�%�8�$�%�%�%�>J�J�J�J�J�H�%�J�J�J�&x$�x$�x$�x$�x$��*�x$�x$�x$�t$�$�$�$�$��*�$�$�$�$L�L�L�L�L�x�(�L�L�L�"1>�1>�1>�1>�1>�h�'�1>�1>�1>�h�z����H�M�O�O�O�O�O��r