Your IP : 216.73.216.213


Current Path : /opt/alt/python35/lib64/python3.5/test/__pycache__/
Upload File :
Current File : //opt/alt/python35/lib64/python3.5/test/__pycache__/test_sax.cpython-35.pyc



��Yfa��#@sddlmZmZmZmZmZddlZddlmZye�Wn!ek
rrejd��YnXddl	m
Z
mZmZm
Z
mZmZddlmZddlmZddlmZmZmZdd	lmZmZddlZddlZddlZddlZdd
l m!Z!ddl"m#Z#m$Z$m%Z%e#dd
d�Z&e#dd
d�Z'ye&j(d�e'j(d�Wn!e)k
r�ejd��YnXdZ*ej+j,rye!j-j(e!j.�Wne/e0fk
r�dZ*YnXej1e*d�Z2dZ3Gdd�dej4�Z5ddd�Z6ddd�Z7ddd�Z8Gdd �d ej4�Z9Gd!d"�d"ej4�Z:Gd#d$�d$ej4�Z;Gd%d&�d&ej4�Z<Gd'd(�d(�Z=Gd)d*�d*e=ej4�Z>Gd+d,�d,e=ej4�Z?Gd-d.�d.e?�Z@Gd/d0�d0e=ej4�ZAGd1d2�d2e=ej4�ZBd3ZCGd4d5�d5ej4�ZDeEe'd6��ZFeFjG�ZHWdQRXGd7d8�d8e5�ZIGd9d:�d:ej4�ZJGd;d<�d<e5�ZKd=d>�ZLeMd?kreL�dS)@�)�make_parser�ContentHandler�SAXException�SAXReaderNotAvailable�SAXParseExceptionN)�mockzno 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�r0�2/opt/alt/python35/lib64/python3.5/test/test_sax.py�verify_empty_attrs1szXmlTestBase.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_urir r!r"r#r$r%r&r'r(r)r*r+r,r-r.)r/rr0r0r1�verify_empty_nsattrsBs"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)rr6)r$r%r&r'r(�assertInr*r+r,r-r.rr r!r")r/rr0r0r1�verify_attrs_wattrSszXmlTestBase.verify_attrs_wattrN)�__name__�
__module__�__qualname__r2r4r8r0r0r0r1r0srcCs|dkr|Sd||fS)Nz&<?xml version="1.0" encoding="%s"?>
%sr0)�doc�encodingr0r0r1�xml_stresr>.cCs+|dkr|}t||�j|d�S)N.�xmlcharrefreplace)r>�encode)r<r=�
decl_encodingr0r0r1�	xml_bytesjsrBcCsQ|dkr|}ttdd|dd��}|jt||��WdQRXdS)N.�wr=�errorsr?)�openr�writer>)r<r=rA�fr0r0r1�
make_xml_fileosrHc@s�eZdZdZdd�Zdd�Zdd�Zdd	�Zd
d�Zdd
�Z	dd�Z
dd�Zdd�ZdS)�	ParseTestu,<money value="$£€𐅻">$£€𐅻</money>cCstjt�dS)N)r�unlinkr)r/r0r0r1�tearDownyszParseTest.tearDowncCsUddlm}t�}||t|d��|j|j�t|jd��dS)Nr)�parsezutf-8)�xml.saxrLrrr$�getvaluer>�data)r/rGrL�resultr0r0r1�check_parse|s	zParseTest.check_parsecCs�d	}x�|D]�}|jtt|j|���t|j|�ttdd|��}|j|�WdQRX|jt|j��t|j|d�ttdd|��}|j|�WdQRXq
WdS)
N�us-ascii�
iso-8859-1�utf-8�utf-16�utf-16le�utf-16be�rr=)rRrSrTrUrVrW)rQrr>rOrHrEr)r/�	encodingsr=rGr0r0r1�test_parse_text�s
zParseTest.test_parse_textc3Cs�d	}x�|D]�}|jtt|j|���t|j|�|jt�ttd��}|j|�WdQRX|jtt|j|d���t|j|d�|jt�ttd��}|j|�WdQRXq
W|jtt|jdd���t|jdd�|jt�ttd��}|j|�WdQRX|jtt|jdd���t|jdd�|jt�ttd��}|j|�WdQRX|jtt|jd���t|jd�|jt�ttd��}|j|�WdQRX|jt��'|jtt|jdd���WdQRXt|jdd�|jt��|jt�WdQRXttd��+}|jt��|j|�WdQRXWdQRXdS)
N�us-ascii�utf-8�utf-16�utf-16le�utf-16be�rbz	utf-8-sigz
iso-8859-1)r[r\r]r^r_)	rQrrBrOrHrrErr)r/rYr=rGr0r0r1�test_parse_bytes�sF

