Uname: Linux web3.us.cloudlogin.co 5.10.226-xeon-hst #2 SMP Fri Sep 13 12:28:44 UTC 2024 x86_64
Software: Apache
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.210.96.117
Your Ip: 13.59.27.102
User: edustar (269686) | Group: tty (888)
Safe Mode: OFF
Disable Function:
NONE

name : test_sax.cpython-310.pyc
o

ab��	@sJddlmZmZmZmZmZddlZddlmZze�Wney)e�d��wddl	m
Z
mZmZm
Z
mZmZddlmZddlmZmZmZddlmZmZmZdd	lmZmZddlZddlZddl Z ddl!Z!dd
l"m#Z#ddl$Z%ddl&m'Z'ddl&m(Z(dd
l)m*Z*m+Z+e(ddd�Z,e(ddd�Z-ze,�.d�e-�.d�Wne/y�e�d��wdZ0ej1j2s�z
e'j3�.e!�4��Wn
e5e6fy�dZ0Ynwe�7e0d�Z8dZ9Gdd�dej:�Z;dDdd�Z<dEdd�Z=dEdd �Z>Gd!d"�d"ej:�Z?Gd#d$�d$ej:�Z@Gd%d&�d&ej:�ZAGd'd(�d(ej:�ZBGd)d*�d*�ZCGd+d,�d,eCej:�ZDGd-d.�d.eCej:�ZEGd/d0�d0eE�ZFGd1d2�d2eCej:�ZGGd3d4�d4eCej:�ZHd5ZIGd6d7�d7ej:�ZJeKe-d8��ZLeL�M�ZNWd�n	1�shwYGd9d:�d:e;�ZOGd;d<�d<ej:�ZPGd=d>�d>e;�ZQGd?d@�d@ej:�ZRGdAdB�dBej:�ZSeTdCk�r�e�U�dSdS)F�)�make_parser�ContentHandler�SAXException�SAXReaderNotAvailable�SAXParseExceptionN)�mockzno XML parsers available)�XMLGenerator�escape�unescape�	quoteattr�
XMLFilterBase�prepare_input_source)�
create_parser)�feature_namespaces�feature_external_ges�LexicalHandler)�InputSource�AttributesImpl�AttributesNSImpl)�BytesIO�StringIO)�URLError)�	os_helper)�findfile)�FakePath�TESTFNztest.xmlZxmltestdata)Zsubdirztest.xml.out�utf-8z!filename is not encodable to utf8TFz$Requires non-ascii filenames supportz%http://www.python.org/xml-ns/saxtest/c@�$eZdZdd�Zdd�Zdd�ZdS)�XmlTestBasecCs|�t|jd�|�t|jd�|�t|jd�|�t|jd�|�t|jd�|�|��d�|�|�	�g�|�|�
�g�|�t|�d�|�d|�|�t
|���g�|�|�d�d�|�|�dd�d�|�t
|���g�|�t
|���g�dS)N�attrr�attrs�)�assertRaises�KeyError�getValue�getValueByQName�getNameByQName�getQNameByName�__getitem__�assertEqual�	getLength�getNames�	getQNames�len�assertNotIn�list�keys�get�items�values��selfr �r6�6/usr/local/python-3.10/lib/python3.10/test/test_sax.py�verify_empty_attrs6szXmlTestBase.verify_empty_attrscCs|�t|jtdf�|�t|jd�|�t|jd�|�t|jtdf�|�t|jtdf�|�|�	�d�|�|�
�g�|�|��g�|�t|�d�|�
tdf|�|�t|���g�|�|�tdf�d�|�|�tdfd�d�|�t|���g�|�t|���g�dS)Nr�ns:attrrr!)r"r#r$�ns_urir%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4r6r6r7�verify_empty_nsattrsGsz XmlTestBase.verify_empty_nsattrscCs|�|��d�|�|��dg�|�|��dg�|�t|�d�|�d|�|�t|���dg�|�|�d�d�|�|�dd�d�|�t|�	��dg�|�t|�
��dg�|�|�d�d�|�|�d�d�|�|�
d�d�|�|dd�|�|�d�d�dS)N�r�valr!)rr=)r)r*r+r,r-�assertInr/r0r1r2r3r$r%r&r'r4r6r6r7�verify_attrs_wattrXszXmlTestBase.verify_attrs_wattrN)�__name__�
__module__�__qualname__r8r;r?r6r6r6r7r5srcCs|dur|Sd||fS�N�&<?xml version="1.0" encoding="%s"?>
%sr6)�doc�encodingr6r6r7�xml_strjsrG.cCs|dur|}t||��|d�S)N.�xmlcharrefreplace)rG�encode)rErF�
decl_encodingr6r6r7�	xml_bytesosrKcCsR|dur|}ttd|dd��}|�t||��Wd�dS1s"wYdS)N.�wrH)rF�errors)�openr�writerG)rErFrJ�fr6r6r7�
make_xml_filets
"�rQc@s`eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�	ParseTestu,<money value="$£€𐅻">$£€𐅻</money>cCst�t�dS�N)r�unlinkr�r5r6r6r7�tearDown~szParseTest.tearDowncC�>ddlm}t�}||t|d��|�|��t|jd��dS)Nr)�parser)�xml.saxrXrrr)�getvaluerG�data)r5rPrX�resultr6r6r7�check_parse��zParseTest.check_parsec	Cs�d}|D]Z}|�tt|j|���t|j|�ttd|d��
}|�|�Wd�n1s.wY|�t|j��t|j|d�ttd|d��
}|�|�Wd�n1sYwYqdS)N��us-ascii�
iso-8859-1r�utf-16�utf-16le�utf-16be�r�rF)r]rrGr[rQrNr�r5�	encodingsrFrPr6r6r7�test_parse_text�s����zParseTest.test_parse_textc	Cs�d}|D]d}|�tt|j|���t|j|�|�t�ttd��
}|�|�Wd�n1s1wY|�tt|j|d���t|j|d�|�t�ttd��
}|�|�Wd�n1scwYq|�tt|jdd���t|jdd�|�t�ttd��
}|�|�Wd�n1s�wY|�tt|jdd���t|jdd�|�t�ttd��
}|�|�Wd�n1s�wY|�tt|jd���t|jd�|�t�ttd��
}|�|�Wd�n1s�wY|�t��|�tt|jdd���Wd�n	1�swYt|jdd�|�t��
|�t�Wd�n	1�s<wYttd��,}|�t��
|�|�Wd�n1�s]wYWd�dSWd�dS1�svwYdS)N�r`rrbrcrd�rb�	utf-8-sigrra)	r]rrKr[rQrrNr"rrgr6r6r7�test_parse_bytes�s^
�
��
�
�
��� ��$�zParseTest.test_parse_bytescCs t|jdd�|�tt��dS)Nr)rQr[r]rrrUr6r6r7�test_parse_path_object�sz ParseTest.test_parse_path_objectcCsbt|jdd�ttd��}t�}|�|�|�d�|�|�Wd�dS1s*wYdS)Nrark)rQr[rNrr�
setByteStreamZsetEncodingr])r5rP�inputr6r6r7�test_parse_InputSource�s

"�z ParseTest.test_parse_InputSourcec	s�t�d���fdd�}tjd|d��0t|jdd�|�t��
|�t�Wd�n1s/wY|�	�j
�Wd�dS1sEwYdS)Ncs�|���SrSr6)�args�Zbuiltin_open�fileobjr6r7�	mock_open�sz4ParseTest.test_parse_close_source.<locals>.mock_openzxml.sax.saxutils.open)Zside_effectra)rNrZpatchrQr[r"rr]r�
assertTrue�closed)r5rur6rsr7�test_parse_close_source�s�"�z!ParseTest.test_parse_close_sourcecCrW)Nr)�parseStringr)rYryrrr)rZrGr[)r5�sryr\r6r6r7�check_parseString�r^zParseTest.check_parseStringcCs0d}|D]}|�t|j|��q|�|j�dS)Nr_)r{rGr[�r5rhrFr6r6r7�test_parseString_text�szParseTest.test_parseString_textcCs�d}|D]}|�t|j|��|�t|j|d��q|�t|jdd��|�t|jdd��|�t|jd��|�t��|�t|jdd��Wd�dS1sRwYdS)Nrjrlrra)r{rKr[r"rr|r6r6r7�test_parseString_bytes�s"�z ParseTest.test_parseString_bytesN)r@rArBr[rVr]rirmrnrqrxr{r}r~r6r6r6r7rR{s
*	rRc@�,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�MakeParserTestcCspddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}dS)Nr�r)rYr)r5r�pr6r6r7�test_make_parser2�s
z MakeParserTest.test_make_parser2cCsHtdg�td�tdh�ttdh��tddi�ttdg��dS)N�module)r��r�	frozenset�iterrUr6r6r7�test_make_parser3	s

z MakeParserTest.test_make_parser3cCs>tg�tt��tt��tt��ti�ttg��dSrS)r�tuple�setr�r�rUr6r6r7�test_make_parser4s


z MakeParserTest.test_make_parser4cCsRtddg�td�tddh�ttddh��tddd��ttddg��dS)N�module1�module2)r�r�r�rUr6r6r7�test_make_parser5sz MakeParserTest.test_make_parser5N)r@rArBr�r�r�r�r6r6r6r7r��s

	r�c@�leZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�SaxutilsTestcC�|�td�d�dS)N�Donald Duck & Co�Donald Duck &amp; Co�r)r	rUr6r6r7�test_escape_basic.�zSaxutilsTest.test_escape_basiccCr�)N�<Donald Duck & Co>�&lt;Donald Duck &amp; Co&gt;r�rUr6r6r7�test_escape_all1�
�zSaxutilsTest.test_escape_allcC�|�tdddi�d�dS�NuHei på deg�åz&aring;zHei p&aring; degr�rUr6r6r7�test_escape_extra5��zSaxutilsTest.test_escape_extracCr�)Nr�r��r)r
rUr6r6r7�test_unescape_basic:r�z SaxutilsTest.test_unescape_basiccCr�)Nr�r�r�rUr6r6r7�test_unescape_all=r�zSaxutilsTest.test_unescape_allcCr�r�r�rUr6r6r7�test_unescape_extraAr�z SaxutilsTest.test_unescape_extracCs|�tdddi�d�dS)Nz	&amp;foo;z&foo;Zsplatr�rUr6r6r7�test_unescape_amp_extraEsz$SaxutilsTest.test_unescape_amp_extracCr�)Nr�z"Donald Duck &amp; Co"�r)rrUr6r6r7�test_quoteattr_basicIr�z!SaxutilsTest.test_quoteattr_basiccCr�)NzIncludes "double" quotesz'Includes "double" quotes'r�rUr6r6r7�test_single_quoteattrMr�z"SaxutilsTest.test_single_quoteattrcCr�)NzIncludes 'single' quotesz"Includes 'single' quotes"r�rUr6r6r7�test_double_quoteattrQr�z"SaxutilsTest.test_double_quoteattrcCr�)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes"r�rUr6r6r7�test_single_double_quoteattrUr�z)SaxutilsTest.test_single_double_quoteattrcCstdg�}dS)Nzxml.parsers.no_such_parserr�)r5r�r6r6r7�test_make_parserZszSaxutilsTest.test_make_parserN)r@rArBr�r�r�r�r�r�r�r�r�r�r�r�r6r6r6r7r�,sr�c@r�)�PrepareInputSourceTestcCsDtj|_t|jd��}|�d�Wd�dS1swYdS)NrLzThis was read from a file.)rr�filerNrO)r5�tmpr6r6r7�setUpbs"�zPrepareInputSourceTest.setUpcCst�|j�dSrS)rrTr�rUr6r6r7rVgszPrepareInputSourceTest.tearDowncC�td�S�NsThis is a byte stream.)rrUr6r6r7�make_byte_streamj�z'PrepareInputSourceTest.make_byte_streamcCr��NzThis is a character stream.)rrUr6r6r7�make_character_streammr�z,PrepareInputSourceTest.make_character_streamcCs&|�|�|�|��|�|��dSrS)ZassertIsNotNoner)�read�close)r5�stream�contentr6r6r7�checkContentps
z#PrepareInputSourceTest.checkContentcC�Bt|j�}|�|���t|�}|�|���|�|��d�dSr�)	rr��setCharacterStreamr�r
�assertIsNone�
getByteStreamr��getCharacterStream�r5�src�prepr6r6r7�test_character_streamvs

�z,PrepareInputSourceTest.test_character_streamcCr�r�)	rr�ror�r
r�r�r�r�r�r6r6r7�test_byte_streams

�z'PrepareInputSourceTest.test_byte_streamcCs4t|j�}t|�}|�|���|�|��d�dS�NsThis was read from a file.)rr�r
r�r�r�r�r�r6r6r7�test_system_id�s

�z%PrepareInputSourceTest.test_system_idcCs,t|j�}|�|���|�|��d�dSr�)r
r�r�r�r�r��r5r�r6r6r7�test_string�s


�z"PrepareInputSourceTest.test_stringcCs0tt|j��}|�|���|�|��d�dSr�)r
rr�r�r�r�r�r�r6r6r7�test_path_objects�s

�z(PrepareInputSourceTest.test_path_objectscC�.t|���}|�|���|�|��d�dSr�)r
r�r�r�r�r�r�r6r6r7�test_binary_file��

�z'PrepareInputSourceTest.test_binary_filecCr�r�)r
r�r�r�r�r�r�r6r6r7�test_text_file�r�z%PrepareInputSourceTest.test_text_fileN)r@rArBr�rVr�r�r�r�r�r�r�r�r�r�r6r6r6r7r�`s	
	r�c@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/d0�Zd1S)2�
