Your IP : 216.73.216.213


Current Path : /proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/
Upload File :
Current File : //proc/242857/root/opt/alt/python34/lib64/python3.4/test/__pycache__/test_sax.cpython-34.pyo

�
f f��"@s�ddlmZmZmZmZmZddlZye�Wn!ek
rbejd��YnXddlm	Z	m
Z
mZmZm
Z
mZddlmZddlmZddlmZmZmZddlmZmZddlZddlZddlZddlZdd	lm Z dd
l!m"Z"m#Z#m$Z$e"ddd
�Z%e"ddd
�Z&ye%j'd�e&j'd�Wn!e(k
r�ejd��YnXdZ)ej*j+r�ye j,j'e j-�Wne.e/fk
r�dZ)YnXnej0e)d�Z1dZ2Gdd�dej3�Z4ddd�Z5ddd�Z6ddd�Z7Gdd�dej3�Z8Gd d!�d!ej3�Z9Gd"d#�d#ej3�Z:Gd$d%�d%ej3�Z;Gd&d'�d'�Z<Gd(d)�d)e<ej3�Z=Gd*d+�d+e<ej3�Z>Gd,d-�d-e>�Z?Gd.d/�d/e<ej3�Z@Gd0d1�d1e<ej3�ZAd2ZBGd3d4�d4ej3�ZCeDe&d5��ZEeEjF�ZGWdQXGd6d7�d7e4�ZHGd8d9�d9ej3�ZIGd:d;�d;e4�ZJd<d=�ZKeLd>kr�eK�ndS)?�)�make_parser�ContentHandler�SAXException�SAXReaderNotAvailable�SAXParseExceptionNzno XML parsers available)�XMLGenerator�escape�unescape�	quoteattr�
XMLFilterBase�prepare_input_source)�
create_parser)�feature_namespaces)�InputSource�AttributesImpl�AttributesNSImpl)�BytesIO�StringIO)�support)�findfile�run_unittest�TESTFNztest.xmlZsubdirZxmltestdataztest.xml.outzutf-8z!filename is not encodable to utf8TFz$Requires non-ascii filenames supportz%http://www.python.org/xml-ns/saxtest/c@s4eZdZdd�Zdd�Zdd�ZdS)�XmlTestBasecCsc|jt|jd�|jt|jd�|jt|jd�|jt|jd�|jt|jd�|j|j�d�|j|j	�g�|j|j
�g�|jt|�d�|jd|�|jt
|j��g�|j|jd�d�|j|jdd�d�|jt
|j��g�|jt
|j��g�dS)N�attrr�attrs�)�assertRaises�KeyError�getValue�getValueByQName�getNameByQName�getQNameByName�__getitem__�assertEqual�	getLength�getNames�	getQNames�len�assertNotIn�list�keys�get�items�values)�selfr�r/�2/opt/alt/python34/lib64/python3.4/test/test_sax.py�verify_empty_attrs0szXmlTestBase.verify_empty_attrscCs�|jt|jtdf�|jt|jd�|jt|jd�|jt|jtdf�|jt|jtdf�|j|j	�d�|j|j
�g�|j|j�g�|jt|�d�|j
tdf|�|jt|j��g�|j|jtdf�d�|j|jtdfd�d�|jt|j��g�|jt|j��g�dS)Nrzns:attrrr)rrr�ns_urirr r!r"r#r$r%r&r'r(r)r*r+r,r-)r.rr/r/r0�verify_empty_nsattrsAs"z XmlTestBase.verify_empty_nsattrscCs||j|j�d�|j|j�dg�|j|j�dg�|jt|�d�|jd|�|jt|j��dg�|j|jd�d�|j|jdd�d�|jt|j	��dg�|jt|j
��dg�|j|jd�d�|j|jd�d�|j|j
d�d�|j|dd�|j|jd�d�dS)N�r�valr)zattrzval)r#r$r%r&r'�assertInr)r*r+r,r-rrr r!)r.rr/r/r0�verify_attrs_wattrRszXmlTestBase.verify_attrs_wattrN)�__name__�
__module__�__qualname__r1r3r7r/r/r/r0r/srcCs|dkr|Sd||fS)Nz&<?xml version="1.0" encoding="%s"?>
%sr/)�doc�encodingr/r/r0�xml_strdsr=.cCs.|dkr|}nt||�j|d�S)N.�xmlcharrefreplace)r=�encode)r;r<�
decl_encodingr/r/r0�	xml_bytesis	rAcCsS|dkr|}nttdd|dd��}|jt||��WdQXdS)N.�wr<�errorsr>)�openr�writer=)r;r<r@�fr/r/r0�
make_xml_filens	rGc@sjeZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dS)�	ParseTestu,<money value="$£€𐅻">$£€𐅻</money>cCstjt�dS)N)r�unlinkr)r.r/r/r0�tearDownxszParseTest.tearDowncCsUddlm}t�}||t|d��|j|j�t|jd��dS)Nr)�parsezutf-8)�xml.saxrKrrr#�getvaluer=�data)r.rFrK�resultr/r/r0�check_parse{s	zParseTest.check_parsecCs�d	}x�|D]�}|jtt|j|���t|j|�ttdd|��}|j|�WdQX|jt|j��t|j|d�ttdd|��}|j|�WdQXq
WdS)
N�us-ascii�
iso-8859-1�utf-8�utf-16�utf-16le�utf-16be�rr<)rQrRrSrTrUrV)rPrr=rNrGrDr)r.�	encodingsr<rFr/r/r0�test_parse_text�s
zParseTest.test_parse_textc4Cs�d
}x�|D]�}|jtt|j|���t|j|�|jt�ttd��}|j|�WdQX|jtt|j|d���t|j|d�|jt�ttd��}|j|�WdQXq
W|jtt|jdd���t|jdd�|jt�ttd��}|j|�WdQX|jtt|jdd���t|jdd�|jt�ttd��}|j|�WdQX|jtt|jd���t|jd�|jt�ttd��}|j|�WdQX|jt��'|jtt|jdd���WdQXt|jdd�t	j
d	tf��2|jt��|jt�WdQXtj
�WdQXttd��*}|jt��|j|�WdQXWdQXdS)N�us-ascii�utf-8�utf-16�utf-16le�utf-16be�rbz	utf-8-sigz
iso-8859-1z
unclosed file)rZr[r\r]r^)rPrrArNrGrrDrrrZcheck_warnings�ResourceWarning�gcZcollect)r.rXr<rFr/r/r0�test_parse_bytes�sJ

