Server : LiteSpeed
System : Linux server51.dnsbootclub.com 4.18.0-553.62.1.lve.el8.x86_64 #1 SMP Mon Jul 21 17:50:35 UTC 2025 x86_64
User : nandedex ( 1060)
PHP Version : 8.1.33
Disable Function : NONE
Directory :  /opt/cppython/lib/python3.8/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]


Current File : //opt/cppython/lib/python3.8/test/__pycache__/test_sax.cpython-38.opt-1.pyc
U

>��g���	@sddlmZmZmZmZmZddlZddlmZz
e�Wnek
rXe�d��YnXddl	m
Z
mZmZm
Z
mZmZddlmZddlmZmZddlmZmZmZdd	lmZmZddlZddlZddlZddl Z dd
l!m"Z"ddl#m$Z$ddl%m&Z&m'Z'm(Z(m)Z)e&d
dd�Z*e&ddd�Z+ze*�,d�e+�,d�Wn e-k
�rZe�d��YnXdZ.ej/j0�s�ze$j1�,e$j2�Wne3e4fk
�r�dZ.YnXe�5e.d�Z6dZ7Gdd�dej8�Z9dAdd�Z:dBdd�Z;dCdd�Z<Gd d!�d!ej8�Z=Gd"d#�d#ej8�Z>Gd$d%�d%ej8�Z?Gd&d'�d'ej8�Z@Gd(d)�d)�ZAGd*d+�d+eAej8�ZBGd,d-�d-eAej8�ZCGd.d/�d/eC�ZDGd0d1�d1eAej8�ZEGd2d3�d3eAej8�ZFd4ZGGd5d6�d6ej8�ZHeIe+d7��ZJeJ�K�ZLW5QRXGd8d9�d9e9�ZMGd:d;�d;ej8�ZNGd<d=�d=e9�ZOd>d?�ZPeQd@k�reP�dS)D�)�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)�InputSource�AttributesImpl�AttributesNSImpl)�BytesIO�StringIO)�URLError)�support)�findfile�run_unittest�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@s$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�r5�,/opt/cppython/lib/python3.8/test/test_sax.py�verify_empty_attrs2s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.r/r0r1r2r3r5r5r6�verify_empty_nsattrsCsz 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.r/r0r1r2r#r$r%r&r3r5r5r6�verify_attrs_wattrTszXmlTestBase.verify_attrs_wattrN)�__name__�
__module__�__qualname__r7r:r>r5r5r5r6r1srcCs|dkr|Sd||fS�N�&<?xml version="1.0" encoding="%s"?>
%sr5)�doc�encodingr5r5r6�xml_strfsrF.cCs|dkr|}t||��|d�S)N.�xmlcharrefreplace)rF�encode)rDrE�
decl_encodingr5r5r6�	xml_bytesksrJc	Cs<|dkr|}ttd|dd��}|�t||��W5QRXdS)N.�wrG)rE�errors)�openr�writerF)rDrErI�fr5r5r6�
make_xml_filepsrPc@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�r4r5r5r6�tearDownzszParseTest.tearDowncCs>ddlm}t�}||t|d��|�|��t|jd��dS)Nr)�parser)�xml.saxrVrrr(�getvaluerF�data)r4rOrV�resultr5r5r6�check_parse}szParseTest.check_parsec
Cs�d}|D]�}|�tt|j|���t|j|�ttd|d��}|�|�W5QRX|�t|j��t|j|d�ttd|d��}|�|�W5QRXqdS)N��us-ascii�
iso-8859-1r�utf-16�utf-16le�utf-16be�r�rE)r[rrFrYrPrMr�r4�	encodingsrErOr5r5r6�test_parse_text�szParseTest.test_parse_textc
Cs,d}|D]�}|�tt|j|���t|j|�|�t�ttd��}|�|�W5QRX|�tt|j|d���t|j|d�|�t�ttd��}|�|�W5QRXq|�tt|jdd���t|jdd�|�t�ttd��}|�|�W5QRX|�tt|jdd���t|jdd�|�t�ttd��}|�|�W5QRX|�tt|jd���t|jd�|�t�ttd��}|�|�W5QRX|�t��|�tt|jdd���W5QRXt|jdd�|�t��|�t�W5QRXttd��&}|�t��|�|�W5QRXW5QRXdS)N�r]rr_r`ra�rb�	utf-8-sigrr^)	r[rrJrYrPrrMr!rrdr5r5r6�test_parse_bytes�sF




"zParseTest.test_parse_bytescCs t|jdd�|�tt��dS)Nr)rPrYr[rrrTr5r5r6�test_parse_path_object�sz ParseTest.test_parse_path_objectc	CsLt|jdd�ttd��*}t�}|�|�|�d�|�|�W5QRXdS)Nr^rh)rPrYrMrr�
setByteStreamZsetEncodingr[)r4rO�inputr5r5r6�test_parse_InputSource�s

z ParseTest.test_parse_InputSourcec
snt�d���fdd�}tjd|d��@t|jdd�|�t��|�t�W5QRX|�	�j
�W5QRXdS)Ncs�|���SrRr5)�args�Zbuiltin_open�fileobjr5r6�	mock_open�sz4ParseTest.test_parse_close_source.<locals>.mock_openzxml.sax.saxutils.open)Zside_effectr^)rMrZpatchrPrYr!rr[r�
assertTrue�closed)r4rrr5rpr6�test_parse_close_source�sz!ParseTest.test_parse_close_sourcecCs>ddlm}t�}||t|d��|�|��t|jd��dS)Nr)�parseStringr)rWrvrrr(rXrFrY)r4�srvrZr5r5r6�check_parseString�szParseTest.check_parseStringcCs0d}|D]}|�t|j|��q|�|j�dS)Nr\)rxrFrY�r4rerEr5r5r6�test_parseString_text�szParseTest.test_parseString_textc	Cs�d}|D]*}|�t|j|��|�t|j|d��q|�t|jdd��|�t|jdd��|�t|jd��|�t��|�t|jdd��W5QRXdS)Nrgrirr^)rxrJrYr!rryr5r5r6�test_parseString_bytes�sz ParseTest.test_parseString_bytesN)r?r@rArYrUr[rfrjrkrnrurxrzr{r5r5r5r6rQws
*	rQc@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�MakeParserTestcCspddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}dS)Nr�r)rWr)r4r�pr5r5r6�test_make_parser2�sz MakeParserTest.test_make_parser2cCsHtdg�td�tdh�ttdh��tddi�ttdg��dS)N�module)r��r�	frozenset�iterrTr5r5r6�test_make_parser3s

z MakeParserTest.test_make_parser3cCs>tg�tt��tt��tt��ti�ttg��dSrR)r�tuple�setr�r�rTr5r5r6�test_make_parser4s


z MakeParserTest.test_make_parser4cCsRtddg�td�tddh�ttddh��tddd��ttddg��dS)N�module1�module2)r�r�r�rTr5r5r6�test_make_parser5sz MakeParserTest.test_make_parser5N)r?r@rArr�r�r�r5r5r5r6r|�s
	r|c@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�SaxutilsTestcCs|�td�d�dS)N�Donald Duck & Co�Donald Duck &amp; Co�r(r	rTr5r5r6�test_escape_basic*szSaxutilsTest.test_escape_basiccCs|�td�d�dS)N�<Donald Duck & Co>�&lt;Donald Duck &amp; Co&gt;r�rTr5r5r6�test_escape_all-s
�zSaxutilsTest.test_escape_allcCs|�tdddi�d�dS�NuHei på deg�åz&aring;zHei p&aring; degr�rTr5r5r6�test_escape_extra1s�zSaxutilsTest.test_escape_extracCs|�td�d�dS)Nr�r��r(r
rTr5r5r6�test_unescape_basic6sz SaxutilsTest.test_unescape_basiccCs|�td�d�dS)Nr�r�r�rTr5r5r6�test_unescape_all9s
�zSaxutilsTest.test_unescape_allcCs|�tdddi�d�dSr�r�rTr5r5r6�test_unescape_extra=s�z SaxutilsTest.test_unescape_extracCs|�tdddi�d�dS)Nz	&amp;foo;z&foo;Zsplatr�rTr5r5r6�test_unescape_amp_extraAsz$SaxutilsTest.test_unescape_amp_extracCs|�td�d�dS)Nr�z"Donald Duck &amp; Co"�r(rrTr5r5r6�test_quoteattr_basicEs
�z!SaxutilsTest.test_quoteattr_basiccCs|�td�d�dS)NzIncludes "double" quotesz'Includes "double" quotes'r�rTr5r5r6�test_single_quoteattrIs
�z"SaxutilsTest.test_single_quoteattrcCs|�td�d�dS)NzIncludes 'single' quotesz"Includes 'single' quotes"r�rTr5r5r6�test_double_quoteattrMs
�z"SaxutilsTest.test_double_quoteattrcCs|�td�d�dS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes"r�rTr5r5r6�test_single_double_quoteattrQs
�z)SaxutilsTest.test_single_double_quoteattrcCstdg�}dS)Nzxml.parsers.no_such_parserr})r4r~r5r5r6�test_make_parserVszSaxutilsTest.test_make_parserN)r?r@rAr�r�r�r�r�r�r�r�r�r�r�r�r5r5r5r6r�(sr�c@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�PrepareInputSourceTestc	Cs.tj|_t|jd��}|�d�W5QRXdS)NrKzThis was read from a file.)rr�filerMrN)r4�tmpr5r5r6�setUp^szPrepareInputSourceTest.setUpcCst�|j�dSrR)rrSr�rTr5r5r6rUcszPrepareInputSourceTest.tearDowncCstd�S�NsThis is a byte stream.)rrTr5r5r6�make_byte_streamfsz'PrepareInputSourceTest.make_byte_streamcCstd�S�NzThis is a character stream.)rrTr5r5r6�make_character_streamisz,PrepareInputSourceTest.make_character_streamcCs&|�|�|�|��|�|��dSrR)ZassertIsNotNoner(�read�close)r4�stream�contentr5r5r6�checkContentls
z#PrepareInputSourceTest.checkContentcCsBt|j�}|�|���t|�}|�|���|�|��d�dSr�)	rr��setCharacterStreamr�r
�assertIsNone�
getByteStreamr��getCharacterStream�r4�src�prepr5r5r6�test_character_streamrs

�z,PrepareInputSourceTest.test_character_streamcCsBt|j�}|�|���t|�}|�|���|�|��d�dSr�)	rr�rlr�r
r�r�r�r�r�r5r5r6�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�r5r5r6�test_system_id�s

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


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

�z(PrepareInputSourceTest.test_path_objectscCs.t|���}|�|���|�|��d�dSr�)r
r�r�r�r�r�r�r5r5r6�test_binary_file�s

�z'PrepareInputSourceTest.test_binary_filecCs.t|���}|�|���|�|��d�dSr�)r
r�r�r�r�r�r�r5r5r6�test_text_file�s

�z%PrepareInputSourceTest.test_text_fileN)r?r@rAr�rUr�r�r�r�r�r�r�r�r�r�r5r5r5r6r�\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)NrD�<doc></doc>�	�ioclassr�
startDocument�startElement�
endElement�endDocumentr(rX�xml�r4rZ�genr5r5r6�test_xmlgen_basic�s
zXmlgenTest.test_xmlgen_basiccCsT|��}t|dd�}|��|�di�|�d�|��|�|��|�d��dS)NT�Zshort_empty_elementsrD�<doc/>r�r�r5r5r6�test_xmlgen_basic_empty�s
z"XmlgenTest.test_xmlgen_basic_emptycCsZ|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NrD�huhei�<doc>huhei</doc>�
r�rr�r��
charactersr�r�r(rXr�r�r5r5r6�test_xmlgen_content�s

zXmlgenTest.test_xmlgen_contentcCs^|��}t|dd�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NTr�rDr�r�r�r�r5r5r6�test_xmlgen_content_empty�s

z$XmlgenTest.test_xmlgen_content_emptycCs\|��}t|�}|��|�dd�|�di�|�d�|��|�|��|�	d��dS)N�testrYrDz<?test data?><doc></doc>)
r�rr�ZprocessingInstructionr�r�r�r(rXr�r�r5r5r6�test_xmlgen_pi�s

�zXmlgenTest.test_xmlgen_picCsZ|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NrDz<huhei&z<doc>&lt;huhei&amp;</doc>r�r�r5r5r6�test_xmlgen_content_escape�s


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

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



�z"XmlgenTest.test_xmlgen_attr_escapecCstd}|D]f}|��}t||d�}|��|�dddi�|�d�|�d�|��|�|��|j	d|d��qdS)N�	ziso-8859-15rrir_rar`zutf-32zutf-32bezutf-32lercrDr��€u<doc a="€">€</doc>r��r4rerErZr�r5r5r6�test_xmlgen_encoding
s


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