"
"
"

)zParseTest.test_parse_bytesc	Cs`t|jdd�ttd��7}t�}|j|�|jd�|j|�WdQRXdS)Nz
iso-8859-1r`)rHrOrErr�
setByteStreamZsetEncodingrQ)r/rG�inputr0r0r1�test_parse_InputSource�s	

z ParseTest.test_parse_InputSourcecs�t�d���fdd�}tjdd|��Lt|jdd�|jt��|jt�WdQRX|j	�j
�WdQRXdS)Ncs�|���S)Nr0)�args)�builtin_open�fileobjr0r1�	mock_open�sz4ParseTest.test_parse_close_source.<locals>.mock_openzxml.sax.saxutils.openZside_effectz
iso-8859-1)rErZpatchrHrOrrrQr�
assertTrue�closed)r/rhr0)rfrgr1�test_parse_close_source�sz!ParseTest.test_parse_close_sourcecCsUddlm}t�}||t|d��|j|j�t|jd��dS)Nr)�parseStringzutf-8)rMrlrrr$rNr>rO)r/�srlrPr0r0r1�check_parseString�s	zParseTest.check_parseStringcCsDd}x'|D]}|jt|j|��q
W|j|j�dS)N�us-ascii�
iso-8859-1�utf-8�utf-16�utf-16le�utf-16be)rorprqrrrsrt)rnr>rO)r/rYr=r0r0r1�test_parseString_text�s

zParseTest.test_parseString_textcCs�d}xC|D];}|jt|j|��|jt|j|d��q
W|jt|jdd��|jt|jdd��|jt|jd��|jt��!|jt|jdd��WdQRXdS)	N�us-ascii�utf-8�utf-16�utf-16le�utf-16bez	utf-8-sigz
iso-8859-1)rvrwrxryrz)rnrBrOrr)r/rYr=r0r0r1�test_parseString_bytes�s
 z ParseTest.test_parseString_bytesN)
