HEX
Server: Apache
System: Linux zacp120.webway.host 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
User: govancoz (1003)
PHP: 8.3.26
Disabled: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Upload Files
File: //usr/local/lib/python3.7/test/__pycache__/test_sax.cpython-37.opt-2.pyc
B

��gֵ�	@sddlmZmZmZmZmZddlZddlmZy
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(e&d
dd�Z)e&ddd�Z*ye)�+d�e*�+d�Wn e,k
�rVe�d��YnXdZ-ej.j/�s�ye$j0�+e$j1�Wne2e3fk
�r�dZ-YnXe�4e-d�Z5dZ6Gdd�dej7�Z8dAdd�Z9dBdd�Z:dCdd�Z;Gd d!�d!ej7�Z<Gd"d#�d#ej7�Z=Gd$d%�d%ej7�Z>Gd&d'�d'ej7�Z?Gd(d)�d)�Z@Gd*d+�d+e@ej7�ZAGd,d-�d-e@ej7�ZBGd.d/�d/eB�ZCGd0d1�d1e@ej7�ZDGd2d3�d3e@ej7�ZEd4ZFGd5d6�d6ej7�ZGeHe*d7��ZIeI�J�ZKWdQRXGd8d9�d9e8�ZLGd:d;�d;ej7�ZMGd<d=�d=e8�ZNd>d?�ZOePd@k�reO�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�TESTFNztest.xmlZxmltestdata)Zsubdirztest.xml.outzutf-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�r2�)/usr/local/lib/python3.7/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)Nrzns:attrrr)rr r!�ns_urir"r#r$r%r&r'r(r)r*r+r,r-r.r/r0)r1rr2r2r3�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)rr8)r&r'r(r)r*�assertInr,r-r.r/r0r!r"r#r$)r1rr2r2r3�verify_attrs_wattrTszXmlTestBase.verify_attrs_wattrN)�__name__�
__module__�__qualname__r4r6r:r2r2r2r3r1srcCs|dkr|Sd||fS)Nz&<?xml version="1.0" encoding="%s"?>
%sr2)�doc�encodingr2r2r3�xml_strfsr@.cCs|dkr|}t||��|d�S)N.�xmlcharrefreplace)r@�encode)r>r?�
decl_encodingr2r2r3�	xml_bytesksrDc	Cs<|dkr|}ttd|dd��}|�t||��WdQRXdS)N.�wrA)r?�errors)�openr�writer@)r>r?rC�fr2r2r3�
make_xml_filepsrJc@sXeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�	ParseTestu,<money value="$£€𐅻">$£€𐅻</money>cCst�t�dS)N)r�unlinkr)r1r2r2r3�tearDownzszParseTest.tearDowncCs>ddlm}t�}||t|d��|�|��t|jd��dS)Nr)�parsezutf-8)�xml.saxrNrrr&�getvaluer@�data)r1rIrN�resultr2r2r3�check_parse}szParseTest.check_parsec
Cs�d}x�|D]�}|�tt|j|���t|j|�ttd|d��}|�|�WdQRX|�t|j��t|j|d�ttd|d��}|�|�WdQRXq
WdS)N)zus-asciiz
iso-8859-1zutf-8zutf-16zutf-16lezutf-16be�r)r?)rSrr@rQrJrGr)r1�	encodingsr?rIr2r2r3�test_parse_text�s
zParseTest.test_parse_textc
Cs0d}x�|D]�}|�tt|j|���t|j|�|�t�ttd��}|�|�WdQRX|�tt|j|d���t|j|d�|�t�ttd��}|�|�WdQRXq
W|�tt|jdd���t|jdd�|�t�ttd��}|�|�WdQRX|�tt|jdd���t|jdd�|�t�ttd��}|�|�WdQRX|�tt|jd���t|jd�|�t�ttd��}|�|�WdQRX|�t��|�tt|jdd���WdQRXt|jdd�|�t��|�t�WdQRXttd��&}|�t��|�|�WdQRXWdQRXdS)N)zus-asciizutf-8zutf-16zutf-16lezutf-16be�rbz	utf-8-sigzutf-8z
iso-8859-1)	rSrrDrQrJrrGrr)r1rUr?rIr2r2r3�test_parse_bytes�sF





"zParseTest.test_parse_bytesc	CsLt|jdd�ttd��*}t�}|�|�|�d�|�|�WdQRXdS)Nz
iso-8859-1rW)rJrQrGrr�
setByteStreamZsetEncodingrS)r1rI�inputr2r2r3�test_parse_InputSource�s