�z"XmlgenTest.test_xmlgen_unencodablecCsZ|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NrD� �<doc> </doc>�
r�rr�r��ignorableWhitespacer�r�r(rXr�r�r5r5r6�test_xmlgen_ignorable(s

z XmlgenTest.test_xmlgen_ignorablecCs^|��}t|dd�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NTr�rDr�r�r�r�r5r5r6�test_xmlgen_ignorable_empty4s

z&XmlgenTest.test_xmlgen_ignorable_emptycCs�d}|D]|}|��}t||d�}|��|�dddi�|�d�|��|�d�|��|�d�|��|�	|�
�|jd|d��qdS)Nr�rcrDr�r�r�u<doc a="€">€ </doc>)r�rr�r�r�rHr�r�r�r(rXr�r�r5r5r6�test_xmlgen_encoding_bytes@s

�z%XmlgenTest.test_xmlgen_encoding_bytescCs�|��}t|�}|��|�dt�|�tdfdi�|�ddi�|�dd�|�tdfd�|�d�|��|�	|�
�|�dt��dS)N�ns1rD�ns1:doc�NZudocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>�r�rr��startPrefixMappingr9�startElementNS�endElementNS�endPrefixMappingr�r(rXr�r�r5r5r6�test_xmlgen_nsRs
��zXmlgenTest.test_xmlgen_nscCs�|��}t|dd�}|��|�dt�|�tdfdi�|�ddi�|�dd�|�tdfd�|�d�|��|�	|�
�|�dt��dS)NTr�r�rDr�r�z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>r�r�r5r5r6�test_xmlgen_ns_emptyds
��zXmlgenTest.test_xmlgen_ns_emptycCsX|��}t|�}|��|�ddddi�|�dd�|��|�|��|�d��dS)N�Nr�r��N�b�cz
<a b="c"></a>�	r�rr�r�r�r�r(rXr�r�r5r5r6�test_1463026_1vszXmlgenTest.test_1463026_1cCs\|��}t|dd�}|��|�ddddi�|�dd�|��|�|��|�d��dS)NTr�r�r�r�r�z
<a b="c"/>r�r�r5r5r6�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�r�r�r�r�r(rXr�r�r5r5r6�test_1463026_2�s
zXmlgenTest.test_1463026_2cCsn|��}t|dd�}|��|�dd�|�ddi�|�dd�|�d�|��|�|�	�|�
d��dS)NTr�r�r�r�z<a xmlns="qux"/>r�r�r5r5r6�test_1463026_2_empty�s
zXmlgenTest.test_1463026_2_emptycCsn|��}t|�}|��|�dd�|�ddddi�|�dd�|�d�|��|�|�	�|�
d��dS)N�myr�r�r�r�r�z"<my:a xmlns:my="qux" b="c"></my:a>r�r�r5r5r6�test_1463026_3�s