"
"
"

(zParseTest.test_parse_bytesc	Cs_t|jdd�ttd��7}t�}|j|�|jd�|j|�WdQXdS)Nz
iso-8859-1r_)rGrNrDrr�
setByteStreamZsetEncodingrP)r.rF�inputr/r/r0�test_parse_InputSource�s	

z ParseTest.test_parse_InputSourcecCsUddlm}t�}||t|d��|j|j�t|jd��dS)Nr)�parseStringzutf-8)rLrfrrr#rMr=rN)r.�srfrOr/r/r0�check_parseString�s	zParseTest.check_parseStringcCs�d}xC|D];}|jt|j|��|jt|j|d��q
W|jt|jdd��|jt|jdd��|jt|jd��|jt��!|jt|jdd��WdQXdS)	N�us-ascii�utf-8�utf-16�utf-16le�utf-16bez	utf-8-sigz
iso-8859-1)rirjrkrlrm)rhrArNrr)r.rXr<r/r/r0�test_parseString_bytes�s
 z ParseTest.test_parseString_bytesN)r8r9r:rNrJrPrYrbrerhrnr/r/r/r0rHus
.	rHc@seZdZdd�ZdS)�MakeParserTestcCs�ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}dS)Nr)r)rLr)r.r�pr/r/r0�test_make_parser2�s					z MakeParserTest.test_make_parser2N)r8r9r:rqr/r/r/r0ro�sroc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dd�ZdS)�SaxutilsTestcCs|jtd�d�dS)NzDonald Duck & CozDonald Duck &amp; Co)r#r)r.r/r/r0�test_escape_basic�szSaxutilsTest.test_escape_basiccCs|jtd�d�dS)Nz<Donald Duck & Co>z&lt;Donald Duck &amp; Co&gt;)r#r)r.r/r/r0�test_escape_all�szSaxutilsTest.test_escape_allcCs$|jtdidd6�d�dS)NuHei på degz&aring;�åzHei p&aring; deg)r#r)r.r/r/r0�test_escape_extra�szSaxutilsTest.test_escape_extracCs|jtd�d�dS)NzDonald Duck &amp; CozDonald Duck & Co)r#r	)r.r/r/r0�test_unescape_basicsz SaxutilsTest.test_unescape_basiccCs|jtd�d�dS)Nz&lt;Donald Duck &amp; Co&gt;z<Donald Duck & Co>)r#r	)r.r/r/r0�test_unescape_allszSaxutilsTest.test_unescape_allcCs$|jtdidd6�d�dS)NuHei på degz&aring;ruzHei p&aring; deg)r#r	)r.r/r/r0�test_unescape_extra	sz SaxutilsTest.test_unescape_extracCs$|jtdidd6�d�dS)Nz	&amp;foo;Zsplatz&foo;)r#r	)r.r/r/r0�test_unescape_amp_extra
sz$SaxutilsTest.test_unescape_amp_extracCs|jtd�d�dS)NzDonald Duck & Coz"Donald Duck &amp; Co")r#r
)r.r/r/r0�test_quoteattr_basicsz!SaxutilsTest.test_quoteattr_basiccCs|jtd�d�dS)NzIncludes "double" quotesz'Includes "double" quotes')r#r
)r.r/r/r0�test_single_quoteattrsz"SaxutilsTest.test_single_quoteattrcCs|jtd�d�dS)NzIncludes 'single' quotesz"Includes 'single' quotes")r#r
)r.r/r/r0�test_double_quoteattrsz"SaxutilsTest.test_double_quoteattrcCs|jtd�d�dS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes")r#r
)r.r/r/r0�test_single_double_quoteattrsz)SaxutilsTest.test_single_double_quoteattrcCstdg�}dS)Nzxml.parsers.no_such_parser)r)r.rpr/r/r0�test_make_parser"szSaxutilsTest.test_make_parserN)r8r9r:rsrtrvrwrxryrzr{r|r}r~rr/r/r/r0rr�srrc@speZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dS)�PrepareInputSourceTestc	Cs8tj|_t|jd��}|jd�WdQXdS)NrBzThis was read from a file.)rr�filerDrE)r.Ztmpr/r/r0�setUp*szPrepareInputSourceTest.setUpcCstj|j�dS)N)rrIr�)r.r/r/r0rJ/szPrepareInputSourceTest.tearDowncCs
td�S)NsThis is a byte stream.)r)r.r/r/r0�make_byte_stream2sz'PrepareInputSourceTest.make_byte_streamcCs1|j|�|j|j�|�|j�dS)N)ZassertIsNotNoner#�read�close)r.�stream�contentr/r/r0�checkContent5s
z#PrepareInputSourceTest.checkContentcCs[t|j�}|j|j��t|�}|j|j��|j|j�d�dS)NsThis is a byte stream.)	rr�rcr�r�assertIsNone�getCharacterStreamr��
getByteStream)r.�src�prepr/r/r0�test_byte_stream;sz'PrepareInputSourceTest.test_byte_streamcCsHt|j�}t|�}|j|j��|j|j�d�dS)NsThis was read from a file.)rr�rr�r�r�r�)r.r�r�r/r/r0�test_system_idEs
z%PrepareInputSourceTest.test_system_idcCs<t|j�}|j|j��|j|j�d�dS)NsThis was read from a file.)rr�r�r�r�r�)r.r�r/r/r0�test_stringNsz"PrepareInputSourceTest.test_stringcCs?t|j��}|j|j��|j|j�d�dS)NsThis is a byte stream.)rr�r�r�r�r�)r.r�r/r/r0�test_binary_fileUsz'PrepareInputSourceTest.test_binary_fileN)r8r9r:r�rJr�r�r�r�r�r�r/r/r/r0r�(s
	r�c@s0eZdZdd�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�
XmlgenTestcCsl|j�}t|�}|j�|jdi�|jd�|j�|j|j�|jd��dS)Nr;z<doc></doc>)	�ioclassr�
startDocument�startElement�
endElement�endDocumentr#rM�xml)r.rO�genr/r/r0�test_xmlgen_basicas


zXmlgenTest.test_xmlgen_basiccCsr|j�}t|dd�}|j�|jdi�|jd�|j�|j|j�|jd��dS)N�short_empty_elementsTr;z<doc/>)	r�rr�r�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_basic_emptyks


z"XmlgenTest.test_xmlgen_basic_emptycCsy|j�}t|�}|j�|jdi�|jd�|jd�|j�|j|j�|j	d��dS)Nr;�huheiz<doc>huhei</doc>)
r�rr�r��
charactersr�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_contentus



zXmlgenTest.test_xmlgen_contentcCs|j�}t|dd�}|j�|jdi�|jd�|jd�|j�|j|j�|j	d��dS)Nr�Tr;r�z<doc>huhei</doc>)
r�rr�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_content_empty�s



z$XmlgenTest.test_xmlgen_content_emptycCs||j�}t|�}|j�|jdd�|jdi�|jd�|j�|j|j�|j	d��dS)N�testrNr;z<?test data?><doc></doc>)
r�rr�ZprocessingInstructionr�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_pi�s


zXmlgenTest.test_xmlgen_picCsy|j�}t|�}|j�|jdi�|jd�|jd�|j�|j|j�|j	d��dS)Nr;z<huhei&z<doc>&lt;huhei&amp;</doc>)
r�rr�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_content_escape�s



z%XmlgenTest.test_xmlgen_content_escapecCs�|j�}t|�}|j�|jdidd6�|jdidd6�|jd�|jdidd6�|jd�|jdidd6�|jd�|jd�|j�|j|j�|jd��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#rMr�)r.rOr�r/r/r0�test_xmlgen_attr_escape�s