XmlgenTestcCsP|��}t|�}|��|�di�|�d�|��|�|��|�d��dS)NrE�<doc></doc>�	�ioclassr�
startDocument�startElement�
endElement�endDocumentr)rZ�xml�r5r\�genr6r6r7�test_xmlgen_basic�s
zXmlgenTest.test_xmlgen_basiccCsT|��}t|dd�}|��|�di�|�d�|��|�|��|�d��dS)NT�Zshort_empty_elementsrE�<doc/>r�r�r6r6r7�test_xmlgen_basic_empty�s
z"XmlgenTest.test_xmlgen_basic_emptycC�Z|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NrE�huhei�<doc>huhei</doc>�
r�rr�r��
charactersr�r�r)rZr�r�r6r6r7�test_xmlgen_content��

zXmlgenTest.test_xmlgen_contentcC�^|��}t|dd�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NTr�rEr�r�r�r�r6r6r7�test_xmlgen_content_empty��

z$XmlgenTest.test_xmlgen_content_emptycCs\|��}t|�}|��|�dd�|�di�|�d�|��|�|��|�	d��dS)N�testr[rEz<?test data?><doc></doc>)
r�rr�ZprocessingInstructionr�r�r�r)rZr�r�r6r6r7�test_xmlgen_pi�s