r9r:r;rOrKrQrZrardrkrnrur{r0r0r0r1rIvs
*	rIc@seZdZdd�ZdS)�MakeParserTestcCs�ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}ddlm}|�}dS)Nr)r)rMr)r/r�pr0r0r1�test_make_parser2�s					z MakeParserTest.test_make_parser2N)r9r:r;r~r0r0r0r1r|�sr|c@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/r0r0r1�test_escape_basic	szSaxutilsTest.test_escape_basiccCs|jtd�d�dS)Nz<Donald Duck & Co>z&lt;Donald Duck &amp; Co&gt;)r$r	)r/r0r0r1�test_escape_allszSaxutilsTest.test_escape_allcCs#|jtdddi�d�dS)NuHei på deg�åz&aring;zHei p&aring; deg)r$r	)r/r0r0r1�test_escape_extraszSaxutilsTest.test_escape_extracCs|jtd�d�dS)NzDonald Duck &amp; CozDonald Duck & Co)r$r
)r/r0r0r1�test_unescape_basicsz SaxutilsTest.test_unescape_basiccCs|jtd�d�dS)Nz&lt;Donald Duck &amp; Co&gt;z<Donald Duck & Co>)r$r
)r/r0r0r1�test_unescape_allszSaxutilsTest.test_unescape_allcCs#|jtdddi�d�dS)NuHei på degr�z&aring;zHei p&aring; deg)r$r
)r/r0r0r1�test_unescape_extrasz SaxutilsTest.test_unescape_extracCs#|jtdddi�d�dS)Nz	&amp;foo;z&foo;Zsplat)r$r
)r/r0r0r1�test_unescape_amp_extra sz$SaxutilsTest.test_unescape_amp_extracCs|jtd�d�dS)NzDonald Duck & Coz"Donald Duck &amp; Co")r$r)r/r0r0r1�test_quoteattr_basic$sz!SaxutilsTest.test_quoteattr_basiccCs|jtd�d�dS)NzIncludes "double" quotesz'Includes "double" quotes')r$r)r/r0r0r1�test_single_quoteattr(sz"SaxutilsTest.test_single_quoteattrcCs|jtd�d�dS)NzIncludes 'single' quotesz"Includes 'single' quotes")r$r)r/r0r0r1�test_double_quoteattr,sz"SaxutilsTest.test_double_quoteattrcCs|jtd�d�dS)Nz%Includes 'single' and "double" quotesz1"Includes 'single' and &quot;double&quot; quotes")r$r)r/r0r0r1�test_single_double_quoteattr0sz)SaxutilsTest.test_single_double_quoteattrcCstdg�}dS)Nzxml.parsers.no_such_parser)r)r/r}r0r0r1�test_make_parser5szSaxutilsTest.test_make_parserN)r9r:r;r�r�r�r�r�r�r�r�r�r�r�r�r0r0r0r1rsrc@s�eZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dd�Z
dd�Zdd�Zdd�Z
dS)�PrepareInputSourceTestc	Cs9tj|_t|jd��}|jd�WdQRXdS)NrCzThis was read from a file.)rr�filerErF)r/Ztmpr0r0r1�setUp=szPrepareInputSourceTest.setUpcCstj|j�dS)N)rrJr�)r/r0r0r1rKBszPrepareInputSourceTest.tearDowncCs
td�S)NsThis is a byte stream.)r)r/r0r0r1�make_byte_streamEsz'PrepareInputSourceTest.make_byte_streamcCs
td�S)NzThis is a character stream.)r)r/r0r0r1�make_character_streamHsz,PrepareInputSourceTest.make_character_streamcCs1|j|�|j|j�|�|j�dS)N)ZassertIsNotNoner$�read�close)r/�stream�contentr0r0r1�checkContentKs
z#PrepareInputSourceTest.checkContentcCs[t|j�}|j|j��t|�}|j|j��|j|j�d�dS)NzThis is a character stream.)	rr��setCharacterStreamr�r
�assertIsNone�
getByteStreamr��getCharacterStream)r/�src�prepr0r0r1�test_character_streamQsz,PrepareInputSourceTest.test_character_streamcCs[t|j�}|j|j��t|�}|j|j��|j|j�d�dS)NsThis is a byte stream.)	rr�rbr�r
r�r�r�r�)r/r�r�r0r0r1�test_byte_streamZs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�r0r0r1�test_system_idds
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�r0r0r1�test_stringmsz"PrepareInputSourceTest.test_stringcCs?t|j��}|j|j��|j|j�d�dS)NsThis is a byte stream.)r
r�r�r�r�r�)r/r�r0r0r1�test_binary_filetsz'PrepareInputSourceTest.test_binary_filecCs?t|j��}|j|j��|j|j�d�dS)NzThis is a character stream.)r
r�r�r�r�r�)r/r�r0r0r1�test_text_file|sz%PrepareInputSourceTest.test_text_fileN)r9r:r;r�rKr�r�r�r�r�r�r�r�r�r0r0r0r1r�;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$rN�xml)r/rP�genr0r0r1�test_xmlgen_basic�s


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$rNr�)r/rPr�r0r0r1�test_xmlgen_basic_empty�s


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$rNr�)r/rPr�r0r0r1�test_xmlgen_content�s



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$rNr�)r/rPr�r0r0r1�test_xmlgen_content_empty�s