�zXmlgenTest.test_1463026_3cCsr|��}t|dd�}|��|�dd�|�ddddi�|�dd�|�d�|��|�|�	�|�
d	��dS)
NTr�r�r�r�r�r�r�z<my:a xmlns:my="qux" b="c"/>r�r�r5r5r6�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�setContentHandlerrVr(rXr�)r4Ztest_xml�parserrZr�r5r5r6�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�r�r�r�r�r�r(rXr�)r4rZr�Z	lang_attrr5r5r6�test_5027_2�s"


��zXmlgenTest.test_5027_2cCs(|��}dd�}||�|�|j�dS)NcSs t|�}|��|�di�dS)NrD)rr�r�)�outr�r5r5r6�func�sz+XmlgenTest.test_no_close_file.<locals>.func)r��assertFalsert)r4rZrr5r5r6�test_no_close_file�szXmlgenTest.test_no_close_filecCsz|��}t|�}|�dddi�|�d�|�d�|�dddi�|�d�|�|��|�d�t|�d	��d��dS)
NZfoor�z1.0rZbarr�z2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar>�)	r�rr�r�r�r(rXr�r,r�r5r5r6�test_xmlgen_fragments



�zXmlgenTest.test_xmlgen_fragmentN)r?r@rAr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrr5r5r5r6r��s0






	r�c@seZdZeZddd�ZdZdS)�StringXmlgenTestr^cCsd||fSrBr5�r4rDrEr5r5r6r�szStringXmlgenTest.xmlN)r^)r?r@rArr�r�r�r5r5r5r6rs