�zXmlgenTest.test_xmlgen_picCr�)NrEz<huhei&z<doc>&lt;huhei&amp;</doc>r�r�r6r6r7�test_xmlgen_content_escape�s


�z%XmlgenTest.test_xmlgen_content_escapecCs�|��}t|�}|��|�dddi�|�dddi�|�d�|�dddi�|�d�|�dddi�|�d�|�d�|��|�|��|�d��dS)	NrE�a�"�e�'z'"z

	zK<doc a='"'><e a="'"></e><e a="'&quot;"></e><e a="&#10;&#13;&#9;"></e></doc>r�r�r6r6r7�test_xmlgen_attr_escape�s




�z"XmlgenTest.test_xmlgen_attr_escapecCstd}|D]3}|��}t||d�}|��|�dddi�|�d�|�d�|��|�|��|j	d|d��qdS)N�	ziso-8859-15rrlrbrdrczutf-32zutf-32bezutf-32lerfrEr��€u<doc a="€">€</doc>r��r5rhrFr\r�r6r6r7�test_xmlgen_encodings


��zXmlgenTest.test_xmlgen_encodingcCsf|��}t|dd�}|��|�dddi�|�d�|�d�|��|�|��|j	ddd��dS)N�asciirfrEr�r�z<doc a="&#8364;">&#8364;</doc>r�r�r6r6r7�test_xmlgen_unencodables