z ParseTest.test_parse_InputSourcec
snt�d���fdd�}tjd|d��@t|jdd�|�t��|�t�WdQRX|�	�j
�WdQRXdS)Ncs�|���S)Nr2)�args)�builtin_open�fileobjr2r3�	mock_open�sz4ParseTest.test_parse_close_source.<locals>.mock_openzxml.sax.saxutils.open)Zside_effectz
iso-8859-1)rGrZpatchrJrQrrrSr�
assertTrue�closed)r1r_r2)r]r^r3�test_parse_close_source�sz!ParseTest.test_parse_close_sourcecCs>ddlm}t�}||t|d��|�|��t|jd��dS)Nr)�parseStringzutf-8)rOrcrrr&rPr@rQ)r1�srcrRr2r2r3�check_parseString�szParseTest.check_parseStringcCs4d}x|D]}|�t|j|��q
W|�|j�dS)N)zus-asciiz
iso-8859-1zutf-8zutf-16zutf-16lezutf-16be)rer@rQ)r1rUr?r2r2r3�test_parseString_text�s
zParseTest.test_parseString_textc	Cs�d}x2|D]*}|�t|j|��|�t|j|d��q
W|�t|jdd��|�t|jdd��|�t|jd��|�t��|�t|jdd��WdQRXdS)N)zus-asciizutf-8zutf-16zutf-16lezutf-16bez	utf-8-sigzutf-8z
iso-8859-1)rerDrQrr)r1rUr?r2r2r3�test_parseString_bytes�s
z ParseTest.test_parseString_bytesN)
r;r<r=rQrMrSrVrXr[rbrerfrgr2r2r2r3rKws
*	rKc@seZdZdd�ZdS)�MakeParserTestcCspddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}dS)Nr)r)rOr)r1r�pr2r2r3�test_make_parser2�sz MakeParserTest.test_make_parser2N)r;r<r=rjr2r2r2r3rh�srhc@sleZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�SaxutilsTestcCs|�td�d�dS)NzDonald Duck & CozDonald Duck &amp; Co)r&r	)r1r2r2r3�test_escape_basic
szSaxutilsTest.test_escape_basiccCs|�td�d�dS)Nz<Donald Duck & Co>z&lt;Donald Duck &amp; Co&gt;)r&r	)r1r2r2r3�test_escape_all
s
zSaxutilsTest.test_escape_allcCs|�tdddi�d�dS)NuHei på deg�åz&aring;zHei p&aring; deg)r&r	)r1r2r2r3�test_escape_extraszSaxutilsTest.test_escape_extracCs|�td�d�dS)NzDonald Duck &amp; CozDonald Duck & Co)r&r
)r1r2r2r3�test_unescape_basicsz SaxutilsTest.test_unescape_basiccCs|�td�d�dS)Nz&lt;Donald Duck &amp; Co&gt;z<Donald Duck & Co>)r&r
)r1r2r2r3�test_unescape_alls
zSaxutilsTest.test_unescape_allcCs|�tdddi�d�dS)NuHei på degrnz&aring;zHei p&aring; deg)r&r
)r1r2r2r3�test_unescape_extrasz SaxutilsTest.test_unescape_extracCs|�tdddi�d�dS)Nz	&amp;foo;z&foo;Zsplat)r&r
)r1r2r2r3�test_unescape_amp_extra!sz$SaxutilsTest.test_unescape_amp_extracCs|�td�d�dS)NzDonald Duck & Coz"Donald Duck &amp; Co")r&r)r1r2r2r3�test_quoteattr_basic%s
z!SaxutilsTest.test_quoteattr_basiccCs|�td�d�dS)NzIncludes "double" quotesz'Includes "double" quotes')r&r)r1r2r2r3�test_single_quoteattr)s
z"SaxutilsTest.test_single_quoteattrcCs|�td�d�dS)NzIncludes 'single' quotesz"Includes 'single' quotes")r&r)r1r2r2r3�test_double_quoteattr-s
z"SaxutilsTest.test_double_quoteattrcCs|�td�d�dS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes")r&r)r1r2r2r3�test_single_double_quoteattr1s
z)SaxutilsTest.test_single_double_quoteattrcCstdg�}dS)Nzxml.parsers.no_such_parser)r)r1rir2r2r3�test_make_parser6szSaxutilsTest.test_make_parserN)r;r<r=rlrmrorprqrrrsrtrurvrwrxr2r2r2r3rksrkc@sdeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�PrepareInputSourceTestc	Cs.tj|_t|jd��}|�d�WdQRXdS)NrEzThis was read from a file.)rr�filerGrH)r1Ztmpr2r2r3�setUp>szPrepareInputSourceTest.setUpcCst�|j�dS)N)rrLrz)r1r2r2r3rMCszPrepareInputSourceTest.tearDowncCstd�S)NsThis is a byte stream.)r)r1r2r2r3�make_byte_streamFsz'PrepareInputSourceTest.make_byte_streamcCstd�S)NzThis is a character stream.)r)r1r2r2r3�make_character_streamIsz,PrepareInputSourceTest.make_character_streamcCs&|�|�|�|��|�|��dS)N)ZassertIsNotNoner&�read�close)r1�stream�contentr2r2r3�checkContentLs
z#PrepareInputSourceTest.checkContentcCsBt|j�}|�|���t|�}|�|���|�|��d�dS)NzThis is a character stream.)	rrz�setCharacterStreamr}r
�assertIsNone�
getByteStreamr��getCharacterStream)r1�src�prepr2r2r3�test_character_streamRs