rc@seZdZeZddd�ZdS)�BytesXmlgenTestr^cCsd||f�|d�S)NrCrG�rHrr5r5r6r�s��zBytesXmlgenTest.xmlN)r^)r?r@rArr�r�r5r5r5r6rsrc@seZdZGdd�de�ZdS)�WriterXmlgenTestc@s.eZdZejZdZdd�Zdd�Zdd�Z	dS)	zWriterXmlgenTest.ioclassFcCsdS)NTr5rTr5r5r6�seekable$sz!WriterXmlgenTest.ioclass.seekablecCst|�SrR)r,rTr5r5r6�tell'szWriterXmlgenTest.ioclass.tellcCs
d�|�S)N�)�joinrTr5r5r6rX+sz!WriterXmlgenTest.ioclass.getvalueN)
r?r@rAr.�appendrNrtrrrXr5r5r5r6r� s
r�N)r?r@rAr.r�r5r5r5r6rsrc@seZdZdd�Zddd�ZdS)�StreamWriterXmlgenTestcCs"t�}t�d�|d�}|j|_|S)Nr�rG)r�codecs�	getwriterrX)r4�raw�writerr5r5r6r�/szStreamWriterXmlgenTest.ioclassr^cCsd||f�dd�S�NrCr�rGrrr5r5r6r�5s��zStreamWriterXmlgenTest.xmlN)r^)r?r@rAr�r�r5r5r5r6r.src@s(eZdZejdZdd�Zddd�ZdS)	�StreamReaderWriterXmlgenTestz-codecscsDtj�jddddd����fdd�}��|��fdd	�}|�_�S)
NrKr�rGr)rErL�	bufferingcs���t��j�dSrR)r�rrS�fnamer5�r4r!r5r6�cleanup?sz5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupc
s4���t�jd��}|��W5QR�SQRXdS�Nrh)r�rM�namer�)rO)r!r5r6rXCsz6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalue)rrMr%�
addCleanuprX)r4r'rXr5r&r6r�<s�
z$StreamReaderWriterXmlgenTest.ioclassr^cCsd||f�dd�Sr"rrr5r5r6r�Ks��z StreamReaderWriterXmlgenTest.xmlN)r^)r?r@rArrr%r�r�r5r5r5r6r#9s
r#s,<?xml version="1.0" encoding="iso-8859-1"?>
c@seZdZdd�ZdS)�XMLFilterBaseTestcCspt�}t|�}t�}|�|�|��|�di�|�d�|�d�|�d�|�	�|�
|��td�dS)NrDr�r�s<doc>content </doc>)
rrrrr�r�r�r�r�r�r(rX�start)r4rZr��filterr5r5r6�test_filter_basicSs