�z"XmlgenTest.test_xmlgen_unencodablecCr�)NrE� �<doc> </doc>�
r�rr�r��ignorableWhitespacer�r�r)rZr�r�r6r6r7�test_xmlgen_ignorable,r�z XmlgenTest.test_xmlgen_ignorablecCr�)NTr�rEr�r�r�r�r6r6r7�test_xmlgen_ignorable_empty8r�z&XmlgenTest.test_xmlgen_ignorable_emptycCs�d}|D]>}|��}t||d�}|��|�dddi�|�d�|��|�d�|��|�d�|��|�	|�
�|jd|d��qdS)Nr�rfrEr�r�r�u<doc a="€">€ </doc>)r�rr�r�r�rIr�r�r�r)rZr�r�r6r6r7�test_xmlgen_encoding_bytesDs

��z%XmlgenTest.test_xmlgen_encoding_bytescCs�|��}t|�}|��|�dt�|�tdfdi�|�ddi�|�dd�|�tdfd�|�d�|��|�	|�
�|�dt��dS)N�ns1rE�ns1:doc�NZudocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>�r�rr��startPrefixMappingr:�startElementNS�endElementNS�endPrefixMappingr�r)rZr�r�r6r6r7�test_xmlgen_nsVs
�
�zXmlgenTest.test_xmlgen_nscCs�|��}t|dd�}|��|�dt�|�tdfdi�|�ddi�|�dd�|�tdfd�|�d�|��|�	|�
�|�dt��dS)NTr�r�rEr�r�z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>r�r�r6r6r7�test_xmlgen_ns_emptyhs
�
�zXmlgenTest.test_xmlgen_ns_emptycCsX|��}t|�}|��|�ddddi�|�dd�|��|�|��|�d��dS)N�Nr�r��N�b�cz
<a b="c"></a>�	r�rr�rrr�r)rZr�r�r6r6r7�test_1463026_1zszXmlgenTest.test_1463026_1cCs\|��}t|dd�}|��|�ddddi�|�dd�|��|�|��|�d��dS)NTr�rr�rrz
<a b="c"/>r	r�r6r6r7�test_1463026_1_empty�szXmlgenTest.test_1463026_1_emptycCsj|��}t|�}|��|�dd�|�ddi�|�dd�|�d�|��|�|�	�|�
d��dS)N�qux�rr�r�z<a xmlns="qux"></a>�r�rr�r�rrrr�r)rZr�r�r6r6r7�test_1463026_2�s
zXmlgenTest.test_1463026_2cCsn|��}t|dd�}|��|�dd�|�ddi�|�dd�|�d�|��|�|�	�|�
d��dS)NTr�rr
r�z<a xmlns="qux"/>rr�r6r6r7�test_1463026_2_empty�s
zXmlgenTest.test_1463026_2_emptycCsn|��}t|�}|��|�dd�|�ddddi�|�dd�|�d�|��|�|�	�|�
d��dS)N�myrr
r�rrz"<my:a xmlns:my="qux" b="c"></my:a>rr�r6r6r7�test_1463026_3�s

�zXmlgenTest.test_1463026_3cCsr|��}t|dd�}|��|�dd�|�ddddi�|�dd�|�d�|��|�|�	�|�
d	��dS)
NTr�rrr
r�rrz<my:a xmlns:my="qux" b="c"/>rr�r6r6r7�test_1463026_3_empty�s

�zXmlgenTest.test_1463026_3_emptycCsXtd�}t�}|�td�|��}t|�}|�|�|�|�|�|�	�|�
d��dS)Nzb<?xml version="1.0"?><a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>T�M<a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>)rr�
setFeaturerr�r�setContentHandlerrXr)rZr�)r5Ztest_xml�parserr\r�r6r6r7�test_5027_1�s�


��zXmlgenTest.test_5027_1cCs�|��}t|�}|��|�dd�|�ddi�ddi}|�dd|�|�d	�|�dd�|�dd�|�d�|��|�	|�
�|�d
��dS)Nr��http://example.com/ns)r�g1r)z$http://www.w3.org/XML/1998/namespace�lang�en)r�g2r�Hellor)r�rr�r�rr�rrr�r)rZr�)r5r\r�Z	lang_attrr6r6r7�test_5027_2�s"


��zXmlgenTest.test_5027_2cCs(|��}dd�}||�|�|j�dS)NcSs t|�}|��|�di�dS)NrE)rr�r�)�outr�r6r6r7�func�sz+XmlgenTest.test_no_close_file.<locals>.func)r��assertFalserw)r5r\r!r6r6r7�test_no_close_file�szXmlgenTest.test_no_close_filecCsz|��}t|�}|�dddi�|�d�|�d�|�dddi�|�d�|�|��|�d�t|�d	��d��dS)
NZfoor��1.0rZbarrz2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar>�)	r�rr�r�r�r)rZr�r-r�r6r6r7�test_xmlgen_fragments



�zXmlgenTest.test_xmlgen_fragmentN)r@rArBr�r�r�r�r�r�r�r�r�r�r�r�rrr
rrrrrrrr#r&r6r6r6r7r��s2






	r�c@seZdZeZddd�ZdZdS)�StringXmlgenTestracCsd||fSrCr6�r5rErFr6r6r7r��zStringXmlgenTest.xmlN�ra)r@rArBrr�r�r�r6r6r6r7r's