z,PrepareInputSourceTest.test_character_streamcCsBt|j�}|�|���t|�}|�|���|�|��d�dS)NsThis is a byte stream.)	rrzrYr|r
r�r�r�r�)r1r�r�r2r2r3�test_byte_stream[s

z'PrepareInputSourceTest.test_byte_streamcCs4t|j�}t|�}|�|���|�|��d�dS)NsThis was read from a file.)rrzr
r�r�r�r�)r1r�r�r2r2r3�test_system_ides


z%PrepareInputSourceTest.test_system_idcCs,t|j�}|�|���|�|��d�dS)NsThis was read from a file.)r
rzr�r�r�r�)r1r�r2r2r3�test_stringns

z"PrepareInputSourceTest.test_stringcCs.t|���}|�|���|�|��d�dS)NsThis is a byte stream.)r
r|r�r�r�r�)r1r�r2r2r3�test_binary_fileus
z'PrepareInputSourceTest.test_binary_filecCs.t|���}|�|���|�|��d�dS)NzThis is a character stream.)r
r}r�r�r�r�)r1r�r2r2r3�test_text_file}s
z%PrepareInputSourceTest.test_text_fileN)r;r<r=r{rMr|r}r�r�r�r�r�r�r�r2r2r2r3ry<s	
	ryc@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)Nr>z<doc></doc>)	�ioclassr�
startDocument�startElement�
endElement�endDocumentr&rP�xml)r1rR�genr2r2r3�test_xmlgen_basic�s
zXmlgenTest.test_xmlgen_basiccCsT|��}t|dd�}|��|�di�|�d�|��|�|��|�d��dS)NT)�short_empty_elementsr>z<doc/>)	r�rr�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_basic_empty�s
z"XmlgenTest.test_xmlgen_basic_emptycCsZ|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)Nr>�huheiz<doc>huhei</doc>)
r�rr�r��
charactersr�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_content�s

zXmlgenTest.test_xmlgen_contentcCs^|��}t|dd�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NT)r�r>r�z<doc>huhei</doc>)
r�rr�r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_content_empty�s

z$XmlgenTest.test_xmlgen_content_emptycCs\|��}t|�}|��|�dd�|�di�|�d�|��|�|��|�	d��dS)N�testrQr>z<?test data?><doc></doc>)
r�rr�ZprocessingInstructionr�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_pi�s

zXmlgenTest.test_xmlgen_picCsZ|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)Nr>z<huhei&z<doc>&lt;huhei&amp;</doc>)
r�rr�r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_content_escape�s


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

	zK<doc a='"'><e a="'"></e><e a="'&quot;"></e><e a="&#10;&#13;&#9;"></e></doc>)	r�rr�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_attr_escape�s



z"XmlgenTest.test_xmlgen_attr_escapecCsxd}xn|D]f}|��}t||d�}|��|�dddi�|�d�|�d�|��|�|��|j	d|d��q
WdS)N)	ziso-8859-15zutf-8z	utf-8-sigzutf-16zutf-16bezutf-16lezutf-32zutf-32bezutf-32le)r?r>r�u€u<doc a="€">€</doc>)
r�rr�r�r�r�r�r&rPr�)r1rUr?rRr�r2r2r3�test_xmlgen_encoding�s



zXmlgenTest.test_xmlgen_encodingcCsf|��}t|dd�}|��|�dddi�|�d�|�d�|��|�|��|j	ddd��dS)N�ascii)r?r>r�u€z<doc a="&#8364;">&#8364;</doc>)
r�rr�r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_unencodable�s


