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.10/test/__pycache__/test_sax.cpython-310.opt-1.pyc
o

�ih��	@sRddlmZmZmZmZmZddlZddlmZze�Wney)e�d��wddl	m
Z
mZmZm
Z
mZmZddlmZddlmZmZmZddlmZmZmZdd	lmZmZddlZddlZddl Z ddl!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e0y�e�d��wdZ1ej2j3s�z
e(j4�/e"�5��Wn
e6e7fy�dZ1Ynwe�8e1d�Z9dZ:Gdd�dej;�Z<dDdd�Z=dEdd�Z>dEdd �Z?Gd!d"�d"ej;�Z@Gd#d$�d$ej;�ZAGd%d&�d&ej;�ZBGd'd(�d(ej;�ZCGd)d*�d*�ZDGd+d,�d,eDej;�ZEGd-d.�d.eDej;�ZFGd/d0�d0eF�ZGGd1d2�d2eDej;�ZHGd3d4�d4eDej;�ZId5ZJGd6d7�d7ej;�ZKeLe.d8��ZMeM�N�ZOWd�n	1�slwYGd9d:�d:e<�ZPGd;d<�d<ej;�ZQGd=d>�d>e<�ZRGd?d@�d@ej;�ZSGdAdB�dBej;�ZTeUdCk�r�e�V�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�*/usr/local/lib/python3.10/test/test_sax.py�verify_empty_attrs7s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_nsattrsHsz 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_wattrYszXmlTestBase.verify_attrs_wattrN)�__name__�
__module__�__qualname__r8r;r?r6r6r6r7r6srcCs|dur|Sd||fS�N�&<?xml version="1.0" encoding="%s"?>
%sr6)�doc�encodingr6r6r7�xml_strksrG.cCs|dur|}t||��|d�S)N.�xmlcharrefreplace)rG�encode)rErF�
decl_encodingr6r6r7�	xml_bytespsrKcCsR|dur|}ttd|dd��}|�t||��Wd�dS1s"wYdS)N.�wrH)rF�errors)�openr�writerG)rErFrJ�fr6r6r7�
make_xml_fileus
"�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�tearDownszParseTest.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_all2�
�zSaxutilsTest.test_escape_allcC�|�tdddi�d�dS�NuHei på deg�åz&aring;zHei p&aring; degr�rUr6r6r7�test_escape_extra6��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_extraBr�z SaxutilsTest.test_unescape_extracCs|�tdddi�d�dS)Nz	&amp;foo;z&foo;Zsplatr�rUr6r6r7�test_unescape_amp_extraFsz$SaxutilsTest.test_unescape_amp_extracCr�)Nr�z"Donald Duck &amp; Co"�r)rrUr6r6r7�test_quoteattr_basicJr�z!SaxutilsTest.test_quoteattr_basiccCr�)NzIncludes "double" quotesz'Includes "double" quotes'r�rUr6r6r7�test_single_quoteattrNr�z"SaxutilsTest.test_single_quoteattrcCr�)NzIncludes 'single' quotesz"Includes 'single' quotes"r�rUr6r6r7�test_double_quoteattrRr�z"SaxutilsTest.test_double_quoteattrcCr�)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes"r�rUr6r6r7�test_single_double_quoteattrVr�z)SaxutilsTest.test_single_double_quoteattrcCstdg�}dS)Nzxml.parsers.no_such_parserr�)r5r�r6r6r7�test_make_parser[szSaxutilsTest.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�setUpcs"�zPrepareInputSourceTest.setUpcCst�|j�dSrS)rrTr�rUr6r6r7rVhszPrepareInputSourceTest.tearDowncC�td�S�NsThis is a byte stream.)rrUr6r6r7�make_byte_streamk�z'PrepareInputSourceTest.make_byte_streamcCr��NzThis is a character stream.)rrUr6r6r7�make_character_streamnr�z,PrepareInputSourceTest.make_character_streamcCs&|�|�|�|��|�|��dSrS)ZassertIsNotNoner)�read�close)r5�stream�contentr6r6r7�checkContentqs
z#PrepareInputSourceTest.checkContentcC�Bt|j�}|�|���t|�}|�|���|�|��d�dSr�)	rr��setCharacterStreamr�r
�assertIsNone�
getByteStreamr��getCharacterStream�r5�src�prepr6r6r7�test_character_streamws

�z,PrepareInputSourceTest.test_character_streamcCr�r�)	rr�ror�r
r�r�r�r�r�r6r6r7�test_byte_stream�s

�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�as	
	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_unencodable s


�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_empty9r�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_bytesEs

��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_nsWs
�
�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_emptyis
�
�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_1{s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�)�joinrUr6r6r7rZ0�
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�4szStreamWriterXmlgenTest.ioclassracC�d||f�dd�S�NrDr�rHr,r(r6r6r7r�:r-zStreamWriterXmlgenTest.xmlNr*)r@rArBr�r�r6r6r6r7r83sr8c@s(eZdZejdZdd�Zddd�ZdS)	�StreamReaderWriterXmlgenTestz-codecscsDtj�jddddd����fdd�}��|��fdd	�}|�_�S)
NrLr�rHr)rFrM�	bufferingcs���t��j�dSrS)r�rrT�fnamer6�r5r<r6r7�cleanupDsz5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupcs@���t�jd��}|��Wd�S1swYdS�Nrk)r�rN�namer�)rP)r<r6r7rZHs$�z6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalue)r9rNrA�
addCleanuprZ)r5rCrZr6rBr7r�As�
z$StreamReaderWriterXmlgenTest.ioclassracCr=r>r,r(r6r6r7r�Pr-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_basicXs



z#XMLFilterBaseTest.test_filter_basicN)r@rArBrKr6r6r6r7rHWsrHrkc@s"eZdZdd�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�Zd7d8�Z d9d:�Z!ed;d<��Z"d=S)>�ExpatReaderTestcCsft�}t�}t|�}|�|�ttd��
}|�|�Wd�n1s$wY|�|��t	�dSrD�
rrrrrN�TEST_XMLFILErXr)rZ�xml_test_out�r5rr\�xmlgenrPr6r6r7�test_expat_binary_filets
�z&ExpatReaderTest.test_expat_binary_filecCsjt�}t�}t|�}|�|�ttddd��
}|�|�Wd�n1s&wY|�|��t	�dS�NZrtrarfrMrPr6r6r7�test_expat_text_files
�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_wattr5r�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_wattrIs&
�z(ExpatReaderTest.test_expat_nsattrs_wattrcCs<t�}t�}t|�}|�|�|�t�|�|��t�dSrS)	rrrrrXrNr)rZrO�r5rr\rQr6r6r7�test_expat_inpsource_filenamebs

z-ExpatReaderTest.test_expat_inpsource_filenamecCs@t�}t�}t|�}|�|�|�tt��|�|��t	�dSrS)
rrrrrXrrNr)rZrOr�r6r6r7�test_expat_inpsource_sysidls
z*ExpatReaderTest.test_expat_inpsource_sysidcCs`tj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|��|�
|��t�dSrS)rrUrVrWrNrFrTrrrrrXrr)rZrOrXr6r6r7�#test_expat_inpsource_sysid_nonasciivs
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_resetcCs�tjdkr|�dtj�d��t�}t|�}t�}|�|�dD]}|�|�q |�|�	�t
�|�|j�
��|��|�|j�
��|�|�	�t
d�|�d�|��|�|�	�t
d�dS)N���rzExpat z" does not support reparse deferral�z<doc�>�<doc>r�r�)�pyexpat�version_infoZskipTestrrrrrtr)rZrIrv�_parser�GetReparseDeferralEnabled�flushr��r5r\rQr�chunkr6r6r7�#test_flush_reparse_deferral_enabled�s 


z3ExpatReaderTest.test_flush_reparse_deferral_enabledcCs�t�}t|�}t�}|�|�dD]}|�|�qtjdkr$|j�d�|�	|�
�t�|�|j�
��|��|�|j�
��|�	|�
�td�|�d�|��|�	|�
�td�dS)Nr�r�Fr�r�r�)rrrrrtr�r�r�ZSetReparseDeferralEnabledr)rZrIr"r�r�r�r�r6r6r7�$test_flush_reparse_deferral_disabled�s 


z4ExpatReaderTest.test_flush_reparse_deferral_disabledcCsnt�}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_withinfos

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

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�r�r�r6r6r6r7rLpsD









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_incomplete2s
z(ErrorReportingTest.test_expat_incompletecCsdttdd|�dd���ttdd|�dd���ttdd|�dd���ttdd|�dd���dS)N�messager<)�strr�DummyLocatorrUr6r6r7�test_sax_parse_exception_str9s
�
�
�

�z/ErrorReportingTest.test_sax_parse_exception_strc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zErrorReportingTest.DummyLocatorcCs||_||_dSrS)�_lineno�_colno)r5�lineno�colnor6r6r7rcLrdz(ErrorReportingTest.DummyLocator.__init__cCr/)NZpubidr6rUr6r6r7r�Pr2z+ErrorReportingTest.DummyLocator.getPublicIdcCr/)NZsysidr6rUr6r6r7r�Sr2z+ErrorReportingTest.DummyLocator.getSystemIdcC�|jSrS)r�rUr6r6r7r�V�z-ErrorReportingTest.DummyLocator.getLineNumbercCr�rS)r�rUr6r6r7r�Yr�z/ErrorReportingTest.DummyLocator.getColumnNumberN)r@rArBrcr�r�r�r�r6r6r6r7r�Ksr�N)r@rArBr�r�r�r�r6r6r6r7r�$s

r�c@r)
�
XmlReaderTestcCs|�ti��dSrS)r8rrUr6r6r7�test_attrs_emptye�zXmlReaderTest.test_attrs_emptycCs|�tddi��dS)Nrr=)r?rrUr6r6r7�test_attrs_wattrhrhzXmlReaderTest.test_attrs_wattrcCs|�tii��dSrS)r;rrUr6r6r7�test_nsattrs_emptykr�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_wattrns$
�z XmlReaderTest.test_nsattrs_wattrN)r@rArBr�r�r�r�r6r6r6r7r�bs
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.">
r�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��st��������
��
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��s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).)WrYrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr	r
rrr
Zxml.sax.expatreaderrZxml.sax.handlerrrrZxml.sax.xmlreaderrrr�iorrr9Zos.pathrZr�rV�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
�7>!Y
<