r'c@seZdZeZddd�ZdS)�BytesXmlgenTestracCsd||f�|d�S)NrDrH�rIr(r6r6r7r��
��zBytesXmlgenTest.xmlNr*)r@rArBrr�r�r6r6r6r7r+sr+c@seZdZGdd�de�ZdS)�WriterXmlgenTestc@s.eZdZejZdZdd�Zdd�Zdd�Z	dS)	zWriterXmlgenTest.ioclassFcC�dS�NTr6rUr6r6r7�seekable(�z!WriterXmlgenTest.ioclass.seekablecCst|�SrS)r-rUr6r6r7�tell+szWriterXmlgenTest.ioclass.tellcCs
d�|�S)N�)�joinrUr6r6r7rZ/�
z!WriterXmlgenTest.ioclass.getvalueN)
r@rArBr/�appendrOrwr1r3rZr6r6r6r7r�$sr�N)r@rArBr/r�r6r6r6r7r.#sr.c@seZdZdd�Zddd�ZdS)�StreamWriterXmlgenTestcCs"t�}t�d�|d�}|j|_|S)Nr�rH)r�codecs�	getwriterrZ)r5�raw�writerr6r6r7r�3szStreamWriterXmlgenTest.ioclassracC�d||f�dd�S�NrDr�rHr,r(r6r6r7r�9r-zStreamWriterXmlgenTest.xmlNr*)r@rArBr�r�r6r6r6r7r82sr8c@s(eZdZejdZdd�Zddd�ZdS)	�StreamReaderWriterXmlgenTestz-codecscsDtj�jddddd����fdd�}��|��fdd	�}|�_�S)
NrLr�rHr)rFrM�	bufferingcs���t��j�dSrS)r�rrT�fnamer6�r5r<r6r7�cleanupCsz5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupcs@���t�jd��}|��Wd�S1swYdS�Nrk)r�rN�namer�)rP)r<r6r7rZGs$�z6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalue)r9rNrA�
addCleanuprZ)r5rCrZr6rBr7r�@s�
z$StreamReaderWriterXmlgenTest.ioclassracCr=r>r,r(r6r6r7r�Or-z StreamReaderWriterXmlgenTest.xmlNr*)r@rArBrrrAr�r�r6r6r6r7r?=s
r?s,<?xml version="1.0" encoding="iso-8859-1"?>
c@�eZdZdd�ZdS)�XMLFilterBaseTestcCspt�}t|�}t�}|�|�|��|�di�|�d�|�d�|�d�|�	�|�
|��td�dS)NrEr�r�s<doc>content </doc>)
rrrrr�r�r�r�r�r�r)rZ�start)r5r\r��filterr6r6r7�test_filter_basicWs



z#XMLFilterBaseTest.test_filter_basicN)r@rArBrKr6r6r6r7rHVsrHrkc@seZdZdd�Zdd�Zedd��Zdd�Zd	d
�ZGdd�d�Z	Gd
d�d�Z
dd�Zdd�Zdd�Z
Gdd�d�Zdd�Zdd�ZGdd�de�Zdd�Zdd �Zd!d"�Zd#d$�Zd%d&�Zd'd(�Zed)d*��Zd+d,�Zd-d.�Zd/d0�Zd1d2�Zd3d4�Zd5d6�Zed7d8��Z d9S):�ExpatReaderTestcCsft�}t�}t|�}|�|�ttd��
}|�|�Wd�n1s$wY|�|��t	�dSrD�
rrrrrN�TEST_XMLFILErXr)rZ�xml_test_out�r5rr\�xmlgenrPr6r6r7�test_expat_binary_filess
�z&ExpatReaderTest.test_expat_binary_filecCsjt�}t�}t|�}|�|�ttddd��
}|�|�Wd�n1s&wY|�|��t	�dS�NZrtrarfrMrPr6r6r7�test_expat_text_file~s
�z$ExpatReaderTest.test_expat_text_filecCsbtj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|d��|�
|��t�dSrD)r�TESTFN_UNICODE�shutil�copyfilerNrFrTrrrrrXrNr)rZrO�r5rArr\rQr6r6r7�test_expat_binary_file_nonascii�s
z/ExpatReaderTest.test_expat_binary_file_nonasciicCspt�t�}t�}t�}t|�}|�|�t|d��
}|�|�Wd�n1s)wY|�	|�
�t�dSrD)�os�fsencoderNrrrrrNrXr)rZrO)r5rArr\rQrPr6r6r7�!test_expat_binary_file_bytes_name�s

�z1ExpatReaderTest.test_expat_binary_file_bytes_namec	Cs�t�}t�}t|�}|�|�ttd��&}t|��ddd��
}|�|�Wd�n1s.wYWd�n1s=wY|�|�	�t
�dS)NrkF)�closefd)rrrrrNrN�filenorXr)rZrO)r5rr\rQrP�f2r6r6r7�test_expat_binary_file_int_name�s
���z/ExpatReaderTest.test_expat_binary_file_int_namec@r)zExpatReaderTest.TestDTDHandlercCsg|_g|_dSrS)�
_notations�	_entitiesrUr6r6r7�__init__��
z'ExpatReaderTest.TestDTDHandler.__init__cCs|j�|||f�dSrS)rar7)r5rE�publicId�systemIdr6r6r7�notationDecl��z+ExpatReaderTest.TestDTDHandler.notationDeclcCs|j�||||f�dSrS)rbr7)r5rErerfZndatar6r6r7�unparsedEntityDecl�sz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r@rArBrcrgrir6r6r6r7�TestDTDHandler�srjc@�eZdZdd�Zdd�ZdS)z"ExpatReaderTest.TestEntityRecordercCs
g|_dSrS)�entitiesrUr6r6r7rc�r6z+ExpatReaderTest.TestEntityRecorder.__init__cCs.|j�||f�t�}|�|�|�|�|SrS)rlr7rZsetPublicId�setSystemId)r5rerf�sourcer6r6r7�
resolveEntity�s