z"XmlgenTest.test_xmlgen_unencodablecCsZ|��}t|�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)Nr>� z<doc> </doc>)
r�rr�r��ignorableWhitespacer�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_ignorables

z XmlgenTest.test_xmlgen_ignorablecCs^|��}t|dd�}|��|�di�|�d�|�d�|��|�|��|�	d��dS)NT)r�r>r�z<doc> </doc>)
r�rr�r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_ignorable_empty
s

z&XmlgenTest.test_xmlgen_ignorable_emptycCs�d}x�|D]|}|��}t||d�}|��|�dddi�|�d�|��|�d�|��|�d�|��|�	|�
�|jd|d��q
WdS)N)	ziso-8859-15zutf-8z	utf-8-sigzutf-16zutf-16bezutf-16lezutf-32zutf-32bezutf-32le)r?r>r�u€r�u<doc a="€">€ </doc>)r�rr�r�r�rBr�r�r�r&rPr�)r1rUr?rRr�r2r2r3�test_xmlgen_encoding_bytess


z%XmlgenTest.test_xmlgen_encoding_bytescCs�|��}t|�}|��|�dt�|�tdfdi�|�ddi�|�dd�|�tdfd�|�d�|��|�	|�
�|�dt��dS)N�ns1r>zns1:doc)N�udocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>)r�rr��startPrefixMappingr5�startElementNS�endElementNS�endPrefixMappingr�r&rPr�)r1rRr�r2r2r3�test_xmlgen_ns+s
zXmlgenTest.test_xmlgen_nscCs�|��}t|dd�}|��|�dt�|�tdfdi�|�ddi�|�dd�|�tdfd�|�d�|��|�	|�
�|�dt��dS)NT)r�r�r>zns1:doc)Nr�z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>)r�rr�r�r5r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_xmlgen_ns_empty=s
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&rPr�)r1rRr�r2r2r3�test_1463026_1OszXmlgenTest.test_1463026_1cCs\|��}t|dd�}|��|�ddddi�|�dd�|��|�|��|�d��dS)NT)r�)Nr�r�)Nr�r�z
<a b="c"/>)	r�rr�r�r�r�r&rPr�)r1rRr�r2r2r3�test_1463026_1_emptyZs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&rPr�)r1rRr�r2r2r3�test_1463026_2es
zXmlgenTest.test_1463026_2cCsn|��}t|dd�}|��|�dd�|�ddi�|�dd�|�d�|��|�|�	�|�
d��dS)NT)r�r�)r�r�r�z<a xmlns="qux"/>)r�rr�r�r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_1463026_2_emptyrs
zXmlgenTest.test_1463026_2_emptycCsn|��}t|�}|��|�dd�|�ddddi�|�dd�|�d�|��|�|�	�|�
d��dS)N�myr�)r�r�r�)Nr�r�z"<my:a xmlns:my="qux" b="c"></my:a>)r�rr�r�r�r�r�r�r&rPr�)r1rRr�r2r2r3�test_1463026_3s

zXmlgenTest.test_1463026_3cCsr|��}t|dd�}|��|�dd�|�ddddi�|�dd�|�d�|��|�|�	�|�
d	��dS)
NT)r�r�r�)r�r�r�)Nr�r�z<my:a xmlns:my="qux" b="c"/>)r�rr�r�r�r�r�r�r&rPr�)r1rRr�r2r2r3�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>TzM<a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>)rr�
setFeaturerr�r�setContentHandlerrNr&rPr�)r1Ztest_xml�parserrRr�r2r2r3�test_5027_1�s


zXmlgenTest.test_5027_1cCs�|��}t|�}|��|�dd�|�ddi�ddi}|�dd|�|�d	�|�dd�|�dd�|�d�|��|�	|�
�|�d
��dS)Nr�zhttp://example.com/ns)zhttp://example.com/ns�g1r�)z$http://www.w3.org/XML/1998/namespace�lang�en)zhttp://example.com/ns�g2r��HellozM<a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>)r�rr�r�r�r�r�r�r�r&rPr�)r1rRr�Z	lang_attrr2r2r3�test_5027_2�s