z"XmlgenTest.test_xmlgen_attr_escapec	Cs�d}x�|D]�}|j�}t|d
|�}|j�|jdidd
6�|jd�|jd�|j�|j|j�|j	dd
|��q
WdS)N�iso-8859-15�utf-8�	utf-8-sig�utf-16�utf-16be�utf-16le�utf-32�utf-32be�utf-32ler<r;u€r�u<doc a="€">€</doc>)	r�r�r�r�r�r�r�r�r�)
r�rr�r�r�r�r�r#rMr�)r.rXr<rOr�r/r/r0�test_xmlgen_encoding�s




zXmlgenTest.test_xmlgen_encodingcCs�|j�}t|dd�}|j�|jdidd6�|jd�|jd�|j�|j|j�|j	ddd��dS)Nr<�asciir;u€r�z<doc a="&#8364;">&#8364;</doc>)
r�rr�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_unencodable�s



z"XmlgenTest.test_xmlgen_unencodablecCsy|j�}t|�}|j�|jdi�|jd�|jd�|j�|j|j�|j	d��dS)Nr;� z<doc> </doc>)
r�rr�r��ignorableWhitespacer�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_ignorable�s



z XmlgenTest.test_xmlgen_ignorablecCs|j�}t|dd�}|j�|jdi�|jd�|jd�|j�|j|j�|j	d��dS)Nr�Tr;r�z<doc> </doc>)
r�rr�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_ignorable_empty�s



z&XmlgenTest.test_xmlgen_ignorable_emptyc	Cs�d}x�|D]�}|j�}t|d
|�}|j�|jdidd
6�|jdj|��|jdj|��|jd�|j�|j	|j
�|jdd
|��q
WdS)N�iso-8859-15�utf-8�	utf-8-sig�utf-16�utf-16be�utf-16le�utf-32�utf-32be�utf-32ler<r;u€r�r�u<doc a="€">€ </doc>)	r�r�r�r�r�r�r�r�r�)r�rr�r�r�r?r�r�r�r#rMr�)r.rXr<rOr�r/r/r0�test_xmlgen_encoding_bytes�s



z%XmlgenTest.test_xmlgen_encoding_bytescCs�|j�}t|�}|j�|jdt�|jtdfdi�|jddi�|jdd�|jtdfd�|jd�|j�|j	|j
�|jdt��dS)N�ns1r;zns1:doc�udocz/<ns1:doc xmlns:ns1="%s"><udoc></udoc></ns1:doc>)Nr�)Nr�)r�rr��startPrefixMappingr2�startElementNS�endElementNS�endPrefixMappingr�r#rMr�)r.rOr�r/r/r0�test_xmlgen_nss


zXmlgenTest.test_xmlgen_nscCs�|j�}t|dd�}|j�|jdt�|jtdfdi�|jddi�|jd	d�|jtdfd�|jd�|j�|j	|j
�|jdt��dS)
Nr�Tr�r;zns1:docr�z)<ns1:doc xmlns:ns1="%s"><udoc/></ns1:doc>)N�udoc)Nr�)r�rr�r�r2r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_xmlgen_ns_emptys


zXmlgenTest.test_xmlgen_ns_emptycCsy|j�}t|�}|j�|jddidd6�|jdd�|j�|j|j�|jd��dS)Nr��c�bz
<a b="c"></a>)Nr�)Nr�)Nr�)	r�rr�r�r�r�r#rMr�)r.rOr�r/r/r0�test_1463026_1's

zXmlgenTest.test_1463026_1cCs|j�}t|dd�}|j�|jddidd6�|jd	d�|j�|j|j�|jd��dS)
Nr�Tr�r�r�z
<a b="c"/>)Nr�)Nr�)Nr�)	r�rr�r�r�r�r#rMr�)r.rOr�r/r/r0�test_1463026_1_empty2s

zXmlgenTest.test_1463026_1_emptycCs�|j�}t|�}|j�|jdd�|jddi�|jdd�|jd�|j�|j|j	�|j
d��dS)N�quxr�z<a xmlns="qux"></a>)r�r�)r�r�)r�rr�r�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_1463026_2=s


zXmlgenTest.test_1463026_2cCs�|j�}t|dd�}|j�|jdd�|jddi�|jdd�|jd�|j�|j|j	�|j
d��dS)Nr�Tr�r�z<a xmlns="qux"/>)�quxr�)r�r�)r�rr�r�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_1463026_2_emptyJs


zXmlgenTest.test_1463026_2_emptycCs�|j�}t|�}|j�|jdd�|jddidd6�|jd	d�|jd�|j�|j|j	�|j
d��dS)
N�myr�r�r�r�z"<my:a xmlns:my="qux" b="c"></my:a>)�quxr�)Nr�)r�r�)r�rr�r�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_1463026_3Ws