z#XMLFilterBaseTest.test_filter_basicN)r?r@rAr.r5r5r5r6r+Rsr+rhc@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)>�ExpatReaderTestc	CsRt�}t�}t|�}|�|�ttd��}|�|�W5QRX|�|��t	�dSr(�
rrrrrM�TEST_XMLFILErVr(rX�xml_test_out�r4rrZ�xmlgenrOr5r5r6�test_expat_binary_fileos
z&ExpatReaderTest.test_expat_binary_filec	CsVt�}t�}t|�}|�|�ttddd��}|�|�W5QRX|�|��t	�dS�NZrtr^rcr0r3r5r5r6�test_expat_text_filezs
z$ExpatReaderTest.test_expat_text_filecCsbtj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|d��|�
|��t�dSr()r�TESTFN_UNICODE�shutil�copyfiler1r*rSrrrrrVrMr(rXr2�r4r%rrZr4r5r5r6�test_expat_binary_file_nonascii�s
z/ExpatReaderTest.test_expat_binary_file_nonasciic	Cs\t�t�}t�}t�}t|�}|�|�t|d��}|�|�W5QRX|�	|�
�t�dSr()�os�fsencoder1rrrrrMrVr(rXr2)r4r%rrZr4rOr5r5r6�!test_expat_binary_file_bytes_name�s