zXmlgenTest.test_5027_2cCs(|��}dd�}||�|�|j�dS)NcSs t|�}|��|�di�dS)Nr>)rr�r�)�outr�r2r2r3�func�sz+XmlgenTest.test_no_close_file.<locals>.func)r�ZassertFalsera)r1rRr�r2r2r3�test_no_close_file�szXmlgenTest.test_no_close_filecCsz|��}t|�}|�dddi�|�d�|�d�|�dddi�|�d�|�|��|�d�t|�d	��d��dS)
NZfoor�z1.0r�Zbarr�z2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar>�)	r�rr�r�r�r&rPr�r*)r1rRr�r2r2r3�test_xmlgen_fragment�s



zXmlgenTest.test_xmlgen_fragmentN)r;r<r=r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r2r2r2r3r��s0






	r�c@seZdZeZddd�ZdZdS)�StringXmlgenTest�
iso-8859-1cCsd||fS)Nz&<?xml version="1.0" encoding="%s"?>
%sr2)r1r>r?r2r2r3r��szStringXmlgenTest.xmlN)r�)r;r<r=rr�r�r�r2r2r2r3r��s
r�c@seZdZeZddd�ZdS)�BytesXmlgenTest�
iso-8859-1cCsd||f�|d�S)Nz&<?xml version="1.0" encoding="%s"?>
%srA)rB)r1r>r?r2r2r3r��szBytesXmlgenTest.xmlN)r�)r;r<r=rr�r�r2r2r2r3r��sr�c@seZdZGdd�de�ZdS)�WriterXmlgenTestc@s.eZdZejZdZdd�Zdd�Zdd�Z	dS)	zWriterXmlgenTest.ioclassFcCsdS)NTr2)r1r2r2r3�seekable�sz!WriterXmlgenTest.ioclass.seekablecCst|�S)N)r*)r1r2r2r3�tellszWriterXmlgenTest.ioclass.tellcCs
d�|�S)N�)�join)r1r2r2r3rPsz!WriterXmlgenTest.ioclass.getvalueN)
r;r<r=r,�appendrHrar�r�rPr2r2r2r3r��s
r�N)r;r<r=r,r�r2r2r2r3r��sr�c@seZdZdd�Zddd�ZdS)�StreamWriterXmlgenTestcCs"t�}t�d�|d�}|j|_|S)Nr�rA)r�codecs�	getwriterrP)r1�raw�writerr2r2r3r�szStreamWriterXmlgenTest.ioclass�
iso-8859-1cCsd||f�dd�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr�rA)rB)r1r>r?r2r2r3r�szStreamWriterXmlgenTest.xmlN)r�)r;r<r=r�r�r2r2r2r3r�sr�c@s(eZdZejdZdd�Zddd�ZdS)	�StreamReaderWriterXmlgenTestz-codecscsDtj�jddddd����fdd�}��|��fdd	�}|�_�S)
NrEr�rAr)r?rF�	bufferingcs���t��j�dS)N)rrrL�fnamer2)r1r�r2r3�cleanupsz5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupc	s(���t�jd��
}|��SQRXdS)NrW)rrG�namer~)rI)r�r2r3rPsz6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalue)r�rGr��
addCleanuprP)r1r�rPr2)r1r�r3r�s

z$StreamReaderWriterXmlgenTest.ioclass�
iso-8859-1cCsd||f�dd�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr�rA)rB)r1r>r?r2r2r3r�$sz StreamReaderWriterXmlgenTest.xmlN)r�)r;r<r=rrr�r�r�r2r2r2r3r�s
r�s,<?xml version="1.0" encoding="iso-8859-1"?>
c@seZdZdd�ZdS)�XMLFilterBaseTestcCspt�}t|�}t�}|�|�|��|�di�|�d�|�d�|�d�|�	�|�
|��td�dS)Nr>r�r�s<doc>content </doc>)
rrrr�r�r�r�r�r�r�r&rP�start)r1rRr��filterr2r2r3�test_filter_basic,s



z#XMLFilterBaseTest.test_filter_basicN)r;r<r=r�r2r2r2r3r�+sr�rWc@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):�ExpatReaderTestc	CsRt�}t�}t|�}|�|�ttd��}|�|�WdQRX|�|��t	�dS)NrW)
rrrr�rG�TEST_XMLFILErNr&rP�xml_test_out)r1r�rR�xmlgenrIr2r2r3�test_expat_binary_fileHs
z&ExpatReaderTest.test_expat_binary_filec	CsVt�}t�}t|�}|�|�ttddd��}|�|�WdQRX|�|��t	�dS)N�rtz
iso-8859-1)r?)
rrrr�rGr�rNr&rPr�)r1r�rRr�rIr2r2r3�test_expat_text_fileSs
z$ExpatReaderTest.test_expat_text_filecCsbtj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|d��|�
|��t�dS)NrW)r�TESTFN_UNICODE�shutil�copyfiler�r�rLrrrr�rNrGr&rPr�)r1r�r�rRr�r2r2r3�test_expat_binary_file_nonascii^s
z/ExpatReaderTest.test_expat_binary_file_nonasciic	Cs\t�t�}t�}t�}t|�}|�|�t|d��}|�|�WdQRX|�	|�
�t�dS)NrW)�os�fsencoder�rrrr�rGrNr&rPr�)r1r�r�rRr�rIr2r2r3�!test_expat_binary_file_bytes_namems