zXmlgenTest.test_1463026_3cCs�|j�}t|dd�}|j�|jdd�|jd	didd
6�|jdd�|jd�|j�|j|j	�|j
d��dS)Nr�Tr�r�r�r�r�z<my:a xmlns:my="qux" b="c"/>)�quxr�)Nr�)r�r�)r�rr�r�r�r�r�r�r#rMr�)r.rOr�r/r/r0�test_1463026_3_emptyes


zXmlgenTest.test_1463026_3_emptycCsztd�}t�}|jtd�|j�}t|�}|j|�|j|�|j|j	�|j
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>)rrZ
setFeaturerr�r�setContentHandlerrKr#rMr�)r.Ztest_xml�parserrOr�r/r/r0�test_5027_1ss		

zXmlgenTest.test_5027_1cCs�|j�}t|�}|j�|jdd�|jd
di�idd6}|jdd|�|jd�|jd
d�|jdd�|jd�|j�|j	|j
�|jd	��dS)Nr��http://example.com/ns�g1Zen�$http://www.w3.org/XML/1998/namespace�lang�g2�HellozM<a:g1 xmlns:a="http://example.com/ns"><a:g2 xml:lang="en">Hello</a:g2></a:g1>)r�r�)r�r�)r�r�)r�r�)r�r�)r�rr�r�r�r�r�r�r�r#rMr�)r.rOr�Z	lang_attrr/r/r0�test_5027_2�s




zXmlgenTest.test_5027_2cCs6|j�}dd�}||�|j|j�dS)NcSs*t|�}|j�|jdi�dS)Nr;)rr�r�)�outr�r/r/r0�func�s
z+XmlgenTest.test_no_close_file.<locals>.func)r�ZassertFalse�closed)r.rOr�r/r/r0�test_no_close_file�s
zXmlgenTest.test_no_close_filecCs�|j�}t|�}|jdidd6�|jd�|jd�|jdidd6�|jd�|j|j�|jd�t|jd	��d��dS)
NZfooz1.0r�r�Zbarz2.0r�z+<foo a="1.0">Hello</foo><bar b="2.0"></bar>�)	r�rr�r�r�r#rMr�r')r.rOr�r/r/r0�test_xmlgen_fragment�s