z$XmlgenTest.test_xmlgen_content_emptycCs||j�}t|�}|j�|jdd�|jdi�|jd�|j�|j|j�|j	d��dS)N�testrOr<z<?test data?><doc></doc>)
r�rr�ZprocessingInstructionr�r�r�r$rNr�)r/rPr�r0r0r1�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$rNr�)r/rPr�r0r0r1�test_xmlgen_content_escape�s



z%XmlgenTest.test_xmlgen_content_escapecCs�|j�}t|�}|j�|jdddi�|jdddi�|jd�|jdddi�|jd�|jdddi�|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$rNr�)r/rPr�r0r0r1�test_xmlgen_attr_escape�s





z"XmlgenTest.test_xmlgen_attr_escapec	Cs�d}x�|D]�}|j�}t|d
|�}|j�|jddd
i�|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<r�u€u<doc a="€">€</doc>)	r�r�r�r�r�r�r�r�r�)
r�rr�r�r�r�r�r$rNr�)r/rYr=rPr�r0r0r1�test_xmlgen_encoding�s




zXmlgenTest.test_xmlgen_encodingcCs�|j�}t|dd�}|j�|jdddi�|jd�|jd�|j�|j|j�|j	ddd��dS)Nr=�asciir<r�u€z<doc a="&#8364;">&#8364;</doc>)
r�rr�r�r�r�r�r$rNr�)r/rPr�r0r0r1�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$rNr�)r/rPr�r0r0r1�test_xmlgen_ignorables



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$rNr�)r/rPr�r0r0r1�test_xmlgen_ignorable_emptys



z&XmlgenTest.test_xmlgen_ignorable_emptyc	Cs�d}x�|D]�}|j�}t|d
|�}|j�|jddd
i�|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<r�u€r�u<doc a="€">€ </doc>)	r�r�r�r�r�r�r�r�r�)r�rr�r�r�r@r�r�r�r$rNr�)r/rYr=rPr�r0r0r1�test_xmlgen_encoding_bytess



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��startPrefixMappingr3�startElementNS�endElementNS�endPrefixMappingr�r$rNr�)r/rPr�r0r0r1�test_xmlgen_ns*s


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>)Nr�)Nr�)r�rr�r�r3r�r�r�r�r$rNr�)r/rPr�r0r0r1�test_xmlgen_ns_empty<s


zXmlgenTest.test_xmlgen_ns_emptycCsx|j�}t|�}|j�|jddddi�|jdd�|j�|j|j�|jd��dS)Nr��b�cz
<a b="c"></a>)Nr�)Nr�)Nr�)	r�rr�r�r�r�r$rNr�)r/rPr�r0r0r1�test_1463026_1Ns

zXmlgenTest.test_1463026_1cCs~|j�}t|dd�}|j�|jddddi�|jd	d�|j�|j|j�|jd��dS)
Nr�Tr�r�r�z
<a b="c"/>)Nr�)Nr�)Nr�)	r�rr�r�r�r�r$rNr�)r/rPr�r0r0r1�test_1463026_1_emptyYs

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$rNr�)r/rPr�r0r0r1�test_1463026_2ds


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"/>)r�r�)r�r�)r�rr�r�r�r�r�r�r$rNr�)r/rPr�r0r0r1�test_1463026_2_emptyqs


zXmlgenTest.test_1463026_2_emptycCs�|j�}t|�}|j�|jdd�|jddddi�|jd	d�|jd�|j�|j|j	�|j
d��dS)
N�myr�r�r�r�z"<my:a xmlns:my="qux" b="c"></my:a>)r�r�)Nr�)r�r�)r�rr�r�r�r�r�r�r$rNr�)r/rPr�r0r0r1�test_1463026_3~s


zXmlgenTest.test_1463026_3cCs�|j�}t|dd�}|j�|jdd�|jd	dd
di�|jdd�|jd�|j�|j|j	�|j
d��dS)Nr�Tr�r�r�r�r�z<my:a xmlns:my="qux" b="c"/>)r�r�)Nr�)r�r�)r�rr�r�r�r�r�r�r$rNr�)r/rPr�r0r0r1�test_1463026_3_empty�s


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�setContentHandlerrLr$rNr�)r/Ztest_xml�parserrPr�r0r0r1�test_5027_1�s		