z0ExpatReaderTest.TestEntityRecorder.resolveEntityN)r@rArBrcror6r6r6r7�TestEntityRecorder�srpcCsvt�}|��}|�|�|�d�|�d�|�d�|�d�|�d�|��|�|jdg�|�|jdg�dS)N�<!DOCTYPE doc [
z-  <!ENTITY img SYSTEM "expat.gif" NDATA GIF>
zW  <!NOTATION GIF PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
�]>
r�)�GIFz;-//CompuServe//NOTATION Graphics Interchange Format 89a//ENN)ZimgNz	expat.gifrs)rrjZ
setDTDHandler�feedr�r)rarb)r5r�handlerr6r6r7�test_expat_dtdhandler�s





�z%ExpatReaderTest.test_expat_dtdhandlercCsz|�tjj�t�}|�td�|��}|�|�|�	t
��
|�d�Wd�n1s.wY|�|j
dg�dS)NT�8<!DOCTYPE external SYSTEM "unsupported://non-existing">
)Nzunsupported://non-existing)rF�urllibZrequest�
urlcleanuprrrrp�setEntityResolverr"rrtr)rl�r5rZresolverr6r6r7�test_expat_external_dtd_enabled�s
���z/ExpatReaderTest.test_expat_external_dtd_enabledcCsFt�}|��}|�|�|�d�|�d�|��|�|jg�dS)Nrwz<doc />)rrprzrtr�r)rlr{r6r6r7�test_expat_external_dtd_default�s
�
z/ExpatReaderTest.test_expat_external_dtd_defaultc@rG)z"ExpatReaderTest.TestEntityResolvercCst�}|�td��|S)Ns	<entity/>)rror)r5rerf�inpsrcr6r6r7ro�sz0ExpatReaderTest.TestEntityResolver.resolveEntityN)r@rArBror6r6r6r7�TestEntityResolver�srcCs|t�}|�td�|�|���t�}|�t|��|�d�|�d�|�d�|�d�|�	�|�
|��td�dS)NTrq�#  <!ENTITY test SYSTEM "whatever">
rr�<doc>&test;</doc>s<doc><entity></entity></doc>)
rrrrzrrrrrtr�r)rZrI�r5rr\r6r6r7�!test_expat_entityresolver_enableds




�z1ExpatReaderTest.test_expat_entityresolver_enabledcCs�t�}|�|�t�d�|�|���t�}|�t|��|�	d�|�	d�|�	d�|�	d�|�
�|�|��td�dS)NFrqr�rrr��<doc></doc>)
rr)Z
getFeaturerrzrrrrrtr�rZrIr�r6r6r7�!test_expat_entityresolver_defaults




�z1ExpatReaderTest.test_expat_entityresolver_defaultc@rk)zExpatReaderTest.AttrGatherercCs
||_dSrS��_attrs)r5rEr r6r6r7r�$r6z)ExpatReaderTest.AttrGatherer.startElementcCs
||_dSrSr�)r5rEZqnamer r6r6r7r'r6z+ExpatReaderTest.AttrGatherer.startElementNSN)r@rArBr�rr6r6r6r7�AttrGatherer"sr�cC�:t�}|��}|�|�|�d�|��|�|j�dS)Nr�)rr�rrtr�r8r��r5r�gatherr6r6r7�test_expat_attrs_empty*�

z&ExpatReaderTest.test_expat_attrs_emptycCr�)Nz<doc attr='val'/>)rr�rrtr�r?r�r�r6r6r7�test_expat_attrs_wattr4r�z&ExpatReaderTest.test_expat_attrs_wattrcCs<td�}|��}|�|�|�d�|��|�|j�dS)Nr<r�)rr�rrtr�r;r�r�r6r6r7�test_expat_nsattrs_empty>s

z(ExpatReaderTest.test_expat_nsattrs_emptycCs,td�}|��}|�|�|�dt�|��|j}|�|��d�|�|�	�tdfg�|�
|��gkp<|��dgk�|�t|�d�|�
tdf|�|�|�tdf�d�|�|�tdfd�d�|�t|���tdfdfg�|�t|���dg�|�|�tdf�d�|�|tdfd�dS)Nr<z"<doc xmlns:ns='%s' ns:attr='val'/>rr9r=r!)rr�rrtr:r�r�r)r*r+rvr,r-r>r1r/r2r3r$)r5rr�r r6r6r7�test_expat_nsattrs_wattrHs&
�z(ExpatReaderTest.test_expat_nsattrs_wattrcCs<t�}t�}t|�}|�|�|�t�|�|��t�dSrS)	rrrrrXrNr)rZrO�r5rr\rQr6r6r7�test_expat_inpsource_filenameas