zXmlgenTest.test_xmlgen_fragmentN)r8r9r: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/r0r�`s0






	r�c@s+eZdZeZddd�ZdZdS)�StringXmlgenTestz
iso-8859-1cCsd||fS)Nz&<?xml version="1.0" encoding="%s"?>
%sr/)r.r;r<r/r/r0r��szStringXmlgenTest.xmlN)r8r9r:rr�r�r�r/r/r/r0r��sr�c@s%eZdZeZddd�ZdS)�BytesXmlgenTestz
iso-8859-1cCsd||fj|d�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr>)r?)r.r;r<r/r/r0r��szBytesXmlgenTest.xmlN)r8r9r:rr�r�r/r/r/r0r��sr�c@s&eZdZGdd�de�ZdS)�WriterXmlgenTestc@sCeZdZejZdZdd�Zdd�Zdd�Z	dS)	zWriterXmlgenTest.ioclassFcCsdS)NTr/)r.r/r/r0�seekable�sz!WriterXmlgenTest.ioclass.seekablecCs
t|�S)N)r')r.r/r/r0�tell�szWriterXmlgenTest.ioclass.tellcCs
dj|�S)N�)�join)r.r/r/r0rM�sz!WriterXmlgenTest.ioclass.getvalueN)
r8r9r:r)�appendrEr�r�r�rMr/r/r/r0r��s
	r�N)r8r9r:r)r�r/r/r/r0r��sr�c@s+eZdZdd�Zddd�ZdS)�StreamWriterXmlgenTestcCs1t�}tjd�|d�}|j|_|S)Nr�r>)r�codecs�	getwriterrM)r.�raw�writerr/r/r0r��s	zStreamWriterXmlgenTest.ioclassz
iso-8859-1cCsd||fjdd�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr�r>)r?)r.r;r<r/r/r0r��szStreamWriterXmlgenTest.xmlN)r8r9r:r�r�r/r/r/r0r��sr�c@s8eZdZejdZdd�Zddd�ZdS)�StreamReaderWriterXmlgenTestz-codecsc	shtj�jddddddd����fdd	�}�j|��fd
d�}|�_�S)NrBr<r�rCr>�	bufferingrcs�j�tj�j�dS)N)r�rrI�fnamer/)r.r�r/r0�cleanup�s
z5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupcs3�j�t�jd��}|j�SWdQXdS)Nr_)r�rD�namer�)rF)r�r/r0rM�s
z6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalue)r�rDr��
addCleanuprM)r.r�rMr/)r.r�r0r��s
	z$StreamReaderWriterXmlgenTest.ioclassz
iso-8859-1cCsd||fjdd�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr�r>)r?)r.r;r<r/r/r0r��sz StreamReaderWriterXmlgenTest.xmlN)r8r9r:rrr�r�r�r/r/r/r0r��s
r�s,<?xml version="1.0" encoding="iso-8859-1"?>
c@seZdZdd�ZdS)�XMLFilterBaseTestcCs�t�}t|�}t�}|j|�|j�|jdi�|jd�|jd�|jd�|j	�|j
|j�td�dS)Nr;r�r�s<doc>content </doc>)
rrrr�r�r�r�r�r�r�r#rM�start)r.rOr��filterr/r/r0�test_filter_basics		





z#XMLFilterBaseTest.test_filter_basicN)r8r9r:r�r/r/r/r0r�sr�r_c@sNeZdZdd�Zdd�Zedd��Zdd�Zd	d
�ZGdd�d�Z	d
d�Z
Gdd�d�Zdd�ZGdd�de
�Zdd�Zdd�Zdd�Zdd�Zdd�Zdd �Zed!d"��Zd#d$�Zd%d&�Zd'd(�Zd)d*�Zd+d,�Zed-d.��Zd/S)0�ExpatReaderTestc	Csjt�}t�}t|�}|j|�ttd��}|j|�WdQX|j|j�t	�dS)Nr_)
r
rrr�rD�TEST_XMLFILErKr#rM�xml_test_out)r.r�rO�xmlgenrFr/r/r0�test_expat_binary_file s		
z&ExpatReaderTest.test_expat_binary_filec	Cspt�}t�}t|�}|j|�ttddd��}|j|�WdQX|j|j�t	�dS)NZrtr<z
iso-8859-1)
r
rrr�rDrrKr#rMr)r.r�rOrrFr/r/r0�test_expat_text_file+s		
z$ExpatReaderTest.test_expat_text_filecCs�tj}tjt|�|jtj|�t�}t�}t	|�}|j
|�|jt|d��|j
|j�t�dS)Nr_)r�TESTFN_UNICODE�shutil�copyfilerr�rIr
rrr�rKrDr#rMr)r.r�r�rOrr/r/r0�test_expat_binary_file_nonascii6s			
z/ExpatReaderTest.test_expat_binary_file_nonasciic	Csytjt�}t�}t�}t|�}|j|�t|d��}|j|�WdQX|j	|j
�t�dS)Nr_)�os�fsencoderr
rrr�rDrKr#rMr)r.r�r�rOrrFr/r/r0�!test_expat_binary_file_bytes_nameEs		
z1ExpatReaderTest.test_expat_binary_file_bytes_namecCs�t�}t�}t|�}|j|�ttd��8}t|j�ddd��}|j|�WdQXWdQX|j|j	�t
�dS)Nr_�closefdF)r
rrr�rDr�filenorKr#rMr)r.r�rOrrF�f2r/r/r0�test_expat_binary_file_int_nameQs		
z/ExpatReaderTest.test_expat_binary_file_int_namec@s4eZdZdd�Zdd�Zdd�ZdS)zExpatReaderTest.TestDTDHandlercCsg|_g|_dS)N)�
_notations�	_entities)r.r/r/r0�__init__as	z'ExpatReaderTest.TestDTDHandler.__init__cCs|jj|||f�dS)N)rr�)r.r��publicId�systemIdr/r/r0�notationDeclesz+ExpatReaderTest.TestDTDHandler.notationDeclcCs |jj||||f�dS)N)rr�)r.r�rrZndatar/r/r0�unparsedEntityDeclhsz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r8r9r:rrrr/r/r/r0�TestDTDHandler_srcCs�t�}|j�}|j|�|jd�|jd�|jd�|jd�|jd�|j�|j|jd
g�|j|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>�GIF�;-//CompuServe//NOTATION Graphics Interchange Format 89a//EN�img�	expat.gif)rrN)rNrr)r
rZ
setDTDHandler�feedr�r#rr)r.r�Zhandlerr/r/r0�test_expat_dtdhandlerks	







z%ExpatReaderTest.test_expat_dtdhandlerc@seZdZdd�ZdS)z"ExpatReaderTest.TestEntityResolvercCs t�}|jtd��|S)Ns	<entity/>)rrcr)r.rr�inpsrcr/r/r0�
resolveEntitys	z0ExpatReaderTest.TestEntityResolver.resolveEntityN)r8r9r:r r/r/r/r0�TestEntityResolver}sr!cCs�t�}|j|j��t�}|jt|��|jd�|jd�|jd�|jd�|j�|j|j	�t
d�dS)Nz<!DOCTYPE doc [
z#  <!ENTITY test SYSTEM "whatever">
z]>
z<doc>&test;</doc>s<doc><entity></entity></doc>)r
ZsetEntityResolverr!rr�rrr�r#rMr�)r.r�rOr/r/r0�test_expat_entityresolver�s		




z)ExpatReaderTest.test_expat_entityresolverc@s(eZdZdd�Zdd�ZdS)zExpatReaderTest.AttrGatherercCs
||_dS)N)�_attrs)r.r�rr/r/r0r��sz)ExpatReaderTest.AttrGatherer.startElementcCs
||_dS)N)r#)r.r�Zqnamerr/r/r0r��sz+ExpatReaderTest.AttrGatherer.startElementNSN)r8r9r:r�r�r/r/r/r0�AttrGatherer�sr$cCsMt�}|j�}|j|�|jd�|j�|j|j�dS)Nz<doc/>)r
r$r�rr�r1r#)r.r��gatherr/r/r0�test_expat_attrs_empty�s	


z&ExpatReaderTest.test_expat_attrs_emptycCsMt�}|j�}|j|�|jd�|j�|j|j�dS)Nz<doc attr='val'/>)r
r$r�rr�r7r#)r.r�r%r/r/r0�test_expat_attrs_wattr�s	


z&ExpatReaderTest.test_expat_attrs_wattrcCsPtd�}|j�}|j|�|jd�|j�|j|j�dS)Nr4z<doc/>)r
r$r�rr�r3r#)r.r�r%r/r/r0�test_expat_nsattrs_empty�s


z(ExpatReaderTest.test_expat_nsattrs_emptycCs�td�}|j�}|j|�|jdt�|j�|j}|j|j�d�|j|j	�tdfg�|j
|j�gkp�|j�dgk�|jt|�d�|j
tdf|�|j|jtdf�d�|j|jtdfd�d�|jt|j��tdfdfg�|jt|j��dg�|j|jtdf�d�|j|tdfd�dS)Nr4z"<doc xmlns:ns='%s' ns:attr='val'/>rzns:attrr5r)r
r$r�rr2r�r#r#r$r%Z
assertTruer&r'r6r+r)r,r-r)r.r�r%rr/r/r0�test_expat_nsattrs_wattr�s$

	"+z(ExpatReaderTest.test_expat_nsattrs_wattrcCsRt�}t�}t|�}|j|�|jt�|j|j�t�dS)N)	r
rrr�rKrr#rMr)r.r�rOrr/r/r0�test_expat_inpsource_filename�s		

z-ExpatReaderTest.test_expat_inpsource_filenamecCsXt�}t�}t|�}|j|�|jtt��|j|j�t	�dS)N)
r
rrr�rKrrr#rMr)r.r�rOrr/r/r0�test_expat_inpsource_sysid�s		
z*ExpatReaderTest.test_expat_inpsource_sysidcCs�tj}tjt|�|jtj|�t�}t�}t	|�}|j
|�|jt|��|j
|j�t�dS)N)rrrrrr�rIr
rrr�rKrr#rMr)r.r�r�rOrr/r/r0�#test_expat_inpsource_sysid_nonascii�s			
z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciic	Cs�t�}t�}t|�}|j|�t�}ttd��!}|j|�|j|�WdQX|j	|j
�t�dS)Nr_)r
rrr�rrDrrcrKr#rMr)r.r�rOrrrFr/r/r0� test_expat_inpsource_byte_stream�s		
	
z0ExpatReaderTest.test_expat_inpsource_byte_streamcCsmt�}t|�}t�}|j|�|jd�|jd�|j�|j|j�td�dS)Nz<doc>z</doc>s<doc></doc>)	rrr
r�rr�r#rMr�)r.rOrr�r/r/r0�test_expat_incrementals		



z&ExpatReaderTest.test_expat_incrementalcCs�t�}t|�}t�}|j|�|jd�|jd�t�}t|�}|j|�|j�|jd�|jd�|jd�|j�|j|j�t	d�dS)Nz<doc>�textz</doc>s<doc>text</doc>)
rrr
r�r�resetr�r#rMr�)r.rOrr�r/r/r0�test_expat_incremental_resets		


	





z,ExpatReaderTest.test_expat_incremental_resetcCs�t�}t|�}t�}|j|�|jd�|jd�|j�|j|j�d�|j|j�d�|j|j	�d�dS)Nz<doc>z</doc>r4)
rrr
r�rr�r#�getSystemId�getPublicId�
getLineNumber)r.rOrr�r/r/r0�test_expat_locator_noinfo)s		



z)ExpatReaderTest.test_expat_locator_noinfocCsht�}t|�}t�}|j|�|jt�|j|j�t�|j|j�d�dS)N)	rrr
r�rKrr#r2r3)r.rOrr�r/r/r0�test_expat_locator_withinfo7s		

z+ExpatReaderTest.test_expat_locator_withinfocCs�tj}tjt|�|jtj|�t�}t|�}t	�}|j
|�|j|�|j|j
�|�|j|j�d�dS)N)rrrrrr�rIrrr
r�rKr#r2r3)r.r�rOrr�r/r/r0�$test_expat_locator_withinfo_nonasciiAs			

z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)r8r9r:rr�requires_nonascii_filenamesr	rrrrr!r"rr$r&r'r(r)r*r+r,r-r.r1r5r6r7r/r/r/r0rs.





rc@sGeZdZdd�Zdd�Zdd�ZGdd�d�Zd	S)
�ErrorReportingTestcCs�t�}|jt��t�}|jtd��d}|j|�y|j|�|j�Wn;t	k
r�}z|j
|j�|�WYdd}~XnXdS)Ns<foo bar foobar>za file name)r
r�rrrcrZsetSystemIdrKZfailrr#r2)r.r��sourcer�r�r/r/r0�test_expat_inpsource_locationXs		

z0ErrorReportingTest.test_expat_inpsource_locationcCset�}|jt��|jt|jtd��|j|j�d�|j|j	�d�dS)Nz<foo>�r4)
r
r�rrrrKrr#�getColumnNumberr4)r.r�r/r/r0�test_expat_incompletees
	z(ErrorReportingTest.test_expat_incompletecCs�ttdd|jdd���ttdd|jdd���ttdd|jdd���ttdd|jdd���dS)N�messager4)�strr�DummyLocator)r.r/r/r0�test_sax_parse_exception_strlsz/ErrorReportingTest.test_sax_parse_exception_strc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zErrorReportingTest.DummyLocatorcCs||_||_dS)N)�_lineno�_colno)r.�linenoZcolnor/r/r0rs	z(ErrorReportingTest.DummyLocator.__init__cCsdS)NZpubidr/)r.r/r/r0r3�sz+ErrorReportingTest.DummyLocator.getPublicIdcCsdS)NZsysidr/)r.r/r/r0r2�sz+ErrorReportingTest.DummyLocator.getSystemIdcCs|jS)N)rC)r.r/r/r0r4�sz-ErrorReportingTest.DummyLocator.getLineNumbercCs|jS)N)rD)r.r/r/r0r=�sz/ErrorReportingTest.DummyLocator.getColumnNumberN)r8r9r:rr3r2r4r=r/r/r/r0rA~s
rAN)r8r9r:r;r>rBrAr/r/r/r0r9Ws
r9c@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
XmlReaderTestcCs|jti��dS)N)r1r)r.r/r/r0�test_attrs_empty�szXmlReaderTest.test_attrs_emptycCs|jtidd6��dS)Nr5r)r7r)r.r/r/r0�test_attrs_wattr�szXmlReaderTest.test_attrs_wattrcCs|jtii��dS)N)r3r)r.r/r/r0�test_nsattrs_empty�sz XmlReaderTest.test_nsattrs_emptycCs�tidtdf6idtdf6�}|j|j�d�|j|j�tdfg�|j|j�dg�|jt|�d�|jtdf|�|jt|j	��tdfg�|j|j
tdf�d�|j|j
tdfd�d�|jt|j��tdfdfg�|jt|j��dg�|j|j
tdf�d�|j|jd�d�|j|jd�tdf�|j|tdfd�|j|jtdf�d�dS)Nr5rzns:attrr4r)rr2r#r$r%r&r'r6r)r*r+r,r-rrr r!)r.rr/r/r0�test_nsattrs_wattr�s"%"+z XmlReaderTest.test_nsattrs_wattrN)r8r9r:rGrHrIrJr/r/r/r0rF�srFc
Cs/tttttttttt	t
tt�dS)N)
rrorHrrr�r�r�r�r�r�rr9rFr/r/r/r0�	test_main�srK�__main__)MrLrrrrrZunittestZSkipTestZxml.sax.saxutilsrrr	r
rrZxml.sax.expatreaderr
Zxml.sax.handlerrZxml.sax.xmlreaderrrr�iorrr�raZos.pathr
rr�rZtest.supportrrrrZTEST_XMLFILE_OUTr?�UnicodeEncodeErrorZsupports_nonascii_filenames�path�supports_unicode_filenamesrZTESTFN_ENCODING�UnicodeError�	TypeErrorZ
skipUnlessr8r2ZTestCaserr=rArGrHrorrr�r�r�r�r�r�r�r�r�rDrFr�rrr9rFrKr8r/r/r/r0�<module>sv(
.


	5f48�b�<>!