zXmlgenTest.test_5027_1cCs�|j�}t|�}|j�|jdd�|jd
di�ddi}|jdd|�|jd�|jd
d�|jdd�|jd�|j�|j	|j
�|jd	��dS)Nr��http://example.com/ns�g1�$http://www.w3.org/XML/1998/namespace�langZen�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$rNr�)r/rPr�Z	lang_attrr0r0r1�test_5027_2�s



zXmlgenTest.test_5027_2cCs6|j�}dd�}||�|j|j�dS)NcSs*t|�}|j�|jdi�dS)Nr<)rr�r�)�outr�r0r0r1�func�s
z+XmlgenTest.test_no_close_file.<locals>.func)r�ZassertFalserj)r/rPr�r0r0r1�test_no_close_file�s
zXmlgenTest.test_no_close_filecCs�|j�}t|�}|jdddi�|jd�|jd�|jdddi�|jd�|j|j�|jd�t|jd	��d��dS)
NZfoor�z1.0r�Zbarr�z2.0z+<foo a="1.0">Hello</foo><bar b="2.0"></bar>�)	r�rr�r�r�r$rNr�r()r/rPr�r0r0r1�test_xmlgen_fragment�s


zXmlgenTest.test_xmlgen_fragmentN)r9r: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�r0r0r0r1r��s0






	r�c@s+eZdZeZddd�ZdZdS)�StringXmlgenTestz
iso-8859-1cCsd||fS)Nz&<?xml version="1.0" encoding="%s"?>
%sr0)r/r<r=r0r0r1r��szStringXmlgenTest.xmlN)r9r:r;rr�r�r�r0r0r0r1r��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=r0r0r1r��szBytesXmlgenTest.xmlN)r9r:r;rr�r�r0r0r0r1r��sr�c@s&eZdZGdd�de�ZdS)�WriterXmlgenTestc@sCeZdZejZdZdd�Zdd�Zdd�Z	dS)	zWriterXmlgenTest.ioclassFcCsdS)NTr0)r/r0r0r1�seekable�sz!WriterXmlgenTest.ioclass.seekablecCs
t|�S)N)r()r/r0r0r1�tell�szWriterXmlgenTest.ioclass.tellcCs
dj|�S)N�)�join)r/r0r0r1rNsz!WriterXmlgenTest.ioclass.getvalueN)
r9r:r;r*�appendrFrjr�r�rNr0r0r0r1r��s
	r�N)r9r:r;r*r�r0r0r0r1r��sr�c@s+eZdZdd�Zddd�ZdS)�StreamWriterXmlgenTestcCs1t�}tjd�|d�}|j|_|S)Nr�r?)r�codecs�	getwriterrN)r/�raw�writerr0r0r1r�s	zStreamWriterXmlgenTest.ioclassz