z1ExpatReaderTest.test_expat_binary_file_bytes_namec
Cspt�}t�}t|�}|�|�ttd��.}t|��ddd��}|�|�WdQRXWdQRX|�|�	�t
�dS)NrWF)�closefd)rrrr�rGr��filenorNr&rPr�)r1r�rRr�rI�f2r2r2r3�test_expat_binary_file_int_nameys
z/ExpatReaderTest.test_expat_binary_file_int_namec@s$eZdZdd�Zdd�Zdd�ZdS)zExpatReaderTest.TestDTDHandlercCsg|_g|_dS)N)�
_notations�	_entities)r1r2r2r3�__init__�sz'ExpatReaderTest.TestDTDHandler.__init__cCs|j�|||f�dS)N)r�r�)r1r��publicId�systemIdr2r2r3�notationDecl�sz+ExpatReaderTest.TestDTDHandler.notationDeclcCs|j�||||f�dS)N)r�r�)r1r�r�rZndatar2r2r3�unparsedEntityDecl�sz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r;r<r=r�rrr2r2r2r3�TestDTDHandler�src@seZdZdd�Zdd�ZdS)z"ExpatReaderTest.TestEntityRecordercCs
g|_dS)N)�entities)r1r2r2r3r��sz+ExpatReaderTest.TestEntityRecorder.__init__cCs.|j�||f�t�}|�|�|�|�|S)N)rr�rZsetPublicId�setSystemId)r1r�r�sourcer2r2r3�
resolveEntity�s


z0ExpatReaderTest.TestEntityRecorder.resolveEntityN)r;r<r=r�rr2r2r2r3�TestEntityRecorder�srcCsvt�}|��}|�|�|�d�|�d�|�d�|�d�|�d�|��|�|jdg�|�|jdg�dS)Nz<!DOCTYPE doc [
z-  <!ENTITY img SYSTEM "expat.gif" NDATA GIF>
zW  <!NOTATION GIF PUBLIC "-//CompuServe//NOTATION Graphics Interchange Format 89a//EN">
z]>
z<doc></doc>)�GIFz;-//CompuServe//NOTATION Graphics Interchange Format 89a//ENN)ZimgNz	expat.gifr	)rrZ
setDTDHandler�feedrr&r�r�)r1r�Zhandlerr2r2r3�test_expat_dtdhandler�s





z%ExpatReaderTest.test_expat_dtdhandlerc	CsXt�}|�td�|��}|�|�|�t��|�d�WdQRX|�|j	dg�dS)NTz8<!DOCTYPE external SYSTEM "unsupported://non-existing">
)Nzunsupported://non-existing)
rr�rr�setEntityResolverrrr
r&r)r1r��resolverr2r2r3�test_expat_external_dtd_enabled�s
z/ExpatReaderTest.test_expat_external_dtd_enabledcCsFt�}|��}|�|�|�d�|�d�|��|�|jg�dS)Nz8<!DOCTYPE external SYSTEM "unsupported://non-existing">
z<doc />)rrrr
rr&r)r1r�r
r2r2r3�test_expat_external_dtd_default�s

z/ExpatReaderTest.test_expat_external_dtd_defaultc@seZdZdd�ZdS)z"ExpatReaderTest.TestEntityResolvercCst�}|�td��|S)Ns	<entity/>)rrYr)r1r�r�inpsrcr2r2r3r�sz0ExpatReaderTest.TestEntityResolver.resolveEntityN)r;r<r=rr2r2r2r3�TestEntityResolver�srcCs|t�}|�td�|�|���t�}|�t|��|�d�|�d�|�d�|�d�|�	�|�
|��td�dS)NTz<!DOCTYPE doc [
z#  <!ENTITY test SYSTEM "whatever">
z]>
z<doc>&test;</doc>s<doc><entity></entity></doc>)
rr�rrrrr�rr
rr&rPr�)r1r�rRr2r2r3�!test_expat_entityresolver_enabled�s