z1ExpatReaderTest.test_expat_binary_file_bytes_namec
Cspt�}t�}t|�}|�|�ttd��.}t|��ddd��}|�|�W5QRXW5QRX|�|�	�t
�dS)NrhF)�closefd)rrrrrMr1�filenorVr(rXr2)r4rrZr4rO�f2r5r5r6�test_expat_binary_file_int_name�s
z/ExpatReaderTest.test_expat_binary_file_int_namec@s$eZdZdd�Zdd�Zdd�ZdS)zExpatReaderTest.TestDTDHandlercCsg|_g|_dSrR)�
_notations�	_entitiesrTr5r5r6�__init__�sz'ExpatReaderTest.TestDTDHandler.__init__cCs|j�|||f�dSrR)rDr)r4r)�publicId�systemIdr5r5r6�notationDecl�sz+ExpatReaderTest.TestDTDHandler.notationDeclcCs|j�||||f�dSrR)rEr)r4r)rGrHZndatar5r5r6�unparsedEntityDecl�sz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r?r@rArFrIrJr5r5r5r6�TestDTDHandler�srKc@seZdZdd�Zdd�ZdS)z"ExpatReaderTest.TestEntityRecordercCs
g|_dSrR)�entitiesrTr5r5r6rF�sz+ExpatReaderTest.TestEntityRecorder.__init__cCs.|j�||f�t�}|�|�|�|�|SrR)rLrrZsetPublicId�setSystemId)r4rGrH�sourcer5r5r6�
resolveEntity�s


z0ExpatReaderTest.TestEntityRecorder.resolveEntityN)r?r@rArFrOr5r5r5r6�TestEntityRecorder�srPcCsvt�}|��}|�|�|�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)rrKZ
setDTDHandler�feedr�r(rDrE)r4r�handlerr5r5r6�test_expat_dtdhandler�s





�z%ExpatReaderTest.test_expat_dtdhandlerc	CsXt�}|�td�|��}|�|�|�t��|�d�W5QRX|�|j	dg�dS)NT�8<!DOCTYPE external SYSTEM "unsupported://non-existing">
)Nzunsupported://non-existing)
rrrrP�setEntityResolverr!rrTr(rL�r4rZresolverr5r5r6�test_expat_external_dtd_enabled�s
��z/ExpatReaderTest.test_expat_external_dtd_enabledcCsFt�}|��}|�|�|�d�|�d�|��|�|jg�dS)NrWz<doc />)rrPrXrTr�r(rLrYr5r5r6�test_expat_external_dtd_default�s
�
z/ExpatReaderTest.test_expat_external_dtd_defaultc@seZdZdd�ZdS)z"ExpatReaderTest.TestEntityResolvercCst�}|�td��|S)Ns	<entity/>)rrlr)r4rGrH�inpsrcr5r5r6rO�sz0ExpatReaderTest.TestEntityResolver.resolveEntityN)r?r@rArOr5r5r5r6�TestEntityResolver�sr]cCs|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>)
rrrrXr]rrrrTr�r(rXr,�r4rrZr5r5r6�!test_expat_entityresolver_enabled�s



�z1ExpatReaderTest.test_expat_entityresolver_enabledcCs�t�}|�|�t�d�|�|���t�}|�t|��|�	d�|�	d�|�	d�|�	d�|�
�|�|��td�dS)NFrQr^rRr_�<doc></doc>)
rr(Z
getFeaturerrXr]rrrrTr�rXr,r`r5r5r6�!test_expat_entityresolver_default	s



�z1ExpatReaderTest.test_expat_entityresolver_defaultc@seZdZdd�Zdd�ZdS)zExpatReaderTest.AttrGatherercCs
||_dSrR��_attrs)r4r)rr5r5r6r�sz)ExpatReaderTest.AttrGatherer.startElementcCs
||_dSrRrd)r4r)Zqnamerr5r5r6r� sz+ExpatReaderTest.AttrGatherer.startElementNSN)r?r@rAr�r�r5r5r5r6�AttrGatherersrfcCs:t�}|��}|�|�|�d�|��|�|j�dS)Nr�)rrfrrTr�r7re�r4r�gatherr5r5r6�test_expat_attrs_empty#s

z&ExpatReaderTest.test_expat_attrs_emptycCs:t�}|��}|�|�|�d�|��|�|j�dS)Nz<doc attr='val'/>)rrfrrTr�r>rergr5r5r6�test_expat_attrs_wattr-s

z&ExpatReaderTest.test_expat_attrs_wattrcCs<td�}|��}|�|�|�d�|��|�|j�dS)Nr;r�)rrfrrTr�r:rergr5r5r6�test_expat_nsattrs_empty7s

z(ExpatReaderTest.test_expat_nsattrs_emptycCs,td�}|��}|�|�|�dt�|��|j}|�|��d�|�|�	�tdfg�|�
|��gkpx|��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'/>rr8r<r )rrfrrTr9r�rer(r)r*rsr+r,r=r0r.r1r2r#)r4rrhrr5r5r6�test_expat_nsattrs_wattrAs&
�z(ExpatReaderTest.test_expat_nsattrs_wattrcCs<t�}t�}t|�}|�|�|�t�|�|��t�dSrR)	rrrrrVr1r(rXr2�r4rrZr4r5r5r6�test_expat_inpsource_filenameZs

z-ExpatReaderTest.test_expat_inpsource_filenamecCs@t�}t�}t|�}|�|�|�tt��|�|��t	�dSrR)
rrrrrVrr1r(rXr2rmr5r5r6�test_expat_inpsource_sysidds
z*ExpatReaderTest.test_expat_inpsource_sysidcCs`tj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|��|�
|��t�dSrR)rr8r9r:r1r*rSrrrrrVrr(rXr2r;r5r5r6�#test_expat_inpsource_sysid_nonasciins
z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciic	Csbt�}t�}t|�}|�|�t�}ttd��}|�|�|�|�W5QRX|�	|�
�t�dSr()rrrrrrMr1rlrVr(rXr2�r4rrZr4r\rOr5r5r6� test_expat_inpsource_byte_stream}s