iso-8859-1cCsd||fjdd�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr�r?)r@)r/r<r=r0r0r1r�
szStreamWriterXmlgenTest.xmlN)r9r:r;r�r�r0r0r0r1r�sr�c@s8eZdZejdZdd�Zddd�ZdS)�StreamReaderWriterXmlgenTestz-codecsc	shtj�jddddddd����fdd	�}�j|��fd
d�}|�_�S)NrCr=r�rDr?�	bufferingrcs�j�tj�j�dS)N)r�rrJ�fnamer0)r/rr0r1�cleanups
z5StreamReaderWriterXmlgenTest.ioclass.<locals>.cleanupc	s4�j�t�jd��}|j�SWdQRXdS)Nr`)r�rE�namer�)rG)rr0r1rNs
z6StreamReaderWriterXmlgenTest.ioclass.<locals>.getvalue)r�rEr�
addCleanuprN)r/rrNr0)r/rr1r�s
	z$StreamReaderWriterXmlgenTest.ioclassz
iso-8859-1cCsd||fjdd�S)Nz&<?xml version="1.0" encoding="%s"?>
%sr�r?)r@)r/r<r=r0r0r1r�#sz StreamReaderWriterXmlgenTest.xmlN)r9r:r;rrrr�r�r0r0r0r1rs
rs,<?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>)
rrrr�r�r�r�r�r�r�r$rN�start)r/rPr��filterr0r0r1�test_filter_basic+s		





z#XMLFilterBaseTest.test_filter_basicN)r9r:r;rr0r0r0r1r*srr`c@sZeZdZdd�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,�Zd-d.�Zed/d0��Zd1S)2�ExpatReaderTestc
Cskt�}t�}t|�}|j|�ttd��}|j|�WdQRX|j|j�t	�dS)Nr`)
rrrr�rE�TEST_XMLFILErLr$rN�xml_test_out)r/r�rP�xmlgenrGr0r0r1�test_expat_binary_fileGs		
z&ExpatReaderTest.test_expat_binary_filec
Csqt�}t�}t|�}|j|�ttddd��}|j|�WdQRX|j|j�t	�dS)N�rtr=z
iso-8859-1)
rrrr�rEr
rLr$rNr)r/r�rPrrGr0r0r1�test_expat_text_fileRs		
z$ExpatReaderTest.test_expat_text_filecCs�tj}tjt|�|jtj|�t�}t�}t	|�}|j
|�|jt|d��|j
|j�t�dS)Nr`)r�TESTFN_UNICODE�shutil�copyfiler
rrJrrrr�rLrEr$rNr)r/rr�rPrr0r0r1�test_expat_binary_file_nonascii]s			
z/ExpatReaderTest.test_expat_binary_file_nonasciic
Csztjt�}t�}t�}t|�}|j|�t|d��}|j|�WdQRX|j	|j
�t�dS)Nr`)�os�fsencoder
rrrr�rErLr$rNr)r/rr�rPrrGr0r0r1�!test_expat_binary_file_bytes_namels		
z1ExpatReaderTest.test_expat_binary_file_bytes_namecCs�t�}t�}t|�}|j|�ttd��9}t|j�ddd��}|j|�WdQRXWdQRX|j|j	�t
�dS)Nr`�closefdF)rrrr�rEr
�filenorLr$rNr)r/r�rPrrG�f2r0r0r1�test_expat_binary_file_int_namexs		
z/ExpatReaderTest.test_expat_binary_file_int_namec@s4eZdZdd�Zdd�Zdd�ZdS)zExpatReaderTest.TestDTDHandlercCsg|_g|_dS)N)�
_notations�	_entities)r/r0r0r1�__init__�s	z'ExpatReaderTest.TestDTDHandler.__init__cCs|jj|||f�dS)N)rr�)r/r�publicId�systemIdr0r0r1�notationDecl�sz+ExpatReaderTest.TestDTDHandler.notationDeclcCs |jj||||f�dS)N)rr�)r/rr!r"Zndatar0r0r1�unparsedEntityDecl�sz1ExpatReaderTest.TestDTDHandler.unparsedEntityDeclN)r9r:r;r r#r$r0r0r0r1�TestDTDHandler�sr%cCs�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)r&r'N)r(Nr)r&)rr%Z
setDTDHandler�feedr�r$rr)r/r�Zhandlerr0r0r1�test_expat_dtdhandler�s	







z%ExpatReaderTest.test_expat_dtdhandlerc@seZdZdd�ZdS)z"ExpatReaderTest.TestEntityResolvercCs t�}|jtd��|S)Ns	<entity/>)rrbr)r/r!r"�inpsrcr0r0r1�
resolveEntity�s	z0ExpatReaderTest.TestEntityResolver.resolveEntityN)r9r:r;r-r0r0r0r1�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>)rZsetEntityResolverr.rr�rr*r�r$rNr	)r/r�rPr0r0r1�test_expat_entityresolver�s		