z1ExpatReaderTest.test_expat_entityresolver_enabledcCs�t�}|�|�t�d�|�|���t�}|�t|��|�	d�|�	d�|�	d�|�	d�|�
�|�|��td�dS)NFz<!DOCTYPE doc [
z#  <!ENTITY test SYSTEM "whatever">
z]>
z<doc>&test;</doc>s<doc></doc>)
rr&Z
getFeaturerrrrr�rr
rrPr�)r1r�rRr2r2r3�!test_expat_entityresolver_default�s



z1ExpatReaderTest.test_expat_entityresolver_defaultc@seZdZdd�Zdd�ZdS)zExpatReaderTest.AttrGatherercCs
||_dS)N)�_attrs)r1r�rr2r2r3r��sz)ExpatReaderTest.AttrGatherer.startElementcCs
||_dS)N)r)r1r�Zqnamerr2r2r3r��sz+ExpatReaderTest.AttrGatherer.startElementNSN)r;r<r=r�r�r2r2r2r3�AttrGatherer�srcCs:t�}|��}|�|�|�d�|��|�|j�dS)Nz<doc/>)rrr�r
rr4r)r1r��gatherr2r2r3�test_expat_attrs_empty�s

z&ExpatReaderTest.test_expat_attrs_emptycCs:t�}|��}|�|�|�d�|��|�|j�dS)Nz<doc attr='val'/>)rrr�r
rr:r)r1r�rr2r2r3�test_expat_attrs_wattrs

z&ExpatReaderTest.test_expat_attrs_wattrcCs<td�}|��}|�|�|�d�|��|�|j�dS)Nr7z<doc/>)rrr�r
rr6r)r1r�rr2r2r3�test_expat_nsattrs_emptys

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)Nr7z"<doc xmlns:ns='%s' ns:attr='val'/>rzns:attrr8r)rrr�r
r5rrr&r'r(r`r)r*r9r.r,r/r0r!)r1r�rrr2r2r3�test_expat_nsattrs_wattrs$
z(ExpatReaderTest.test_expat_nsattrs_wattrcCs<t�}t�}t|�}|�|�|�t�|�|��t�dS)N)	rrrr�rNr�r&rPr�)r1r�rRr�r2r2r3�test_expat_inpsource_filename3s