z0ExpatReaderTest.test_expat_inpsource_byte_streamc	Csft�}t�}t|�}|�|�t�}ttddd��}|�|�|�|�W5QRX|�	|�
�t�dSr6)rrrrrrMr1r�rVr(rXr2rqr5r5r6�%test_expat_inpsource_character_stream�s

z5ExpatReaderTest.test_expat_inpsource_character_streamcCsRt�}t|�}t�}|�|�|�d�|�d�|��|�|��td�dS)N�<doc>�</doc>rb)	rrrrrTr�r(rXr,�r4rZr4rr5r5r6�test_expat_incremental�s


z&ExpatReaderTest.test_expat_incrementalcCs�t�}t|�}t�}|�|�|�d�|�d�t�}t|�}|�|�|��|�d�|�d�|�d�|��|�|��t	d�dS)Nrt�textrus<doc>text</doc>)
rrrrrT�resetr�r(rXr,rvr5r5r6�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>rurb)�pyexpat�version_infoZskipTestrrrrrTr(rXr,rs�_parser�GetReparseDeferralEnabled�flushr��r4rZr4r�chunkr5r5r6�#test_flush_reparse_deferral_enabled�s 


z3ExpatReaderTest.test_flush_reparse_deferral_enabledcCs�t�}t|�}t�}|�|�dD]}|�|�q"tjdkrH|j�d�|�	|�
�t�|�|j�
��|��|�|j�
��|�	|�
�td�|�d�|��|�	|�
�td�dS)Nr~r{Fr�rurb)rrrrrTr�r�r�ZSetReparseDeferralEnabledr(rXr,rr�r�r�r�r5r5r6�$test_flush_reparse_deferral_disabled�s 


z4ExpatReaderTest.test_flush_reparse_deferral_disabledcCsnt�}t|�}t�}|�|�|�d�|�d�|��|�|��d�|�|��d�|�|�	�d�dS)Nrtrur;)
rrrrrTr�r(�getSystemId�getPublicId�
getLineNumberrvr5r5r6�test_expat_locator_noinfo�s


z)ExpatReaderTest.test_expat_locator_noinfocCsLt�}t|�}t�}|�|�|�t�|�|��t�|�|��d�dSrR)	rrrrrVr1r(r�r�rvr5r5r6�test_expat_locator_withinfo�s

z+ExpatReaderTest.test_expat_locator_withinfocCsltj}t�t|�|�tj|�t�}t|�}t	�}|�
|�|�|�|�|�
�|�|�|��d�dSrR)rr8r9r:r1r*rSrrrrrVr(r�r�)r4r%rZr4rr5r5r6�$test_expat_locator_withinfo_nonasciis