z)ExpatReaderTest.test_expat_entityresolverc@s(eZdZdd�Zdd�ZdS)zExpatReaderTest.AttrGatherercCs
||_dS)N)�_attrs)r/rrr0r0r1r��sz)ExpatReaderTest.AttrGatherer.startElementcCs
||_dS)N)r0)r/rZqnamerr0r0r1r��sz+ExpatReaderTest.AttrGatherer.startElementNSN)r9r:r;r�r�r0r0r0r1�AttrGatherer�sr1cCsMt�}|j�}|j|�|jd�|j�|j|j�dS)Nz<doc/>)rr1r�r*r�r2r0)r/r��gatherr0r0r1�test_expat_attrs_empty�s	


z&ExpatReaderTest.test_expat_attrs_emptycCsMt�}|j�}|j|�|jd�|j�|j|j�dS)Nz<doc attr='val'/>)rr1r�r*r�r8r0)r/r�r2r0r0r1�test_expat_attrs_wattr�s	


z&ExpatReaderTest.test_expat_attrs_wattrcCsPtd�}|j�}|j|�|jd�|j�|j|j�dS)Nr5z<doc/>)rr1r�r*r�r4r0)r/r�r2r0r0r1�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)Nr5z"<doc xmlns:ns='%s' ns:attr='val'/>rzns:attrr6r)rr1r�r*r3r�r0r$r%r&rir'r(r7r,r*r-r.r)r/r�r2rr0r0r1�test_expat_nsattrs_wattr�s$

	"+z(ExpatReaderTest.test_expat_nsattrs_wattrcCsRt�}t�}t|�}|j|�|jt�|j|j�t�dS)N)	rrrr�rLr
r$rNr)r/r�rPrr0r0r1�test_expat_inpsource_filename�s		