z-ExpatReaderTest.test_expat_inpsource_filenamecCs@t�}t�}t|�}|�|�|�tt��|�|��t	�dSrS)
rrrrrXrrNr)rZrOr�r6r6r7�test_expat_inpsource_sysidks
z*ExpatReaderTest.test_expat_inpsource_sysidcCs`tj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|��|�
|��t�dSrS)rrUrVrWrNrFrTrrrrrXrr)rZrOrXr6r6r7�#test_expat_inpsource_sysid_nonasciius
z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciicCsvt�}t�}t|�}|�|�t�}ttd��}|�|�|�|�Wd�n1s,wY|�	|�
�t�dSrD)rrrrrrNrNrorXr)rZrO�r5rr\rQr~rPr6r6r7� test_expat_inpsource_byte_stream�s

�z0ExpatReaderTest.test_expat_inpsource_byte_streamcCszt�}t�}t|�}|�|�t�}ttddd��}|�|�|�|�Wd�n1s.wY|�	|�
�t�dSrS)rrrrrrNrNr�rXr)rZrOr�r6r6r7�%test_expat_inpsource_character_stream�s

�z5ExpatReaderTest.test_expat_inpsource_character_streamcCsRt�}t|�}t�}|�|�|�d�|�d�|��|�|��td�dS)N�<doc>�</doc>r�)	rrrrrtr�r)rZrI�r5r\rQrr6r6r7�test_expat_incremental�s


z&ExpatReaderTest.test_expat_incrementalcCs�t�}t|�}t�}|�|�|�d�|�d�t�}t|�}|�|�|��|�d�|�d�|�d�|��|�|��t	d�dS)Nr��textr�s<doc>text</doc>)
rrrrrt�resetr�r)rZrIr�r6r6r7�test_expat_incremental_reset�s






z,ExpatReaderTest.test_expat_incremental_resetcCsnt�}t|�}t�}|�|�|�d�|�d�|��|�|��d�|�|��d�|�|�	�d�dS)Nr�r�r<)
rrrrrtr�r)�getSystemId�getPublicId�
getLineNumberr�r6r6r7�test_expat_locator_noinfo�s


z)ExpatReaderTest.test_expat_locator_noinfocCsLt�}t|�}t�}|�|�|�t�|�|��t�|�|��d�dSrS)	rrrrrXrNr)r�r�r�r6r6r7�test_expat_locator_withinfo�s

z+ExpatReaderTest.test_expat_locator_withinfocCsltj}t�t|�|�tj|�t�}t|�}t	�}|�
|�|�|�|�|�
�|�|�|��d�dSrS)rrUrVrWrNrFrTrrrrrXr)r�r�)r5rAr\rQrr6r6r7�$test_expat_locator_withinfo_nonascii�s

z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)!r@rArBrRrT�requires_nonascii_filenamesrYr\r`rjrprvr|r}rr�r�rr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r6r6r6r7rLos@









rLc@s2eZdZdd�Zdd�Zdd�ZGdd�d�Zd	S)
�ErrorReportingTestc
Cs�t�}|�t��t�}|�td��d}|�|�z|�|�|��WdSt	yA}z|�
|��|�WYd}~dSd}~ww)Ns<foo bar foobar>za file name)rrrrrorrmrXZfailrr)r�)r5rrnrEr�r6r6r7�test_expat_inpsource_location�s

��z0ErrorReportingTest.test_expat_inpsource_locationcCsJt�}|�t��|�t|jtd��|�|��d�|�|�	�d�dS)Nz<foo>�r<)
rrrr"rrXrr)�getColumnNumberr�)r5rr6r6r7�test_expat_incomplete�s
z(ErrorReportingTest.test_expat_incompletecCsdttdd|�dd���ttdd|�dd���ttdd|�dd���ttdd|�dd���dS)N�messager<)�strr�DummyLocatorrUr6r6r7�test_sax_parse_exception_strs
�
�
�

�z/ErrorReportingTest.test_sax_parse_exception_strc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zErrorReportingTest.DummyLocatorcCs||_||_dSrS)�_lineno�_colno)r5�lineno�colnor6r6r7rcrdz(ErrorReportingTest.DummyLocator.__init__cCr/)NZpubidr6rUr6r6r7r�r2z+ErrorReportingTest.DummyLocator.getPublicIdcCr/)NZsysidr6rUr6r6r7r� r2z+ErrorReportingTest.DummyLocator.getSystemIdcC�|jSrS)r�rUr6r6r7r�#�z-ErrorReportingTest.DummyLocator.getLineNumbercCr�rS)r�rUr6r6r7r�&r�z/ErrorReportingTest.DummyLocator.getColumnNumberN)r@rArBrcr�r�r�r�r6r6r6r7r�sr�N)r@rArBr�r�r�r�r6r6r6r7r��s