z-ExpatReaderTest.test_expat_inpsource_filenamecCs@t�}t�}t|�}|�|�|�tt��|�|��t	�dS)N)
rrrr�rNrr�r&rPr�)r1r�rRr�r2r2r3�test_expat_inpsource_sysid=s
z*ExpatReaderTest.test_expat_inpsource_sysidcCs`tj}t�t|�|�tj|�t�}t�}t	|�}|�
|�|�t|��|�
|��t�dS)N)rr�r�r�r�r�rLrrrr�rNrr&rPr�)r1r�r�rRr�r2r2r3�#test_expat_inpsource_sysid_nonasciiGs
z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciic	Csbt�}t�}t|�}|�|�t�}ttd��}|�|�|�|�WdQRX|�	|�
�t�dS)NrW)rrrr�rrGr�rYrNr&rPr�)r1r�rRr�rrIr2r2r3� test_expat_inpsource_byte_streamVs

z0ExpatReaderTest.test_expat_inpsource_byte_streamc	Csft�}t�}t|�}|�|�t�}ttddd��}|�|�|�|�WdQRX|�	|�
�t�dS)Nr�z
iso-8859-1)r?)rrrr�rrGr�r�rNr&rPr�)r1r�rRr�rrIr2r2r3�%test_expat_inpsource_character_streamcs

z5ExpatReaderTest.test_expat_inpsource_character_streamcCsRt�}t|�}t�}|�|�|�d�|�d�|��|�|��td�dS)Nz<doc>z</doc>s<doc></doc>)	rrrr�r
rr&rPr�)r1rRr�r�r2r2r3�test_expat_incrementalrs


z&ExpatReaderTest.test_expat_incrementalcCs�t�}t|�}t�}|�|�|�d�|�d�t�}t|�}|�|�|��|�d�|�d�|�d�|��|�|��t	d�dS)Nz<doc>�textz</doc>s<doc>text</doc>)
rrrr�r
�resetrr&rPr�)r1rRr�r�r2r2r3�test_expat_incremental_reset~s






z,ExpatReaderTest.test_expat_incremental_resetcCsnt�}t|�}t�}|�|�|�d�|�d�|��|�|��d�|�|��d�|�|�	�d�dS)Nz<doc>z</doc>r7)
rrrr�r
rr&�getSystemId�getPublicId�
getLineNumber)r1rRr�r�r2r2r3�test_expat_locator_noinfo�s


z)ExpatReaderTest.test_expat_locator_noinfocCsLt�}t|�}t�}|�|�|�t�|�|��t�|�|��d�dS)N)	rrrr�rNr�r&r$r%)r1rRr�r�r2r2r3�test_expat_locator_withinfo�s

z+ExpatReaderTest.test_expat_locator_withinfocCsltj}t�t|�|�tj|�t�}t|�}t	�}|�
|�|�|�|�|�
�|�|�|��d�dS)N)rr�r�r�r�r�rLrrrr�rNr&r$r%)r1r�rRr�r�r2r2r3�$test_expat_locator_withinfo_nonascii�s

z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)!r;r<r=r�r��requires_nonascii_filenamesr�r�r�rrrrrrrrrrrrrrrrrrrr r#r'r(r)r2r2r2r3r�Ds8







r�c@s2eZdZdd�Zdd�Zdd�ZGdd�d�Zd	S)
�ErrorReportingTestc
Cs�t�}|�t��t�}|�td��d}|�|�y|�|�|��Wn2t	k
r|}z|�
|��|�Wdd}~XYnXdS)Ns<foo bar foobar>za file name)rr�rrrYrrrNZfailrr&r$)r1r�rr�r�r2r2r3�test_expat_inpsource_location�s

z0ErrorReportingTest.test_expat_inpsource_locationcCsJt�}|�t��|�t|jtd��|�|��d�|�|�	�d�dS)Nz<foo>�r7)
rr�rrrrNrr&�getColumnNumberr&)r1r�r2r2r3�test_expat_incomplete�s
z(ErrorReportingTest.test_expat_incompletecCsdttdd|�dd���ttdd|�dd���ttdd|�dd���ttdd|�dd���dS)N�messager7)�strr�DummyLocator)r1r2r2r3�test_sax_parse_exception_str�sz/ErrorReportingTest.test_sax_parse_exception_strc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zErrorReportingTest.DummyLocatorcCs||_||_dS)N)�_lineno�_colno)r1�lineno�colnor2r2r3r��sz(ErrorReportingTest.DummyLocator.__init__cCsdS)NZpubidr2)r1r2r2r3r%�sz+ErrorReportingTest.DummyLocator.getPublicIdcCsdS)NZsysidr2)r1r2r2r3r$�sz+ErrorReportingTest.DummyLocator.getSystemIdcCs|jS)N)r4)r1r2r2r3r&�sz-ErrorReportingTest.DummyLocator.getLineNumbercCs|jS)N)r5)r1r2r2r3r.�sz/ErrorReportingTest.DummyLocator.getColumnNumberN)r;r<r=r�r%r$r&r.r2r2r2r3r2�s
r2N)r;r<r=r,r/r3r2r2r2r2r3r+�s
r+c@s,eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
XmlReaderTestcCs|�ti��dS)N)r4r)r1r2r2r3�test_attrs_emptyszXmlReaderTest.test_attrs_emptycCs|�tddi��dS)Nrr8)r:r)r1r2r2r3�test_attrs_wattrszXmlReaderTest.test_attrs_wattrcCs|�tii��dS)N)r6r)r1r2r2r3�test_nsattrs_empty
sz 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)Nrr8zns:attrr7r)rr5r&r'r(r)r*r9r,r-r.r/r0r!r"r#r$)r1rr2r2r3�test_nsattrs_wattr
s"z XmlReaderTest.test_nsattrs_wattrN)r;r<r=r9r:r;r<r2r2r2r3r8sr8c
Cs"tttttttttt	t
tt�dS)N)
rrhrKrkryr�r�r�r�r�r�r+r8r2r2r2r3�	test_main"sr=�__main__)N).).)QrOrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr	r
rrr
Zxml.sax.expatreaderrZxml.sax.handlerrrZxml.sax.xmlreaderrrr�iorrr�ZgcZos.pathr�r�Zurllib.errorrr�rZtest.supportrrrr�ZTEST_XMLFILE_OUTrB�UnicodeEncodeErrorZsupports_nonascii_filenames�path�supports_unicode_filenamesr�ZTESTFN_ENCODING�UnicodeError�	TypeErrorZ
skipUnlessr*r5ZTestCaserr@rDrJrKrhrkryr�r�r�r�r�r�r�r�rGrIr~r�r�r+r8r=r;r2r2r2r3�<module>s�
 


5


x4Lc>!