z-ExpatReaderTest.test_expat_inpsource_filenamecCsXt�}t�}t|�}|j|�|jtt��|j|j�t	�dS)N)
rrrr�rLrr
r$rNr)r/r�rPrr0r0r1�test_expat_inpsource_sysids		
z*ExpatReaderTest.test_expat_inpsource_sysidcCs�tj}tjt|�|jtj|�t�}t�}t	|�}|j
|�|jt|��|j
|j�t�dS)N)rrrrr
rrJrrrr�rLrr$rNr)r/rr�rPrr0r0r1�#test_expat_inpsource_sysid_nonasciis			
z3ExpatReaderTest.test_expat_inpsource_sysid_nonasciic
Cs�t�}t�}t|�}|j|�t�}ttd��!}|j|�|j|�WdQRX|j	|j
�t�dS)Nr`)rrrr�rrEr
rbrLr$rNr)r/r�rPrr,rGr0r0r1� test_expat_inpsource_byte_streams		
	
z0ExpatReaderTest.test_expat_inpsource_byte_streamc
Cs�t�}t�}t|�}|j|�t�}ttddd��!}|j|�|j|�WdQRX|j	|j
�t�dS)Nrr=z
iso-8859-1)rrrr�rrEr
r�rLr$rNr)r/r�rPrr,rGr0r0r1�%test_expat_inpsource_character_stream+s		
	
z5ExpatReaderTest.test_expat_inpsource_character_streamcCsmt�}t|�}t�}|j|�|jd�|jd�|j�|j|j�td�dS)Nz<doc>z</doc>s<doc></doc>)	rrrr�r*r�r$rNr	)r/rPrr�r0r0r1�test_expat_incremental:s		



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>)
rrrr�r*�resetr�r$rNr	)r/rPrr�r0r0r1�test_expat_incremental_resetFs		


	





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>r5)
rrrr�r*r�r$�getSystemId�getPublicId�
getLineNumber)r/rPrr�r0r0r1�test_expat_locator_noinfo]s		



z)ExpatReaderTest.test_expat_locator_noinfocCsht�}t|�}t�}|j|�|jt�|j|j�t�|j|j�d�dS)N)	rrrr�rLr
r$r@rA)r/rPrr�r0r0r1�test_expat_locator_withinfoks		

z+ExpatReaderTest.test_expat_locator_withinfocCs�tj}tjt|�|jtj|�t�}t|�}t	�}|j
|�|j|�|j|j
�|�|j|j�d�dS)N)rrrrr
rrJrrrr�rLr$r@rA)r/rrPrr�r0r0r1�$test_expat_locator_withinfo_nonasciius			

z4ExpatReaderTest.test_expat_locator_withinfo_nonasciiN)r9r:r;rr�requires_nonascii_filenamesrrrr%r+r.r/rr1r3r4r5r6r7r8r9r:r;r<r?rCrDrEr0r0r0r1rCs0






rc@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)rr�rrrbrZsetSystemIdrLZfailrr$r@)r/r��sourcerr�r0r0r1�test_expat_inpsource_location�s		

z0ErrorReportingTest.test_expat_inpsource_locationcCset�}|jt��|jt|jtd��|j|j�d�|j|j	�d�dS)Nz<foo>�r5)
rr�rrrrLrr$�getColumnNumberrB)r/r�r0r0r1�test_expat_incomplete�s
	z(ErrorReportingTest.test_expat_incompletecCs�ttdd|jdd���ttdd|jdd���ttdd|jdd���ttdd|jdd���dS)N�messager5)�strr�DummyLocator)r/r0r0r1�test_sax_parse_exception_str�sz/ErrorReportingTest.test_sax_parse_exception_strc@sLeZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)zErrorReportingTest.DummyLocatorcCs||_||_dS)N)�_lineno�_colno)r/�lineno�colnor0r0r1r �s	z(ErrorReportingTest.DummyLocator.__init__cCsdS)NZpubidr0)r/r0r0r1rA�sz+ErrorReportingTest.DummyLocator.getPublicIdcCsdS)NZsysidr0)r/r0r0r1r@�sz+ErrorReportingTest.DummyLocator.getSystemIdcCs|jS)N)rQ)r/r0r0r1rB�sz-ErrorReportingTest.DummyLocator.getLineNumbercCs|jS)N)rR)r/r0r0r1rK�sz/ErrorReportingTest.DummyLocator.getColumnNumberN)r9r:r;r rAr@rBrKr0r0r0r1rO�s
rON)r9r:r;rIrLrPrOr0r0r0r1rG�s
rGc@s@eZdZdd�Zdd�Zdd�Zdd�Zd	S)
�
XmlReaderTestcCs|jti��dS)N)r2r)r/r0r0r1�test_attrs_empty�szXmlReaderTest.test_attrs_emptycCs|jtddi��dS)Nrr6)r8r)r/r0r0r1�test_attrs_wattr�szXmlReaderTest.test_attrs_wattrcCs|jtii��dS)N)r4r)r/r0r0r1�test_nsattrs_empty�sz XmlReaderTest.test_nsattrs_emptycCs�ttdfditdfdi�}|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)Nrr6zns:attrr5r)rr3r$r%r&r'r(r7r*r+r,r-r.rr r!r")r/rr0r0r1�test_nsattrs_wattr�s"%"+z XmlReaderTest.test_nsattrs_wattrN)r9r:r;rVrWrXrYr0r0r0r1rU�srUc
Cs/tttttttttt	t
tt�dS)N)
rr|rIrr�r�r�r�r�rrrGrUr0r0r0r1�	test_main�srZ�__main__)NrMrrrrrZunittestrZSkipTestZxml.sax.saxutilsrr	r
rrr
Zxml.sax.expatreaderrZxml.sax.handlerrZxml.sax.xmlreaderrrr�iorrr��gcZos.pathrrr�rZtest.supportrrrr
ZTEST_XMLFILE_OUTr@�UnicodeEncodeErrorZsupports_nonascii_filenames�path�supports_unicode_filenamesrZTESTFN_ENCODING�UnicodeError�	TypeErrorZ
skipUnlessrFr3ZTestCaserr>rBrHrIr|rr�r�r�r�r�r�rr	rrErGr�rrrGrUrZr9r0r0r0r1�<module>sx(
.


	5x4L�b�I>!