z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)#r?r@rAr5r7�requires_nonascii_filenamesr<r?rCrKrPrVrZr[r]rarcrrfrirjrkrlrnrorprrrsrwrzr�r�r�r�r�r5r5r5r6r/ksB









r/c@s2eZdZdd�Zdd�Zdd�ZGdd�d�Zd	S)
�ErrorReportingTestc
Cs�t�}|�t��t�}|�td��d}|�|�z|�|�|��Wn2t	k
r|}z|�
|��|�W5d}~XYnXdS)Ns<foo bar foobar>za file name)rrrrrlrrMrVZfailrr(r�)r4rrNr)r�r5r5r6�test_expat_inpsource_locations

z0ErrorReportingTest.test_expat_inpsource_locationcCsJt�}|�t��|�t|jtd��|�|��d�|�|�	�d�dS)Nz<foo>�r;)
rrrr!rrVrr(�getColumnNumberr�)r4rr5r5r6�test_expat_incomplete*s
z(ErrorReportingTest.test_expat_incompletecCsdttdd|�dd���ttdd|�dd���ttdd|�dd���ttdd|�dd���dS)N�messager;)�strr�DummyLocatorrTr5r5r6�test_sax_parse_exception_str1s
�
�
�
�z/ErrorReportingTest.test_sax_parse_exception_strc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zErrorReportingTest.DummyLocatorcCs||_||_dSrR)�_lineno�_colno)r4�lineno�colnor5r5r6rFDsz(ErrorReportingTest.DummyLocator.__init__cCsdS)NZpubidr5rTr5r5r6r�Hsz+ErrorReportingTest.DummyLocator.getPublicIdcCsdS)NZsysidr5rTr5r5r6r�Ksz+ErrorReportingTest.DummyLocator.getSystemIdcCs|jSrR)r�rTr5r5r6r�Nsz-ErrorReportingTest.DummyLocator.getLineNumbercCs|jSrR)r�rTr5r5r6r�Qsz/ErrorReportingTest.DummyLocator.getColumnNumberN)r?r@rArFr�r�r�r�r5r5r5r6r�Cs
r�N)r?r@rAr�r�r�r�r5r5r5r6r�s
r�c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
XmlReaderTestcCs|�ti��dSrR)r7rrTr5r5r6�test_attrs_empty]szXmlReaderTest.test_attrs_emptycCs|�tddi��dS)Nrr<)r>rrTr5r5r6�test_attrs_wattr`szXmlReaderTest.test_attrs_wattrcCs|�tii��dSrR)r:rrTr5r5r6�test_nsattrs_emptycsz 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<r8r;r )rr9r(r)r*r+r,r=r.r/r0r1r2r#r$r%r&r3r5r5r6�test_nsattrs_wattrfs$
�z XmlReaderTest.test_nsattrs_wattrN)r?r@rAr�r�r�r�r5r5r5r6r�Zsr�c
Cs"tttttttttt	t
tt�dSrR)
rr|rQr�r�rrrrr#r/r�r�r5r5r5r6�	test_main{s�r��__main__)N).).)RrWrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr	r
rrr
Zxml.sax.expatreaderrZxml.sax.handlerrrZxml.sax.xmlreaderrrr�iorrrZos.pathr=r�r9Zurllib.errorrr�rZtest.supportrrrrr1ZTEST_XMLFILE_OUTrH�UnicodeEncodeErrorZsupports_nonascii_filenames�path�supports_unicode_filenamesr8ZTESTFN_ENCODING�UnicodeError�	TypeErrorZ
skipUnlessr�r9ZTestCaserrFrJrPrQr|r�r�r�rrrrr#r,r+rMrOr�r2r/r�r�r�r?r5r5r5r6�<module>s�
 


�5


|54Sc4>!


F1le Man4ger