r�c@r)
�
XmlReaderTestcCs|�ti��dSrS)r8rrUr6r6r7�test_attrs_empty2�zXmlReaderTest.test_attrs_emptycCs|�tddi��dS)Nrr=)r?rrUr6r6r7�test_attrs_wattr5rhzXmlReaderTest.test_attrs_wattrcCs|�tii��dSrS)r;rrUr6r6r7�test_nsattrs_empty8r�z XmlReaderTest.test_nsattrs_emptycCsZttdfditdfdi�}|�|��d�|�|��tdfg�|�|��dg�|�t|�d�|�tdf|�|�t|�	��tdfg�|�|�
tdf�d�|�|�
tdfd�d�|�t|���tdfdfg�|�t|���dg�|�|�
tdf�d�|�|�d�d�|�|�d�tdf�|�|tdfd�|�|�tdf�d�dS)Nrr=r9r<r!)rr:r)r*r+r,r-r>r/r0r1r2r3r$r%r&r'r4r6r6r7�test_nsattrs_wattr;s$
�z XmlReaderTest.test_nsattrs_wattrN)r@rArBr�r�r�r�r6r6r6r7r�/s
r�c@rk)�LexicalHandlerTestcCs�d|_d|_d|_d|_d|_d|_t�|_|j�d�	|j|j��|j�d�	|j��|j�d�	|jd	��|j�d
�	|j��|j�d�|j�d�|j�d
�|j�d�|j�d�|j�d�	|jd	��|j�d�	|jd��|j�d�	|jd��|j�d�|j�d�	|j��|j�d�|j�d�|j�d�|j�d�|j�d�	|jd|jd	|jd��|j�d�	|jd��|j�d�	|j��|j�
d	�d|_d|_d|_
d|_d|_d|_d|_g|_dS)Nr$zUTF-8Zwish)Znbsprn�target)zComment in a DTDzReally! You think so?z#<?xml version="{}" encoding="{}"?>
z<!DOCTYPE {} [
z<!-- {} -->
rz,<!ELEMENT {} (to,from,heading,body,footer)>
z<!ELEMENT to (#PCDATA)>
z<!ELEMENT from (#PCDATA)>
z<!ELEMENT heading (#PCDATA)>
z<!ELEMENT body (#PCDATA)>
z<!ELEMENT footer (#PCDATA)>
z<!ENTITY {} "&#xA0;">
z&<!ENTITY {} "Written by: Alexander.">
r<z+<!ENTITY {} "Hope it gets to: Aristotle.">
�rrz<{}>z<to>Aristotle</to>
z<from>Alexander</from>
z <heading>Supplication</heading>
z <body>Teach me patience!</body>
z<footer>&{};&{};&{};</footer>
z</{}>
F)rZspecified_versionZspecified_encoding�specified_doctypeZspecified_entity_names�specified_commentr�	test_datarO�format�seek�versionrFZ
standalone�doctype�publicID�systemID�
end_of_dtd�commentsrUr6r6r7r�Qst��������
��
zLexicalHandlerTest.setUpcCs�Gdd�dt�}t�|_|j�t��|j�d||��t�}|�|j�|j�	|�|�
|j|j�|�
|j�|�
|j�|�|j�|�
t|j�t|j��|�
d|jd�d�|jd�dS)Ncs4eZdZ�fdd�Zdd�Zdd�Zdd�Z�ZS)	z<LexicalHandlerTest.test_handlers.<locals>.TestLexicalHandlerc�t�j|i|��||_dSrS��superrc�test_harness�r5r�rr�kwargs��	__class__r6r7rc��
zELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__cSs||j_||j_||j_dSrS)r�r�r�r�)r5r�r�r�r6r6r7�startDTD�szELexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.startDTDcS�d|j_dSr0)r�r�rUr6r6r7�endDTD�r)zCLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.endDTDcSs|jj�|�dSrS)r�r�r7)r5r�r6r6r7�comment�r�zDLexicalHandlerTest.test_handlers.<locals>.TestLexicalHandler.comment)r@rArBrcr�r�r��
__classcell__r6r6r�r7�TestLexicalHandler�s
r��-http://xml.org/sax/properties/lexical-handlerr�r)rrrrr�setPropertyrr�r�rXr)r�r�r�r�r�rvr�r-r�r�)r5r�rnr6r6r7�
test_handlers�s$��$z LexicalHandlerTest.test_handlersN�r@rArBr�r�r6r6r6r7r�Ps6r�c@rk)�CDATAHandlerTestcCs�d|_g|_|j�d�|j�d�d|_t�|_|j�d�|j�d�|j�|jdd�d��|j�d�|j�d�|j�d	|jd
d�d��|j�d�|j�d
�|j�d�g|_d|_	dS)N)zParseable character dataF)z <> &% - assorted other XML junk.Trz<root_doc>
z<some_pcdata>
�
z</some_pcdata>
z
<some_cdata>
z	<![CDATA[r<z]]>
z</some_cdata>
z</root_doc>
F)
r�specified_charsr7�
char_indexrr�rOr�Zchardata�in_cdatarUr6r6r7r��s"
zCDATAHandlerTest.setUpcCs�Gdd�dt�}Gdd�dt�}t�|_|j�||��|j�d||��t�}|�|j�|j�	|�|�
|j�|�|j
d�dS)Ncs,eZdZ�fdd�Zdd�Zdd�Z�ZS)z:CDATAHandlerTest.test_handlers.<locals>.TestLexicalHandlercr�rSr�r�r�r6r7rc�r�zCCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.__init__cSr�r0�r�r�rUr6r6r7�
startCDATA�r)zECDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.startCDATAcSr�)NFr�rUr6r6r7�endCDATA�r)zCCDATAHandlerTest.test_handlers.<locals>.TestLexicalHandler.endCDATA)r@rArBrcr�r�r�r6r6r�r7r��sr�cs$eZdZ�fdd�Zdd�Z�ZS)z7CDATAHandlerTest.test_handlers.<locals>.TestCharHandlercr�rSr�r�r�r6r7rc�r�z@CDATAHandlerTest.test_handlers.<locals>.TestCharHandler.__init__cSsR|dkr'|j}|j|j}|�|d|�|�|d|j�|jd7_dSdS)Nr�rr<)r�r�r�r)r�)r5r��h�tr6r6r7r��s�zBCDATAHandlerTest.test_handlers.<locals>.TestCharHandler.characters)r@rArBrcr�r�r6r6r�r7�TestCharHandler�sr�r�r�)rrrrrr�rr�r�rXr"r�r)r�)r5r�r�rnr6r6r7r��s
�zCDATAHandlerTest.test_handlersNr�r6r6r6r7r��sr��__main__rS).)VrYrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr	r
rrr
Zxml.sax.expatreaderrZxml.sax.handlerrrrZxml.sax.xmlreaderrrr�iorrr9Zos.pathrZrV�sysZurllib.errorrZurllib.requestrxZtest.supportrrZtest.support.os_helperrrrNZTEST_XMLFILE_OUTrI�UnicodeEncodeErrorZsupports_nonascii_filenames�path�supports_unicode_filenamesrU�getfilesystemencoding�UnicodeError�	TypeErrorZ
skipUnlessr�r:ZTestCaserrGrKrQrRr�r�r�r�r'r+r.r8r?rIrHrNrPr�rOrLr�r�r�r�r@�mainr6r6r6r7�<module>s�

� 

���
5

|54Sc
�>!Y
<�
© 2025 GrazzMean