python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_xml_etree.cpython-311.pyc

eJzvddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlmZddlmZmZddlmZddlmZddlmZddlmZmZmZmZddlmZdd	lmZdadaed
dZ 	e !d
n#e"$rej#dwxYweddZ$eddZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dddZ-dZ.Gddej/Z0dod Z1d!Z2Gd"d#Z3Gd$d%ej/Z4Gd&d'ej/Z5iZ6d(e6d)<d*e6d+<d,e6d-<d.e6d/<d0e6d1<d2e6d3<d4e6d5<d6e6d7<d87ej8e de6d9<d:e6d;<iZ9d<e9d=<d>e9d?<d@e6dA<dBe6dC<dDe6dE<GdFdGej/Z:GdHdIej/Z;GdJdKe3ej/Z<GdLdMe3ej/Z=GdNdOe>Z?e>j@e?_@GdPdQe>ZAe>j@eA_@GdRdSe3ej/ZBGdTdUej/ZCGdVdWej/ZDGdXdYej/ZEGdZd[ej/ZFGd\d]ej/ZGGd^d_ej/ZHGd`daej/ZIGdbdcej/ZJGdddeej/ZKGdfdgej/ZLGdhdiej/ZMdjZNGdkdlej/ZOdpdmZPeQdnkrejRdSdS)qN)partial)productislice)support)	os_helper)warnings_helper)findfile
gc_collect	swap_attr	swap_item)import_fresh_module)TESTFNz
simple.xmlxmltestdatasubdirutf-8z!filename is not encodable to utf8z
simple-ns.xmlzexpat224_utf8_bug.xmlz<body>
  <tag class='a'>text</tag>
  <tag class='b' />
  <section>
    <tag class='b' id='inner'>subtext</tag>
  </section>
</body>
zz<section>
  <tag class='b' id='inner'>subtext</tag>
  <nexttag />
  <nextsection>
    <tag />
  </nextsection>
</section>
zy
<body xmlns="http://effbot.org/ns">
  <tag>text</tag>
  <tag />
  <section>
    <tag>subtext</tag>
  </section>
</body>
z
<root>
<h:table xmlns:h="hello">
  <h:tr>
    <h:td>Apples</h:td>
    <h:td>Bananas</h:td>
  </h:tr>
</h:table>

<f:table xmlns:f="foo">
  <f:name>African Coffee Table</f:name>
  <f:width>80</f:width>
  <f:length>120</f:length>
</f:table>
</root>
zy<!DOCTYPE points [
<!ENTITY % user-entities SYSTEM 'user-entities.xml'>
%user-entities;
]>
<document>&entity;</document>
zl<!DOCTYPE points [
<!ENTITY entity SYSTEM "file:///non-existing-file.xml">
]>
<document>&entity;</document>
z<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Foo [
<!ELEMENT foo (bar*)>
<!ELEMENT bar (#PCDATA)*>
<!ATTLIST bar xml:lang CDATA "eng">
<!ENTITY qux "quux">
]>
<foo>
<bar>&qux;</bar>
</foo>
F)quietcfd}|S)NcBfd}tj||S)Ncltjdi5|i|ddddS#1swxYwYdS)Nr)rcheck_warnings)argskwargsfiltersrtests  G/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_xml_etree.pynewtestz1checkwarnings.<locals>.decorator.<locals>.newtest}s /FFF
&
&d%f%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&s	)--)	functoolsupdate_wrapper)rrrrs` r	decoratorz checkwarnings.<locals>.decorator|sA	&	&	&	&	&	&	&	 $///)rrr s`` r
checkwarningsr#{s*r!cf|dtjS)N
)replaceoslinesepencode)datas rconvlinesepr+s$<<rz0022333r!ceZdZdZdZdS)
ModuleTestc*ddlm}ddlm}ddlm}dS)Nr)ElementTreeElementIncludeElementPath)	xml.etreer/r1r3)selfr/r1r3s    rtest_sanityzModuleTest.test_sanitys@	*))))),,,,,,))))))))r!cDd}tj|t|ddS)N)xml.etree.ElementTree_elementtree)
HTML_EMPTY)not_exported)rcheck__all__ET)r5namess  rtest_allzModuleTest.test_alls'9T2u?KKKKKKr!N)__name__
__module____qualname__r6r?r"r!rr-r-s7***LLLLLr!r-Tunicodec
|dkrtj}ntj}t|}|j|fd|i||r|S|d|S)NrCencodingr)ioBytesIOStringIOr=r/writegetvalueseek)elem	to_stringrEoptionsfiletrees      r	serializerQs9z||{}}
>>$DDJt22h2'222}}		!r!cd|DS)Ncg|]	}|j
Sr"tag.0rLs  r
<listcomp>z"summarize_list.<locals>.<listcomp>s%%%DH%%%r!r")seqs rsummarize_listrZs%%%%%%r!c0eZdZedZdZdZdS)ElementTestCasec,tth|_dSN)pyETr=modulesclss r
setUpClasszElementTestCase.setUpClasssRjr!c 	ttj||5tj||}dddn#1swxYwYttj||5tj|}dddn#1swxYwYn|#tj$rj}ttdftdfg}	tjd|d|	||d|	|||d}~wwxYw|S)NcETr_zFailed to round-trip z from z to )
rsysr`pickledumpsloads
PicklingErrordictr=r_r
TestFailedget)
r5objnamedumperloaderprototempresultpehumans
          rpickleRoundTripzElementTestCase.pickleRoundTrips	L3;f55
0
0|C//
0
0
0
0
0
0
0
0
0
0
0
0
0
0
03;f55
,
,d++
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,#	L	L	L2u+f~677E$$(+(-		&&(A(A(A(A(-		&&(A(A(A&CDDJL
L	L
s\B?BABAB%B:BB

B
B
BD!A%DDc ||tjtjf||tjtjf|tt
|tt
|t||D]\}}|||tj
dddd}|||||dS)NrUtailtextattrib)assertIsInstancer=Elementr_assertEquallenlistzipassertEqualElementsoperator
attrgetter)r5alicebobxy
propertiess      rrz#ElementTestCase.assertEqualElementssebj$,%?@@@cBJ#=>>>T%[[))3tCyy>>:::sOO	+	+DAq$$Q****(II
E**JJsOO<<<<<r!N)r@rArBclassmethodrcrwrr"r!rr\r\sK!![!


=====r!r\ceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*Z,d+Z-d,Z.d-Z/d.S)/ElementTreeTestcL|t||dSr^)r~rQ)r5rLexpecteds   rserialize_checkzElementTreeTest.serialize_checks$4(33333r!cFfdtd}|t|}|tdd}t|}t|dtdd}fd|j|j|j|j	|j
|j|j|j
|j|j|j|j|j|j|jfd}||d||d	||d||d	tjtjtjtjdS)
NcPt|dt|}dD]E}t	||d|z||d|zF|jt|j	t|j |jt|j |jt|D]
}|dS)Nznot an elementmsg)rUr{rzryzno %s memberzno %s visible by dir)
assertTruer=	iselementdirhasattrassertInr|rUstrr{rkrzry)elementdirelemattrrL
check_elementr5s    rrz5ElementTreeTest.test_interface.<locals>.check_elements9OOBLL117GOHHH'llG7
;
; 6 6*T1 333

dG2T9;;;;
!!'+s333!!'.$777|'%%glC888|'%%glC888
$
$
d####
$
$r!rUtägvaluekeyz^<Element 't\xe4g' at 0x.*>$cXt|dd|zdS)N__call__z%s not callabler)rr)methodr5s rcheck_methodz4ElementTreeTest.test_interface.<locals>.check_methods<OOGFJ77)F2

4
4
4
4
4r!c(|jdSr^)__next__)itrs r
check_iterz2ElementTreeTest.test_interface.<locals>.check_itersL%%%%%r!*)r=r}r/getrootassertRegexreprappendextendinsertremovefinditerfindfindallfindtextclearrmsetkeysitemsiteritertextr~XML
fromstringPIProcessingInstruction)r5rrPrrrs`   @@rtest_interfacezElementTreeTest.test_interfaces	$	$	$	$	$	$$**U##
g~~g&&
dllnn%%%**X7*33~~g&&g(GHHH**U*00	4	4	4	4	4	W^$$$W^$$$W^$$$W^$$$W\"""W%&&&W_%%%W%&&&W]###W[!!!W[!!!W\"""W]###W\"""W%&&&	&	&	&	&	&	
7##E**+++
7##C(()))
4==''(((
4==%%&&&	
/// 899999r!cFtd}||jdd|_||jdd|_||jd||jd|_||jdd|_||jd||jd|_||jdd|_||jd||jidd	d
|_||jdd	d
ddd
|_||jddd
dS)NrUTagTAGTextTEXTTailTAILbd)acBD)AC)r=r}r~rUassertIsNonerzryr{)r5rs  rtest_set_attributez"ElementTreeTest.test_set_attributes**U##e,,,e,,,e,,,','''v...v...','''v...v...,,,"--s)=)=>>>"--s)=)=>>>>>r!ctd}||dtd}||||d||||d|d|||d||||g||d|||t|g||d||tdd	}||d
td}||||d|d|||d
||||d||||d
|	t5}||dddn#1swxYwY|t|j
d||d
|||g|dd<||dd||dd|d|dg||ddd|d|dg|dd=||d
dS)N<body><tag/></body><body><tag /></body>tag2z<body><tag /><tag2 /></body>rz<body><tag2 /><tag /></body>rUrrz<tag key="value" />subtagz!<tag key="value"><subtag /></tag>z+<tag key="value"><subtag /><subtag /></tag>zlist.remove(x): x not in listz
<subtag />	)r=rrr}rrrrrassertRaises
ValueErrorr~r	exception)r5rLer
subelementcms      rtest_simpleopszElementTreeTest.test_simpleops)svv+,,T#9:::JJvAT#ABBBAT#9:::AqT#ABBBAQCT#ABBBAD!IIT#ABBBA**U*00W&;<<<ZZ))
z"""W&IJJJq*%%%W=	?	?	?z"""W&IJJJz"""W&;<<<


z
*
*	'bNN:&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'R\**,KLLLW&;<<<"J
;!WQZ6661
GAJ'?@@@!AWQZ(@AAAAaCLW=	?	?	?	?	?sJ&&J*-J*c|tdd|tdd|tdddS)Nz<tag>hello</tag>z)<tag>&#104;&#101;&#108;&#108;&#111;</tag>z<tag><![CDATA[hello]]></tag>)rr=rr5s r
test_cdatazElementTreeTest.test_cdataUs	
RVV$677"	$	$	$RVV$OPP"	$	$	$RVV$BCC"	$	$	$	$	$r!cDtjtd}t|}||djd||djdtt}||djd||djddS)Nr)rOrUsection/tagrzelement/../empty-element
empty-element)
rFrG
SAMPLE_XMLr)r=r/r~rrUSIMPLE_XMLFILE)r5
stringfilerPs   rtest_file_initzElementTreeTest.test_file_init_sZ
 1 1' : :;;
~~:~..5))-u555=115u===~~>~229--19===#=>>B	!	!	!	!	!r!cddlm}tt}|jtdD]?}t|	dt|z@t|j}tdD]?}t|	dt|z@|t|j|tdD]?}t|	dt|z@|
t|j|tdD]?}t|	dt|z@|t|jddS)Nrr2
z./iXi)r4r3r=rr_cacherranger/rrrr~
assertGreater
assertLess)r5r3rLicache_len_10s     rtest_path_cachezElementTreeTest.test_path_cachejs	*)))))vvj!!  """rBBABNN40055d3q66kBBBB;-..rBBABNN40055d3q66kBBBB[/00,???rBBABNN40055d3q66kBBBB3{122LAAAsCCAR^^D1166tCFF{CCCCK.//55555r!c:ddl}td}|j|}|j|}d|d_||d||d||ddS)Nrz<tag>hello<foo/></tag>barfooz<tag>hello<bar /></tag>z<tag>hello<foo /></tag>)copyr=rdeepcopyrrUr)r5re1e2e3s     r	test_copyzElementTreeTest.test_copyzs	
VV,
-
-
TYr]]
T]2

"R!:;;;R!:;;;R!:;;;;;r!cltd}|d||ddd|dd||ddtdd}||dd||jddiddi}td|}|||dd||jddiddi}tjdi|}|||dd||jdditdddid}||dd||jdditd}d|_|d	d
|dd|t|d
|t|
d	dg|t|ddg||jddd|jd<d|jd<|t|dtd}|dd|dd|dd|dd|t|ddS)NrUrdefaultrrotherraatestatestvaltestbtest2s-<test testa="testval" testb="test2">aa</test>)rr)rrtest1testcs;<test testa="testval" testb="test1" testc="test2">aa</test>r
r
rz	

 rz



		  s[<test a="&#13;" b="&#13;&#10;" c="&#09;&#10;&#13; " d="&#10;&#10;&#13;&#13;&#09;&#09;  " />rT)r=r}rmr~rr{rrztostringsortedrr)r5rLr{s   rtest_attribzElementTreeTest.test_attribszz%  %33Y???   %'222zz%Wz--%'222ug&6777!zz%((%'222ug&6777!z**6**%'222ug&6777zz%%!1wz??%'222ug&6777zz&!!	)$$$'"""T**@	B	B	B		,,w.@AAA

--%'9:	<	<	<W-w777&G&GT**N	P	P	Pzz&!!dfi   &'''T**n	p	p	p	p	pr!ctd}ddi}|d|}||j|d||||d|||d||||d|||g||d	|g|dd<||dt|g|dd<||ddS)
NrUrrrzattrib aliasingrz!<tag><subtag key="value" /></tag><tag />zM<tag><subtag key="value" /><subtag key="value" /><subtag key="value" /></tag>)
r=r}makeelementassertIsNotr{rrrrtuple)r5rLr{subelems    rtest_makeelementz ElementTreeTest.test_makeelementsXzz%  !""8V445FGGGGT#FGGG

T9---GT#FGGGWg&'''T[	]	]	])QQQT#FGGG	""QQQT#FGGGGGr!ctt}tj}||d||dtt}tj}||d||dtt5}|
}dddn#1swxYwYt}||j
d||||dt}t|}||||ddS)NrCrEzi<root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>z<ns0:root xmlns:ns0="namespace">
   <ns0:element key="value">text</ns0:element>
   <ns0:element>text</ns0:element>tail
   <ns0:empty-element />
</ns0:root>z^Expat target)r=parserrFrHrIr~rJSIMPLE_NS_XMLFILEopenread	XMLParserrversionfeedrcloseTreeBuilder)r5rPstreamfr*parserrs       rtest_parsefilezElementTreeTest.test_parsefilesxx''

6I
...**			xx)**

6I
...**			.
!
!	Q6688D															444DV\\^^			!!V,,DV\\^^					s7DDDctd}|t|ddtd}|t|ddgd}t|}|t|d|dt|d|t|ddtd\}}|t|d	td
\}}|t|d||dj
ddS)
N<html><body>text</body></html>rCr)z<html><body>ztext</boz
dy></html><html><body>text</body></html>r!asciisE<?xml version='1.0' encoding='ascii'?>
<html><body>text</body></html>rz(<html><body id='body'>text</body></html>rbody)r=rr~r
rfromstringlistjointostringlistXMLIDrrU)r5rsequence_idss     rtest_parseliteralz!ElementTreeTest.test_parseliterals&&9::WyAA0	2	2	2-- @AAWyAA0	2	2	2===##H--W--1	3	3	3"//'":":;;1	3	3	3Wg662	3	3	3:;;3S1%%%DEE3S1%%%V&11111r!ctj}|t}t|\}}|||jfd|d|Dgd||jjd|t}|d|Dgdd}|t|}|d|Dgd}|t|	}|d
|Dgd}|t|}|d|Dgd
d}|t|}|d|Dgdd}|tj	d|}d|D}||ddgd}ttd5}|t5}|||dddn#1swxYwY|
|jdddn#1swxYwY|t|jdt#j|5|t5}|t|dddn#1swxYwY|t|jd~dddn#1swxYwYtjd}	d}||	|}|d|Dddgtj	d}	||	}
t|
\}}|||jfd|tj5}t|
dddn#1swxYwY|t|jd |t,jt0tt0d!5}|d"dddn#1swxYwY|t0}
t|
\}}|||jfdt#j|5|tj5}t|
dddn#1swxYwY|t|jd ~~
dddn#1swxYwYt#j|5|t0}
~
dddn#1swxYwY|t45|d#ddddS#1swxYwYdS)$Nendrc&g|]\}}||jfSr"rTrWactionrLs   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>#III648,IIIr!)r3r4rr4rootr;c&g|]\}}||jfSr"rTr6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>%r8r!)r4{namespace}elementr=r4{namespace}empty-elementr4{namespace}rootr"c&g|]\}}||jfSr"rTr6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>.r8r!eventsc&g|]\}}||jfSr"rTr6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>2r8r!startr4c&g|]\}}||jfSr"rTr6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>6r8r!rHr;rHrr3rLr3)rHrr9r:)rHr4start-nsend-nsc6g|]\}}|dvr	||jfn||fS)rGrTr6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>CsH777*fd17:J0J0J648,,394.777r!)
rM)	namespacerHrBrHr>r=rTr=rHr@r?rArNNrMrNz<root xmlns=''/>cg|]\}}|Sr"r"r6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>Ts222,&$v222r!rMrNrHr4bogusrbzunknown event 'bogus's<?xml version='1.0' encoding='iso-8859-1'?>
<body xmlns='http://&#233;ffbot.org/ns'
      xmlns:cl='http://effbot.org/ns'>text</body>
)rMcg|]	\}}||f
Sr"r"r6s   rrXz2ElementTreeTest.test_iterparse.<locals>.<listcomp>js EEE\VT64.EEEr!)rM)rQuhttp://éffbot.org/ns)rM)ucléhttp://effbot.org/nsz<document />junk)r4documentz.junk after document element: line 1, column 12wbs<document />junknonexistent)r=	iterparsernextr~rUr;rrFrHrrrassertFalseclosedrrrcheck_no_resource_warningrG
ParseError
addCleanuprunlinkrrIFileNotFoundError)r5racontextr7rLrEresr"rsourcers           rtest_iterparsezElementTreeTest.test_iterparsesL	)N++G}}&$(+-?@@@IIIIILLL			
	
)6222)-..IIIIILLL			)NF33IIIII2NNN)N6:::IIIII2NNN!)NF33IIIII	L	L	L						8)-v6677.5777999
	
	
	()BK(;<<fEE22'222z84555*
.$
'
'	'1"":..
%"	!V$$$
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'	
R\**,CDDD

6t
<
<		"":..
2"	.&111
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2S..0GHHH																
GHH)FF++EEWEEE=@H			
/00
Yv

Bxx&$(+-@AAA


r}
-
-	HHH															R\**@	B	B	B	
	(&111
&$

	)1
GG'(((	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)
Yv

Bxx&$(+-@AAA

6t
<
<		""2=11
RR














S..D
F
F
FB															
6t
<
<		6""B															

0
1
1	%	%Im$$$	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%	%s,I
H I H$	$I'H$	(IIIL3KLK	LK	,LLL
O))O-0O-Q88Q<?Q< U6TUT	UT	-UUU2VVV5WWWc
td}d|_||ddt|d_||dd|_||d|dtd	||d
tdd|d<||d
dS)NrUrzz<tag>text</tag>subtextrz'<tag>text<subtag>subtext</subtag></tag>ztext<subtag>subtext</subtag>rcommentz*text<!--comment--><subtag>subtext</subtag>rrz)text<?key value?><subtag>subtext</subtag>)	r=r}rzr
SubElementrUrCommentrr5rLs  rtest_writefilezElementTreeTest.test_writefileszz%  	T#4555-6

dH%%*T#LMMMT#ABBBArzz),,---T<	>	>	>%%w''QT#NOOOOOr!ctt5}|}dddn#1swxYwYGddt}|}t|}||||gdtt5}|}dddn#1swxYwYGddt}|}t|}||||gddS)Nc eZdZdZdZdZdS)4ElementTreeTest.test_custom_builder.<locals>.Builderc4|d|fdSNrHrr5rUr{s   rrHz:ElementTreeTest.test_custom_builder.<locals>.Builder.startWcN+++++r!c4|d|fdSNr4rzr5rUs  rr4z8ElementTreeTest.test_custom_builder.<locals>.Builder.endUCL)))))r!cdSr^r"r5rzs  rr*z9ElementTreeTest.test_custom_builder.<locals>.Builder.datar!N)r@rArBrHr4r*r"r!rBuilderrwsA
,
,
,
*
*
*




r!rrrJc8eZdZdZdZdZdZdZdZdZ	dS)	rwc4|d|fdSryrzr{s   rrHz:ElementTreeTest.test_custom_builder.<locals>.Builder.startr|r!c4|d|fdSr~rzrs  rr4z8ElementTreeTest.test_custom_builder.<locals>.Builder.endrr!cdSr^r"rs  rr*z9ElementTreeTest.test_custom_builder.<locals>.Builder.datarr!c6|d||fdS)Npirz)r5rr*s   rrz7ElementTreeTest.test_custom_builder.<locals>.Builder.pis!T64011111r!c4|d|fdS)Nrprz)r5r*s  rrpz<ElementTreeTest.test_custom_builder.<locals>.Builder.commentsY-.....r!c6|d||fdS)NrMrz)r5prefixuris   rstart_nsz=ElementTreeTest.test_custom_builder.<locals>.Builder.start_nss!Z566666r!c4|d|fdSNrNrzr5rs  rend_nsz;ElementTreeTest.test_custom_builder.<locals>.Builder.end_nsXv./////r!N)
r@rArBrHr4r*rrprrr"r!rrz4ElementTreeTest.test_custom_builder.<locals>.Builders}
,
,
,
*
*
*



2
2
2
/
/
/
7
7
7
0
0
0
0
0r!))rrr*)rp	 comment )rMrQrRrSrTr=rTr=rUr?rArNrQ)	rrrrr=rrr~r)r5r"r*rbuilderr#s      rtest_custom_builderz#ElementTreeTest.test_custom_builders.
!
!	Q6688D																				d			'))W--D	#	#	#						#
$
$	6688D																0	0	0	0	0d	0	0	0'))W--D
#
#
#
	
	
	
	
	s6:::CC"CcGddt}|}t|}|t	jd||gddS)NceZdZdZdS)@ElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builderc4|d|fdSrrzrs  rrzGElementTreeTest.test_custom_builder_only_end_ns.<locals>.Builder.end_nsrr!N)r@rArBrr"r!rrrs#
0
0
0
0
0r!rra            <?pi data?>
            <!-- comment -->
            <root xmlns='namespace' xmlns:p='pns' xmlns:a='ans'>
               <a:element key='value'>text</a:element>
               <p:element>text</p:element>tail
               <empty-element/>
            </root>
            ))rNr)rNpr)rr=rrtextwrapdedentr~)r5rrr#s    rtest_custom_builder_only_end_nsz/ElementTreeTest.test_custom_builder_only_end_nss	0	0	0	0	0d	0	0	0'))W--HO%				
###					r!ctd}||jtjt}||jtjdS)Nr)r=rr|rr )r5r#parser2s   r%test_initialize_parser_without_targetz5ElementTreeTest.test_initialize_parser_without_targets^T**fmR^<<<,,..gnbn=====r!cttd5}t|}dddn#1swxYwY|d|Dgdgggg|d|Dgdggggtt}|tt|d|tt|dd||ddt||d}|d}|dd=|tt|d|||d|||d||g|dd<|||d|||d|||d||t|gdS)	Nr[c,g|]}t|Sr"rZrVs  rrXz1ElementTreeTest.test_children.<locals>.<listcomp>s0===")..===r!)rrrc,g|]}t|Sr"rrVs  rrXz1ElementTreeTest.test_children.<locals>.<listcomp>s0333")..333r!rrr)
rrr=rr~rrrrrrassertNotEqualr)r5r"rPrLchild1child2s      r
test_childrenzElementTreeTest.test_childrens.$
'
'	188A;;D															==&*llnn&9&9&;&;===777	?				
33&*iikk333777	5			vvj!!T$ZZ!,,,T$q']]++Q///aaa$t**---aa1IT$ZZ!,,,a)))a)))V$QqS	a)))a)))FDG,,,

dR(((((s=AAc&td}|t|dtd}|t|ddS)Nr&r')r=rr~r
rrss  rtest_writestringz ElementTreeTest.test_writestringsrvv677T**,MNNN}}=>>T**,MNNNNNr!ctd}t||t|dtd}t||t|dtd}t||t|dtd}t||t|dtd}t||t|d	td
}t||t|ddS)Nz
<root></root>s<root />r&s"<html>
  <body>text</body>
</html>z!<html> <body>text</body>  </html>z"<html><body>text</body>tail</html>s%<html>
  <body>text</body>tail</html>z=<html><body><p>par</p>
<p>text</p>	<p><br/></p></body></html>s^<html>
  <body>
    <p>par</p>
    <p>text</p>
    <p>
      <br />
    </p>
  </body>
</html>8<html><body><p>pre<br/>post</p><p>text</p></body></html>sJ<html>
  <body>
    <p>pre<br />post</p>
    <p>text</p>
  </body>
</html>r=rindentr~r
rss  rtest_indentzElementTreeTest.test_indent%svvo&&
		$T**K888vv677
		$T**,STTTvv9::
		$T**,STTTvv:;;
		$T**,UVVVvvWXX
		$KK
	
	
	
vvPQQ
		$KK
	
	
	
	
	
r!ctd}t|d|t|dtd}t|d|t|ddS)Nr	)spacesD<html>
	<body>
		<p>pre<br />post</p>
		<p>text</p>
	</body>
</html>rQs><html>
<body>
<p>pre<br />post</p>
<p>text</p>
</body>
</html>rrss  rtest_indent_spacez!ElementTreeTest.test_indent_spaceQsvvPQQ
		$d	###KK
	
	
	
vvPQQ
		$b	!!!KK
	
	
	
	
	
r!ctd}t||d|Dhd|d|Dhd|td|Dtd|DdS)Nz@<html><body><p>par</p><p>text</p><p><br/></p><p /></body></html>ch|]	}|j
Sr"ryrWels  r	<setcomp>z<ElementTreeTest.test_indent_space_caching.<locals>.<setcomp>n+++RW+++r!>N

  
    ch|]	}|j
Sr"rzrs  rrz<ElementTreeTest.test_indent_space_caching.<locals>.<setcomp>rrr!>N
      parrzrrch|]	}|j
Sr"rrs  rrz<ElementTreeTest.test_indent_space_caching.<locals>.<setcomp>vs///R///r!c6h|]}t|jSr")idryrs  rrz<ElementTreeTest.test_indent_space_caching.<locals>.<setcomp>ws 333BG333r!)r=rrr~rrrss  rtest_indent_space_cachingz)ElementTreeTest.test_indent_space_cachingjsvvXYY
		$++tyy{{+++***	
	
	
	
++tyy{{+++???	
	
	
	
//499;;///0033tyy{{33344	
	
	
	
	
r!ctd}|t5t|ddddn#1swxYwY|t|dt|d|t|dtd}t|dd	|t|d
dS)Nr)levels9<html><body><p>pre<br />post</p><p>text</p></body></html>rs^<html>
      <body>
        <p>pre<br />post</p>
        <p>text</p>
      </body>
    </html>r )rrsI<html>
  <body>
   <p>pre<br />post</p>
   <p>text</p>
  </body>
 </html>)r=rrrrr~r
rss  rtest_indent_levelz!ElementTreeTest.test_indent_levelzscvvPQQ


z
*
*	&	&IId"I%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&KKH	
	
	

			$a	   KK
	
	
	
vvPQQ
		$as	+++KK
	
	
	
	
	
sAA"%A"ctd}|t|dd|t|ddddS)N0<body xmlns="http://effbot.org/ns"><tag/></body>rCrA<ns0:body xmlns:ns0="http://effbot.org/ns"><ns0:tag /></ns0:body>r]rEdefault_namespace1<body xmlns="http://effbot.org/ns"><tag /></body>r=rr~r
rss  rtest_tostring_default_namespacez/ElementTreeTest.test_tostring_default_namespacesvvHIIKKyK11O	
	
	
	
KKyDZK[[?	
	
	
	
	
r!ctd}|t|ddddS)NrrCfoobarrzP<ns1:body xmlns="foobar" xmlns:ns1="http://effbot.org/ns"><ns1:tag /></ns1:body>rrss  r3test_tostring_default_namespace_different_namespacezCElementTreeTest.test_tostring_default_namespace_different_namespacesNvvHIIKKyHKMM^	
	
	
	
	
r!ctd}d}|t|5t|ddddddS#1swxYwYdS)Nrz>^cannot use non-qualified names with default_namespace option$rCrr)r=rassertRaisesRegexrr
)r5rLEXPECTED_MSGs   r5test_tostring_default_namespace_original_no_namespacezEElementTreeTest.test_tostring_default_namespace_original_no_namespacesvv+,,W

#
#J
=
=	N	NKKyHKMMM	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	N	NsA##A'*A'ctd}|t|dddS)NrrCrrrrss  r test_tostring_no_xml_declarationz0ElementTreeTest.test_tostring_no_xml_declarationsLvv+,,KKyK11"	
	
	
	
	
r!ctd}|t|ddddS)Nrutf8TrExml_declarations:<?xml version='1.0' encoding='utf8'?>
<body><tag /></body>rrss  rtest_tostring_xml_declarationz-ElementTreeTest.test_tostring_xml_declarationsNvv+,,KKvtKDDJ	
	
	
	
	
r!ctd}|t|ddddS)NrrCTr;<?xml version='1.0' encoding='utf-8'?>
<body><tag /></body>rrss  r.test_tostring_xml_declaration_unicode_encodingz>ElementTreeTest.test_tostring_xml_declaration_unicode_encodingsNvv+,,KKy$KGGJ	
	
	
	
	
r!c	td}gd}|D]j\}}}|d|d|5|t||||dddn#1swxYwYkdS)N<body><tag>ø</tag></body>))<body><tag>&#248;</tag></body>NN)<body><tag>ø</tag></body>UTF-8N)rUS-ASCIIN)E<?xml version='1.0' encoding='ISO-8859-1'?>
<body><tag></tag></body>
ISO-8859-1N)rrCN)rNF)rrF)rrF)s<body><tag></tag></body>rF)rrCF)sH<?xml version='1.0' encoding='us-ascii'?>
<body><tag>&#248;</tag></body>NT)sA<?xml version='1.0' encoding='UTF-8'?>
<body><tag>ø</tag></body>rT)sH<?xml version='1.0' encoding='US-ASCII'?>
<body><tag>&#248;</tag></body>rT)rrT)uA<?xml version='1.0' encoding='utf-8'?>
<body><tag>ø</tag></body>rCTz	encoding=z xml_declaration=r)r=rsubTestr~r
)r5rL	TESTCASESexpected_retvalrErs      r#test_tostring_xml_declaration_casesz3ElementTreeTest.test_tostring_xml_declaration_casessvv233


	<;D
	
	6OXC(CC1@CCDD	
	
  KK!)(7 
$
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	

	
	s2BB	B	c	Htd}|dt|dd|dt|ddddS)	NrrQrCrrr]rr)r=rr~r+r,rss  r#test_tostringlist_default_namespacez3ElementTreeTest.test_tostringlist_default_namespacesvvHIIGGBOOD9O==>>O	
	
	
	
GGBOOD9PfOgghh?	
	
	
	
	
r!cJtd}|dt|dd|dt|dd	t|dd
}|d|d||dd
|gd|dddS)NrrQrCrrr!T)rs><?xml version='1.0' encoding='us-ascii'?>
<body><tag /></body>rrrz%^<\?xml version='1.0' encoding='.+'?>)z<body>z<tagz />z</body>r)r=rr~r+r,r)r5rL
stringlists   r!test_tostringlist_xml_declarationz1ElementTreeTest.test_tostringlist_xml_declarationsvv+,,GGBOOD9O==>>"	
	
	
	
HHR__T4_@@AAN	
	
	

__TIt_TT
GGJJ	
	
	
	
A(PQQQAAA:abb>RRRRRr!c
Xdfd	}|dd|dd|dd|dd	|d
d|dd
dfd}gd}|D]Q}tt||dRgd}|D]1}t
tj||2gd}|D]6}tjtj||7t
tjddttjdddS)NrQcd|d|d}t||j|t|j|dS)Nz<?xml version='1.0' encoding='z'?><xml>z</xml>)r~r=rr)rz)rEr)xmlr5s   rcheckz,ElementTreeTest.test_encoding.<locals>.checkssHHddd$CRVVCJJx$8$899>EEERVVC[[-t44444r!r(rus-ascii
iso-8859-1½ziso-8859-15u€cp437u√	mac-romanu˚cd|zS)Nz*<?xml version='1.0' encoding='%s'?><xml />r"rs rrz*ElementTreeTest.test_encoding.<locals>.xmls
?(JJr!c@||Sr^)r))rErs rbxmlz+ElementTreeTest.test_encoding.<locals>.bxml s3x==''111r!)Cr(rz	utf-8-sigutf-16utf-16beutf-16lez	iso8859-1z	iso8859-2z	iso8859-3z	iso8859-4z	iso8859-5z	iso8859-6z	iso8859-7z	iso8859-8z	iso8859-9z
iso8859-10z
iso8859-13z
iso8859-14z
iso8859-15z
iso8859-16rcp720cp737cp775cp850cp852cp855cp856cp857cp858cp860cp861cp862cp863cp865cp866cp869cp874cp1006cp1125cp1250cp1251cp1252cp1253cp1254cp1255cp1256cp1257cp1258zmac-cyrillicz	mac-greekzmac-icelandz
mac-latin2rzmac-turkishz
iso2022-jpziso2022-jp-1ziso2022-jp-2ziso2022-jp-2004ziso2022-jp-3ziso2022-jp-extzkoi8-rzkoi8-tzkoi8-ukz1048hzptcp154s<xml />)big5	big5hkscscp932cp949cp950zeuc-jpzeuc-jis-2004zeuc-jisx0213zeuc-krgb2312gbkgb18030z
iso2022-krjohabz	shift-jiszshift-jis-2004zshift-jisx0213zutf-7)
cp037cp424cp500cp864cp875cp1026cp1140utf_32	utf_32_be	utf_32_le	undefinedxxx)rQ)	r~r=r
rrrrfr)LookupError)r5rrsupported_encodingsrE&unsupported_ascii_compatible_encodings(unsupported_ascii_incompatible_encodingsrs`      @r
test_encodingzElementTreeTest.test_encodings	5	5	5	5	5	5
	gs
j#
lF###
mX&&&
gx   
k8$$$	K	K	K	2	2	2	2	2


",	N	NHR[[X)?)?@@*MMMM2
2
2
.?	B	BHj"&$$x..AAAA4
4
4
0A	E	EHbmRVTT(^^DDDD*bfcc+.>.>.E.Eg.N.NOOO+rvss5zz/@/@/I/IJJJJJr!ctd}d|_|t	|d|t	|dd|t	|dd|t	|dd|t	|dd	dS)
Nz-<html><link/><script>1 &lt; 2</script></html>rz/<html><link /><script>1 &lt; 2</script></html>
rrhtmlz*<html><link><script>1 < 2</script></html>
rzz1 < 2
)r=rryr~rQr5rs  rtest_methodszElementTreeTest.test_methodsLs
FFBCC1B	D	D	D1T222B	D	D	D1U333B	D	D	D1V444=	?	?	?1V444i@@@@@r!ctd}|t|d|t|dddS)Nz(<html><CamelCase>text</CamelCase></html>rDrCr=rr~rQrEs  rtest_issue18347zElementTreeTest.test_issue18347[skFF=>>1:	<	<	<1V444:	<	<	<	<	<r!chtd}|t|dd||d|tj5}tddddn#1swxYwY|t|jd|tj5}ttdddn#1swxYwY|t|jdt
}d	|jd
<|t|
}||d|tj5}ttdddn#1swxYwY|t|jddS)
Nz*<document title='&#x8230;'>test</document>rrs*<document title="&#33328;">test</document>u%<document title="舰">test</document>z<document>&entity;</document>z#undefined entity: line 1, column 10z,undefined entity &entity;: line 5, column 10rzentityz<document>text</document>z,undefined entity &entity;: line 4, column 10)r=rr~rQrrrfrr
ENTITY_XMLrrKrrEXTERNAL_ENTITY_XML)r5rrr#r;s     rtest_entityzElementTreeTest.test_entitybs

FF?@@1z:::=	?	?	?Q JKKK

r}
-
-	4FF2333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4R\**5	7	7	7

r}
-
-	FF:															R\**>	@	@	@
"(
hJ||~~T#>???

r}
-
-	(FF&'''	(	(	(	(	(	(	(	(	(	(	(	(	(	(	(R\**>	@	@	@	@	@s65BB #B . DD!D G??HHctd}||dtd}||dtd}||dtd}||dtt}||d	dS)
Nz<tag xml:lang='en' />z<tag xml:lang="en" />zC<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' />zC<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" />z7<html:html xmlns:html='http://www.w3.org/1999/xhtml' />z7<html:html xmlns:html="http://www.w3.org/1999/xhtml" />zG<soap:Envelope xmlns:soap='http://schemas.xmlsoap.org/soap/envelope' />zE<ns0:Envelope xmlns:ns0="http://schemas.xmlsoap.org/soap/envelope" />z<ns0:body xmlns:ns0="http://effbot.org/ns">
  <ns0:tag>text</ns0:tag>
  <ns0:tag />
  <ns0:section>
    <ns0:tag>subtext</ns0:tag>
  </ns0:section>
</ns0:body>)r=rr
SAMPLE_XML_NSrss  rtest_namespacezElementTreeTest.test_namespaces
vv-..T#:;;;vv[\\TQ	S	S	SvvOPPTE	G	G	Gvv_``TS	U	U	Uvvm$$T
					r!cJtd}||dttd}||dttdd}||dttdd}t|tdd}t|tdd}||d|d|jd	<||d
|d|jtd	<||d
|d|jd	<||d|td|jd	<||d
|td}td|jd<||||||d|ttddd|ttddtdd}tdd}|||tdd}|
|||
|d||ddS)Nz{uri}tagz<ns0:tag xmlns:ns0="uri" />rrUtag1rz;<ns0:tag xmlns:ns0="uri"><ns0:tag1 /><ns0:tag2 /></ns0:tag>rz{uri}keyz+<ns0:tag xmlns:ns0="uri" ns0:key="value" />z
{uri}valuez0<ns0:tag xmlns:ns0="uri" ns0:key="{uri}value" />z/<ns0:tag xmlns:ns0="uri" ns0:key="ns0:value" />z{uri2}valuez	{uri1}keyz{<ns0:tag xmlns:ns0="uri" xmlns:ns1="uri1" xmlns:ns2="uri2"><tag ns1:key="ns2:value" /><tag ns1:key="ns2:value" /></ns0:tag>nsz{ns}tagz	other-tagzns:tag)r=r}rQNamerqrr{rr~rr)r5rLrq1q2s     r
test_qnamezElementTreeTest.test_qnames|
zz*%%T#@AAAzz"((:..//T#@AAAzz"((5%0011T#@AAAzz"((5%0011--bhhuf&=&=>>--bhhuf&=&=>>TI	K	K	K
	

")JT9	;	;	;	

,3BHHZ(()T9	;	;	;	

".JT>	@	@	@	

"$((<"8"8JT=	?	?	?	

**U##&(hh}&=&={#GGT
				
RXXdE2233Y???RXXi00119===
XXdE
"
"
XXdE
"
"R   
XXdK
(
(B###B)))Y'''''r!c:td}dS)Nz<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>)r=rrss  rtest_doctype_publicz#ElementTreeTest.test_doctype_publics vv$%%r!cddlmd>fd	}|ddg|dddg|dd	d
g|dd	dg|dgd
|dgd|dgd|dgd|dgd|dddg|dgd|ddg|dgd|ddg|dgd |d!gd"|d#gd$|d%d	d&g|d'd'g|d(gd)|d*gd+|d,d,g|d-d-g|d.d.g|d/d/g|d0gd1|d2gd3d4d5i|d6d7gd8d5i|d9d	d7gd4d5i|d:d	d6gd8d5i|d;d	d<gd8d5i|d%d	d&gd5d5d=dS)?Nrr2cpd||D|dS)Ncg|]	\}}|p|
Sr"r")rWoprUs   rrXzGElementTreeTest.test_xpath_tokenizer.<locals>.check.<locals>.<listcomp>s6YYY")"c!iCYYYr!)r~xpath_tokenizer)rr
namespacesr3r5s   rrz3ElementTreeTest.test_xpath_tokenizer.<locals>.checksYYY-8-H-HJ-W-WYYY%
'
'
'
'
'r!rztext()rz()z@name@roz@*zpara[1])para[1]zpara[last()])rcrdlastrarfz*/para)r/rcz/doc/chapter[5]/section[2])rhdocrhchapterrd5rfrhsectionrd2rfz
chapter//para)rj//rcz//pararnrcz//olist/item)rnolistrhitem.z.//para)rqrnrc..z../@lang)rrrhrblangzchapter[title])rjrdtitlerfz#employee[@secretary and @assistant])
employeerdrb	secretaryrQandrQrb	assistantrfz	@{ns}attrz{ns}attr{http://spam}eggz
./spam.egg)rqrhzspam.eggz.//{http://spam}egg)rqrnryz{ns}*{}*{*}tag{*}*z	.//{*}tag)rqrnr{z
./xsd:type)rqrh&{http://www.w3.org/2001/XMLSchema}typexsdz http://www.w3.org/2001/XMLSchematyper}rQz	@xsd:typez@typez@{*}typez{*}type)rQrTr^)r4r3)r5rr3s` @rtest_xpath_tokenizerz$ElementTreeTest.test_xpath_tokenizers))))))	'	'	'	'	'	'	'	cC5
h'''
gV}%%%
dS#J
i000111
n>>>???
h***+++
*...	/	/	/	o888999
hv'''
n:::;;;
cC5
i,,,---
dTF
j222333
 > > >???
36K6K6K	L	L	L	kC,---
 #5"6777
l222333
#%D%D%DEEE	gy!!!
eeW
h
###
fvh
k000111	lPPP89	;	;	;
f?@56	8	8	8
kC!IJ89	;	;	;
gV}56	8	8	8
j3	*56	8	8	8
kC,5799	:	:	:	:	:r!c@|ttddd|ttddd|ttddd|ttdddddS)	Nrinstructions<?test instruction?>z
<testing&>s<?test <testing&>?>u<testing&>ãzlatin-1s=<?xml version='1.0' encoding='latin-1'?>
<?test <testing&>?>)r~r=r
rrrs rtest_processinginstructionz*ElementTreeTest.test_processinginstruction+s	
R%=%=fm%T%TUU'	)	)	)RUU6=%A%ABB'	)	)	)
	
RUU6<%@%@AA&	(	(	(RUU63C%D%DiPP+	,	,	,	,	,r!c\dD]}||fD]}d|z}ttd|zd}|||ttd|d|dd}|||dS)	N)AREABASEBASEFONTBRCOLEMBEDFRAMEHRIMGINPUTISINDEXLINKMETAPARAMSOURCETRACKWBRz<%s>z<%s />rDrC<z></r)lowerrQr=rr~)r5rrLr
serializeds     r#test_html_empty_elems_serializationz3ElementTreeTest.test_html_empty_elems_serialization;s2		7		7G!'--//2
7
7!D=&rvvho'>'>vNNN
  X666&rvvvTTT$$$.G'H'H.4666
  X6666

7		7		7r!ctddd}tj5}t|dddn#1swxYwY||ddS)N
cirriculumpublicexamplestatuscompanyz1<cirriculum status="public" company="example" />
)r=r}rcaptured_stdoutdumpr~rJ)r5rstdouts   rtest_dump_attribute_orderz)ElementTreeTest.test_dump_attribute_orderIsJJ|HiJHH

$
&
&	&GGAJJJ															**M	O	O	O	O	OsAAActddd}|t|d|t|dddS)	Nrrrrz0<cirriculum status="public" company="example" />rDrCz;<cirriculum status="public" company="example"></cirriculum>)r=r}r~rQr5r;s  rtest_tree_write_attribute_orderz/ElementTreeTest.test_tree_write_attribute_orderQsxzz,xzKK4K	M	M	M4777M	O	O	O	O	Or!ctt}||djddidS)Nrz*{http://www.w3.org/XML/1998/namespace}langeng)r=rATTLIST_XMLr~r{rs  rtest_attlist_defaultz$ElementTreeTest.test_attlist_defaultYsJ}}[))aFN	P	P	P	P	Pr!N)0r@rArBrrrrrrrrrrr$r1rmrtrrrrrrrrrrrrrrrrrrrArFrIrNrQrXrZrrrrrrr"r!rrrs444A:A:A:F???6*?*?*?X$$$	!	!	!666 
<
<
<4p4p4plHHH,+++Z222,v%v%v%pPPP";;;z,>>>#)#)#)JOOO*
*
*
X


2


 


@	
	
	



NNN








***X	
	
	
SSS&9K9K9Kv
A
A
A<<<#@#@#@JB?(?(?(B%%%8:8:8:t,,, 777OOOOOOPPPPPr!rcpeZdZddZddZddZddZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdS)XMLPullParserTestNc|||dStdt||D]"}|||||z#dSNr)rrr)r5r#r*
chunk_sizers     r_feedzXMLPullParserTest._feedbsmKK1c$ii44
2
2D1Z<01111
2
2r!c|dt||D|dS)Nc4g|]\}}||j|jffSr")rUrz)rWeventrLs   rrXz3XMLPullParserTest.assert_events.<locals>.<listcomp>ks@
J
J
Jdh	*
+
J
J
Jr!)r~rread_eventsr5r#r
max_eventss    r
assert_eventszXMLPullParserTest.assert_eventsis^
J
J &v'9'9';';Z H H
J
J
J					r!c|tt|||dSr^)r~rrrrs    rassert_event_tuplesz%XMLPullParserTest.assert_event_tuplesosH**,,j99::					r!ct||}|d|D|dS)Nc&g|]\}}||jfSr"rTr6s   rrXz7XMLPullParserTest.assert_event_tags.<locals>.<listcomp>vs#HHH648,HHHr!)rrr~)r5r#rrrEs     rassert_event_tagsz#XMLPullParserTest.assert_event_tagstsS**,,j99HHHHH!	#	#	#	#	#r!cdD]}||5t}||g||d|||g||d|||g||d|||dg||d|||d|||dd	g||d
|||dg||dddn#1swxYwYdS)N)Nr)r<!-- comment -->
z+<root>
  <element key='value'>text</element>
r3<element>text</element>tail
<empty-element/>
r9</root>
r:)rr=
XMLPullParserrrrr)r5rr#s   rtest_simple_xmlz!XMLPullParserTest.test_simple_xmlys&	2	2J44
2
2))++&&vr222

6#7DDD&&vr222

6I%'''&&vr222

65*555&&v0B/CDDD

6#BJOOO

6#7DDD&&v&,0

6;
;;;&&v/@AAA!!&,,..111'
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2	2	2sEE;;E?	E?	ct}|}||dt	|\}}|||jfd||dt	|\}}|||jfd|t5t	|ddddS#1swxYwYdS)Nz-<root>
  <element key='value'>text</element>
r3rr:)	r=rrrrbr~rUr
StopIteration)r5r#rr7rLs     rtest_feed_while_iteratingz+XMLPullParserTest.test_feed_while_iteratings)!!##



!
!

6LMMMBxx&$(+-?@@@

6;'''Bxx&$(+_===


}
-
-		HHH																		sC//C36C3ct}||g||d||g||d||g||d||g||d||dg||d||d||ddg||d	||d
g||dS)Nr<root xmlns='namespace'>
"<element key='value'>text</elementrr=rrr?rrA)r=rrrrrr5r#s  rtest_simple_xml_with_nsz)XMLPullParserTest.test_simple_xml_with_nssy!!##vr***

6/000vr***

67888vr***

6?@@@vr***

65!!!v(E'FGGG

6:;;;

6/000v)/(				

6;'''v(B'CDDD&,,..)))))r!ctd}||d||d|t	|dg||d||d||d||d	||d
|t	|dg||dS)NrWrDrrrPrrrrrrV)r=rrr~rrrrrs  rtest_ns_eventsz XMLPullParserTest.test_ns_eventss1!!)?!@@

6/000

67888##%%&&
,-	/	/	/	

6?@@@

65!!!

6:;;;

6/000

6;'''f0022336F5GHHH&,,..)))))r!ctd}||d||ddgd||dgd	||d
||ddg||d
|||dgdS)N)rMrHr4rD <tag xmlns='abc' xmlns:p='xyz'>
rM)rQabcrM)rxyzrrrH{abc}tagr
<child />
rH
{abc}childr4r</tag>
r4rr=rrrrrrs  rtest_ns_events_startz&XMLPullParserTest.test_ns_events_starts!!)E!FF

6>???  %&*
	!				
v!(
					

6=)))v#!(
			
	

6:&&&v(
					r!ctd}||d||ddgd||dgd	||d
||ddg||d
|||dgd	||ddgdS)N)rMrHr4rNrDrrrrrrrrrrrrrVrrs  rtest_ns_events_start_endz*XMLPullParserTest.test_ns_events_start_endsB!!)O!PP

6>???  %&*
	!				
v!(
					

6=)))v#!(
			
	

6:&&&v(
					
  *
					r!ctd}||d||gtd}||d||gtd}||d||dg||d||d	g||d
||dg||d||gd
||d||||dgtd}||d||g||d||dg||d||d	g||d
||g||d||ddg||d||dS)Nr"rDz<root/>
rG<!-- text here -->
z<root>
rKrrLrr3z8<element xmlns='foo'>text<empty-element/></element>tail
)rH{foo}elementrH{foo}empty-element)r4r)r4rz</root>r:)rHrrr)r=rrrrrrrs  rtest_eventszXMLPullParserTest.test_eventss!!!,,

6;'''vr***!!)9!::

6122262&&&!!)9!::

6:&&&v(9':;;;

6?@@@v(<'=>>>

65!!!v(:';<<<

6N	P	P	Pv(((				

69%%%&,,..)))v'8999!!!44

6/000vr***

6:&&&v(9':;;;

6?@@@v(<'=>>>

65!!!vr***

6N	P	P	Pv%+(				

69%%%&,,..)))))r!cttd}||d||dtjdffg||d||dtjdffg||d||d	g||d
||dtjdffg||d||d
g||d||dtjdffgtd}||d||dtjdffgdS)N)rHrpr4rDrrpz text here z<!-- more text here -->
z more text here z<root-tag>text)rHroot-tagz<!-- inner comment-->
z inner commentz</root-tag>
)r4rz<!-- outer comment -->
z outer comment )rp)r=rrrrrrrs  rtest_events_commentz%XMLPullParserTest.test_events_comment s!!)D!EE

612226Y]0K$L#MNNN

667776Y=O0P$Q#RSSS

6+,,,v(='>???

645556Y=M0N$O#PQQQ

6?+++v(;'<===

656666Y=N0O$P#QRRR!!!66

612226Y]0K$L#MNNNNNr!c^td}||d||dtjdffgtd}||d||dtjdffgdS)	N)rHrr4rDz
<?pitarget?>
rpitarget)rz<?pitarget some text ?>
zpitarget some text )r=rrrrrs  rtest_events_piz XMLPullParserTest.test_events_pi3s!!)?!@@

6+,,,6TBE:+>$?#@AAA!!!11

667776TBE3H+I$J#KLLLLLr!c\ddh}t|}||d||ddgGdd}t|}||d||ddgdS)	Nr4rHrDz<foo>bar</foo>)rHr)r4rc eZdZdZdZdZdS)9XMLPullParserTest.test_events_sequence.<locals>.DummyIterc2tgd|_dS)N)rHr4rM)rrErs r__init__zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__init__Cs"#?#?#?@@r!c|Sr^r"rs r__iter__zBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__iter__Esr!c*t|jSr^)rbrErs rrzBXMLPullParserTest.test_events_sequence.<locals>.DummyIter.__next__GsDK(((r!N)r@rArBrrrr"r!r	DummyIterrBsD
A
A
A



)
)
)
)
)r!r)r=rrr)r5eventsetr#rs    rtest_events_sequencez&XMLPullParserTest.test_events_sequence;s7#!!!22

6+,,,v(8.'IJJJ	)	)	)	)	)	)	)	)!!!55

6+,,,v(8.'IJJJJJr!c|t5tdddddS#1swxYwYdS)NrYrD)rrr=rrs rtest_unknown_eventz$XMLPullParserTest.test_unknown_eventNs


z
*
*	?	?$=>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?sAAAr^)r@rArBrrrrrrrrrrrrrrrr"r!rrr`s2222
####
222.


****
*
*
*.6,*,*,*\OOO&MMMKKK&?????r!rz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml"/>
</document>
C1.xmlz<?xml version='1.0'?>
<disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
zdisclaimer.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been accessed
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
C2.xml324387z	count.txtz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>This document has been <em>accessed</em>
  <xi:include href="count.txt" parse="text"/> times.</p>
</document>
C2b.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source of the "data.xml" resource:</p>
  <example><xi:include href="data.xml" parse="text"/></example>
</document>
C3.xmlzQ<?xml version='1.0'?>
<data>
  <item><![CDATA[Brooks & Shields]]></item>
</data>
zdata.xmlaW<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="example.txt" parse="text">
    <xi:fallback>
      <xi:include href="fallback-example.txt" parse="text">
        <xi:fallback><a href="mailto:bob@example.org">Report error</a></xi:fallback>
      </xi:include>
    </xi:fallback>
  </xi:include>
</div>
C5.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>Example.</p>
  <xi:include href="{}"/>
</document>
default.xmla
<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
  <xi:include href="C1.xml"/>
</document>
include_c1_repeated.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>120 Mz is adequate for an average home user.</p>
  <xi:include href="disclaimer.xml" parse="BAD_TYPE"/>
</document>
B1.xmlzn<?xml version='1.0'?>
<div xmlns:xi="http://www.w3.org/2001/XInclude">
    <xi:fallback></xi:fallback>
</div>
B2.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive2.xml:</p>
  <xi:include href="Recursive2.xml"/>
</document>
Recursive1.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive3.xml:</p>
  <xi:include href="Recursive3.xml"/>
</document>
zRecursive2.xmlz<?xml version='1.0'?>
<document xmlns:xi="http://www.w3.org/2001/XInclude">
  <p>The following is the source code of Recursive1.xml:</p>
  <xi:include href="Recursive1.xml"/>
</document>
zRecursive3.xmlc<eZdZd
dZddZdZdZdZdZd	Z	dS)XIncludeTestrNc	t|}n#t$rtdwxYw|dkrt|}|S)Nresource not foundr)XINCLUDEKeyErrorOSErrorr=r)r5hrefrrEr*s     rxinclude_loaderzXIncludeTest.xinclude_loadersY	0D>DD	0	0	0.///	0E>>66$<<Ds
*cdSr^r")r5rr#rEs    rnone_loaderzXIncludeTest.none_loaderstr!c|dkrVt|d5}t|cdddS#1swxYwYdSdS)Nrr[)rr=rr)r5rrr"s    r
_my_loaderzXIncludeTest._my_loadersE>>dD!!
-Qxx{{**,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4s,AAAcddlm}|d}|||j|t
|ddS)Nrr0rz<document>
  <p>Example.</p>
  <root>
   <element key="value">text</element>
   <element>text</element>tail
   <empty-element />
</root>
</document>)r4r1rincluderr~rQ)r5r1ris   rtest_xinclude_defaultz"XIncludeTest.test_xinclude_defaultsn,,,,,,""=11sDO4443
					r!cddlm}|d}|||j|t|d|d}|||j|t|d|d}|||j|t|d|d	}|||j|t|d
|d}|t5}|||jdddn#1swxYwY|t|j	d|t|d
dS)Nrr0ra<document>
  <p>120 Mz is adequate for an average home user.</p>
  <disclaimer>
  <p>The opinions represented herein represent those of the individual
  and should not be interpreted as official policy endorsed by this
  organization.</p>
</disclaimer>
</document>rzO<document>
  <p>This document has been accessed
  324387 times.</p>
</document>rzX<document>
  <p>This document has been <em>accessed</em>
  324387 times.</p>
</document>rz<document>
  <p>The following is the source of the "data.xml" resource:</p>
  <example>&lt;?xml version='1.0'?&gt;
&lt;data&gt;
  &lt;item&gt;&lt;![CDATA[Brooks &amp; Shields]]&gt;&lt;/item&gt;
&lt;/data&gt;
</example>
</document>rraI<div xmlns:ns0="http://www.w3.org/2001/XInclude">
  <ns0:include href="example.txt" parse="text">
    <ns0:fallback>
      <ns0:include href="fallback-example.txt" parse="text">
        <ns0:fallback><a href="mailto:bob@example.org">Report error</a></ns0:fallback>
      </ns0:include>
    </ns0:fallback>
  </ns0:include>
</div>)
r4r1rrr~rQrrrrr5r1r^rs    r
test_xincludezXIncludeTest.test_xincludes^,,,,,,''11x)=>>>8,,
			''11x)=>>>8,,
			''	22x)=>>>8,,
			''11x)=>>>8,,
			''11


w
'
'	C2""8T-ABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	CR\**,@AAA8,,
										sF**F.1F.cddlm}|d}|||j|dt|ddS)Nrr0rrz.//p)r4r1rrr~rr)r5r1r^s   rtest_xinclude_repeatedz#XIncludeTest.test_xinclude_repeated<ss,,,,,,''(ABBx)=>>>H$4$4V$<$< = =>>>>>r!cvddlm}ttd}||j5}|||jdddn#1swxYwY|	t|jdttd}||j5}|||jdddn#1swxYwY|	t|jdttd}||j5}|||jdddn#1swxYwY|	t|jd	ttd
}||j5}|||jdddn#1swxYwY|	t|jd|
d}||j5}|||j
dddn#1swxYwY|	t|jd
|
d}||j5}|||j
ddddn#1swxYwY|	t|jd
|
d}||j5}|||j
ddddn#1swxYwY|	t|jd|
d}||j5}|||j
ddddn#1swxYwY|	t|jd|
d}||j5}|||j
ddddn#1swxYwY|	t|jd|
d}||j5}|||j
ddddn#1swxYwY|	t|jd
dS)Nrr0r)rqz%cannot load 'disclaimer.xml' as 'xml'rz!cannot load 'count.txt' as 'text'rz1unknown parse type in xi:include tag ('BAD_TYPE')rzYxi:fallback tag must be child of xi:include ('{http://www.w3.org/2001/XInclude}fallback')rz#recursive include of Recursive2.xml)	max_depthzAmaximum xinclude depth reached when including file Recursive2.xmlrzAmaximum xinclude depth reached when including file Recursive3.xmlrzAmaximum xinclude depth reached when including file Recursive1.xmlr)r4r1r=rr
rFatalIncludeErrorrrr~rrXINCLUDE_BADrLimitedRecursiveIncludeErrorrs    rtest_xinclude_failuresz#XIncludeTest.test_xinclude_failuresCss,,,,,,66(8,--


~?
@
@	FB""8D4D"EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FR\**7	9	9	966(8,--


~?
@
@	FB""8D4D"EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FR\**3	5	5	566,x011


~?
@
@	FB""8D4D"EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FR\**C	E	E	E66,x011


~?
@
@	FB""8D4D"EEE	F	F	F	F	F	F	F	F	F	F	F	F	F	F	FR\**@	A	A	A
''(899


~?
@
@	CB""8T-ABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	CR\**5	7	7	7''(899


~?
@
@	SB""8T-AT"RRR	S	S	S	S	S	S	S	S	S	S	S	S	S	S	SR\**5	7	7	7''(899


~J
K
K	Pr""8T-AQ"OOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	PR\**S	U	U	U''(899


~J
K
K	Pr""8T-AQ"OOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	PR\**S	U	U	U''(899


~J
K
K	Pr""8T-AQ"OOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	PR\**S	U	U	U''(899


~?
@
@	PB""8T-AQ"OOO	P	P	P	P	P	P	P	P	P	P	P	P	P	P	PR\**5	7	7	7	7	7sA//A36A3!D

DD<F%%F),F)III"K

KK,MMM8O""O&)O&Q..Q25Q2S::S>S>VV

V
)rNr^)
r@rArBrrrrrrr#r"r!rr
r
s>>>@???D7D7D7D7D7r!r
ceZdZdZdZdZdZdZdZdZ	dZ
d	Zej
ejd
dZdZd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dS)BugsTestcfd}td}||td}d|_||td}d|_||td}|dd||td}|dd||dS)Nct5}t|dddn#1swxYwYt	|jddS)Nzcannot serialize 123 (type int))r	TypeErrorrQr~rr)rLrr5s  rrz-BugsTest.test_bug_xmltoolkit21.<locals>.checks""9--
 $
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 S..5
7
7
7
7
7s8<<{rL123)r=r}rzryr)r5rrLs`  rtest_bug_xmltoolkit21zBugsTest.test_bug_xmltoolkit21s	7	7	7	7	7zz#
dzz&!!	
dzz&!!	
dzz&!!e
dzz&!!
dr!ctt}t|}||dd||dddS)NrUrzrro)r=rrr/r~r)r5rLrPs   rtest_bug_xmltoolkit25zBugsTest.test_bug_xmltoolkit25spvvj!!~~d##u--v666}55yAAAAAr!ctd}|t|dg|t|ddgdS)N"<doc><table><tbody/></table></doc>z.//theadz.//tbodytbody)r=rr~rZrr5rPs  rtest_bug_xmltoolkit28zBugsTest.test_bug_xmltoolkit28srvv:;;Z(@(@AA2FFFZ(@(@AAG9MMMMMr!ctd}tj5}t|||dddddS#1swxYwYdS)Nr/z$<doc><table><tbody /></table></doc>
)r=rrrrr~rJ)r5rPrs   rtest_bug_xmltoolkitX1zBugsTest.test_bug_xmltoolkitX1svv:;;

$
&
&	Y&GGDMMMV__..0WXXX	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	Y	YsAA>>BBcFtd}|t|ddtd}||jddi|t|ddtd}|t|dd	td
}|t|ddtd}|dd|t|dddS)Ns2<?xml version='1.0' encoding='iso-8859-1'?><tg />rs<täg />sD<?xml version='1.0' encoding='iso-8859-1'?><tag ttr='v&#228;lue' />uättruvälues<tag ättr="välue" />s:<?xml version='1.0' encoding='iso-8859-1'?><tg>text</tg>s<täg>text</täg>rrU)r=rr~r
r{r}rr1s  rtest_bug_xmltoolkit39zBugsTest.test_bug_xmltoolkit39srvvNOOT7335FGGGvv677y*&=>>>T7335	7	7	7vv/00T7330	2	2	2zz*%%T7335FGGGzz%  l+++T7335	7	7	7	7	7r!ctd}|t|dd|t|ddS)Nz=<!DOCTYPE doc [<!ENTITY ldots '&#x8230;'>]><doc>&ldots;</doc>rrs<doc>&#33328;</doc>u<doc>舰</doc>rHrEs  rtest_bug_xmltoolkit54zBugsTest.test_bug_xmltoolkit54si
FF(
)
)1z:::&	(	(	(1':;;;;;r!c|tj5}tddddn#1swxYwY|t|jddS)Ns?<!DOCTYPE doc SYSTEM 'doc.dtd'><doc>&ldots;&ndots;&rdots;</doc>z+undefined entity &ldots;: line 1, column 36)rr=rfrr~rr)r5rs  rtest_bug_xmltoolkit55zBugsTest.test_bug_xmltoolkit55s

r}
-
-	8FF7
8
8
8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	
R\**=	?	?	?	?	?sAAAc|Gdd}|ttj|dS)NceZdZdZdS)5BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFilectr^)rr5rs  rrz:BugsTest.test_bug_xmltoolkit60.<locals>.ExceptionFile.reads
r!N)r@rArBrr"r!r
ExceptionFiler=s#




r!r@)rrr=r)r5r@s  rtest_bug_xmltoolkit60zBugsTest.test_bug_xmltoolkit60sR									
'28]]__=====r!c$ddd}t}|j||d|}||djddS)Nu’u‘)rsquolsquoaF<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE patent-application-publication SYSTEM "pap-v15-2001-01-31.dtd" []>
<patent-application-publication>
<subdoc-abstract>
<paragraph id="A-0001" lvl="0">A new cultivar of Begonia plant named &lsquo;BCT9801BEG&rsquo;.</paragraph>
</subdoc-abstract>
</patent-application-publication>z.//paragraphu7A new cultivar of Begonia plant named ‘BCT9801BEG’.)	r=rrKupdaterrr~rrz)r5ENTITIESr#ts    rtest_bug_xmltoolkit62zBugsTest.test_bug_xmltoolkit62s&99
X&&&%	&	&	&
LLNN//4K	M	M	M	M	Mr!zSkips under coverage.cd}|tjd}tdD]}|
|tjd|dS)Nct}|di|d|ddS)NrUrz)r=r rHr*r4)rPs rxmltoolkit63z4BugsTest.test_bug_xmltoolkit63.<locals>.xmltoolkit63
sJ>>##DJJub!!!IIfHHUOOOOOr!i)rfgetrefcountrr~)r5rKcountrs    rtest_bug_xmltoolkit63zBugsTest.test_bug_xmltoolkit63su				%%t		ALNNNN..66666r!c	tdd}|t|d|tt|dd|ttt|ddS)NSomeTagzdef _f():
  return 3
rs0<SomeTag text="def _f():&#10;  return 3&#10;" />rz)r=r}r~r
rrmrEs  rtest_bug_200708_newlinez BugsTest.test_bug_200708_newlines
JJy'@JAAQC	E	E	EA//33F;;)	+	+	+RVVBKKNN%;%;<<C	E	E	E	E	Er!ct}|d||jdGdd}t|}|d||jddS)Nz<element>some text</element>rceZdZdZdS)2BugsTest.test_bug_200708_close.<locals>.EchoTargetc6tdS)Nrr=r}rs rrz8BugsTest.test_bug_200708_close.<locals>.EchoTarget.close)szz),,,r!Nr@rArBrr"r!r
EchoTargetrT(s#
-
-
-
-
-r!rXr)r=rrr~rrU)r5r#rXs   rtest_bug_200708_closezBugsTest.test_bug_200708_close!s2333+Y777	-	-	-	-	-	-	-	-ZZ\\222333+Y77777r!ctd}t|d}|t	|ddtd}t|d}t|d}|t	|ddtd}t|d}t|d}|t5}t	|ddddn#1swxYwY|t|jddS)	Nz
{default}elemr)rz%<elem xmlns="default"><elem /></elem>z{not-default}elemzI<elem xmlns="default" xmlns:ns1="not-default"><elem /><ns1:elem /></elem>rLz<cannot use non-qualified names with default_namespace option)	r=r}rqr~rQrrrr)r5rsrs    r!test_bug_200709_default_namespacez*BugsTest.test_bug_200709_default_namespace/sJJ''MM!_--1	BBB7	9	9	9
JJ''MM!_--MM!0111	BBB
			
JJ''MM!_--MM!V$$


z
*
*	6ba95555	6	6	6	6	6	6	6	6	6	6	6	6	6	6	6R\**N	P	P	P	P	Ps:EEEctd}|t|dtddtd}|t|dtd}|t|ddS)Nz/{http://namespace.invalid/does/not/exist/}titlesB<ns0:title xmlns:ns0="http://namespace.invalid/does/not/exist/" />rz(http://namespace.invalid/does/not/exist/sB<foo:title xmlns:foo="http://namespace.invalid/does/not/exist/" />z'{http://purl.org/dc/elements/1.1/}titles8<dc:title xmlns:dc="http://purl.org/dc/elements/1.1/" />)r=r}r~r
register_namespacerEs  r"test_bug_200709_register_namespacez+BugsTest.test_bug_200709_register_namespaceFsJJHIIQQ	S	S	S
e%OPPPJJHIIQQ	S	S	S

JJ@AAQG	I	I	I	I	Ir!ctd}|td||djtjtd}|td||djtjdS)Nrrr)r=r}rrrr~rUr)r5rs  rtest_bug_200709_element_commentz(BugsTest.test_bug_200709_element_commentUs
JJsOO	E""###12:...JJsOO	u125)))))r!ctd}t|d}t|d}td}|d||t|gd|d||t|gddS)	Nrrrrr)rrrr)rrrr)r=r}rqrr~rZr5rrrrs     rtest_bug_200709_element_insertz'BugsTest.test_bug_200709_element_insertasJJsOOMM!S!!MM!S!!JJsOO	A**OOO<<<	Q**,@,@,@AAAAAr!cdtd}t|d}td}|||t
|tjtjgdS)NrrzTEST-b)r=r}rqrrrr~rZr)r5rr	comment_bs    rtest_bug_200709_iter_commentz%BugsTest.test_bug_200709_iter_commentks}JJsOOMM!S!!JJx((		rz(:(:;;bj\JJJJJr!c&t}|d}|di}|d}|}|t|ddS)Nr*rUr)r=r r*rHr4rr~rQ)r5rrs   rtest_bug_1534630zBugsTest.test_bug_1534630ussnnHHVIIeR  GGENNIIKK1y11111r!c*td}|t|ddtd}|t|dddS)Ns7<?xml version='1.0' encoding='utf-8'?><body>tãg</body>r(s<<?xml version='1.0' encoding='ascii'?>
<body>t&#227;g</body>s;<?xml version='1.0' encoding='iso-8859-1'?><body>tg</body>rrEs  rtest_issue6233zBugsTest.test_issue6233}sFF.
/
/Q00)	*	*	*
FF*
+
+Q00)	*	*	*	*	*r!c(td}|t|dgtt}|dd|dd<|t|gddS)NrrUrUrUrl)r=rr~rZr)r5rLnewelems   rtest_issue6565zBugsTest.test_issue6565svv+,,--w777&&$$!!!*QQQ--/H/H/HIIIIIr!crtddtdddS)N	test10777z
http://myuri/)r=r^rs rtest_issue10777zBugsTest.test_issue10777s6	k?;;;
k?;;;;;r!c`Gfdd}td|_}t	|}||||jt|jddS)NceZdZfdZdS)%BugsTest.test_lost_text.<locals>.Textcd_dS)NchangedTrrEs r__bool__z.BugsTest.test_lost_text.<locals>.Text.__bool__s"tr!Nr@rArBrxrsrrru.






r!rrUrw)r=r}rzrrbr|rr~r5rrrGrs    @rtest_lost_textzBugsTest.test_lost_texts										

JJu
JJLLGGa&&&afc***+++++r!cGfdd}tdtd|d_}t|}||||djt|djddS)NceZdZfdZdS)%BugsTest.test_lost_tail.<locals>.Textc"dd_dSNrwrTrrEs rrxz.BugsTest.test_lost_tail.<locals>.Text.__bool__s%!	tr!Nryrzsrrrr{r!rr;rUrrw)	r=r}rryrrbr|rr~r|s    @rtest_lost_tailzBugsTest.test_lost_tails										

JJv	E""###DFF!	
JJLLGGa&&&adi---1I.....r!c|Gfdd}tdt|tdd	t	}n%#t
$r|dYnwxYw||j||djt|
djddS)NceZdZfdZdS)$BugsTest.test_lost_elem.<locals>.Tagc`tdd<tdSr)r=r}rb)r5rrrs  r__eq__z+BugsTest.test_lost_elem.<locals>.Tag.__eq__s(zz),,!Qtr!Nr@rArBr)rrsrrrs3







r!rr;rUzgenerators are not reentrantrrw)r=r}rrrbrskipTestr|rUrr~)r5rrGrrs   @@rtest_lost_elemzBugsTest.test_lost_elems;											
JJv	CCEE""###	E""###
FF5MM	:QAA	:	:	:MM899999	:aeS)))adh,,,19-----s%B55CCcd|z}t|}||d|ddS)Ns<a b="%s"/>rr)r=rr~rmdecode)r5rzrr;s    rcheck_expat224_utf8_bugz BugsTest.check_expat224_utf8_bugsMt#vvc{{#G(<(<=====r!cbd}||d}||dS)Nsààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààsxàààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààààà)rrs  rtest_expat224_utf8_bugzBugsTest.test_expat224_utf8_bugs<"$$T***($$T*****r!cttd5}|}dddn#1swxYwYt|}|d}|d}|dd}|dd}|	|d|dS)Nr[rrr	r)
rUTF8_BUG_XMLFILErr=rrmrstripr&r~)r5fprawr;xmlattrrzs      rtest_expat224_utf8_bug_filez$BugsTest.test_expat224_utf8_bug_files
"D
)
)	R''))C															}}S!!((3--zz'""((**||FC((AbDz#-----s7;;c|ttjd|ttjdddS)NrU)rr(r=r rHrs rtest_39495_treebuilder_startz%BugsTest.test_39495_treebuilder_startsT)R^^%5%5%;UCCC)R^^%5%5%;UDIIIIIr!N)#r@rArBr+r-r2r4r6r8r:rArHunittestskipIfrfgettracerNrQrYr\r_rardrgrirkrorrr}rrrrrrr"r!rr%r%s8BBBNNNYYY7772<<<???>>>MMM"X_\S\^^%<==77>=7	E	E	E888PPP.
I
I
I
*
*
*BBBKKK222
*
*
*JJJ<<<
,
,
,/// ...(>>>

+
+
+...JJJJJr!r%cJeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)BasicElementTestc d}ddi}t||}||tj|dt	||dt	||dt	||dt	|||j|||j||j	|
|j|||j|d|d	<|
|j|||j|dS)
NrzixwyprUr{rzrybazr)
r=r}r|rrr~rUrrzryrr{r)r5rUr{element_foos    r
test___init__zBasicElementTest.test___init__sm%!jjf--	
k2:666

eS--...

hK 0 0111

fc+..///

fc+..///	
#...+*++++*+++	
+V444+V444u
+V444K.77777r!cxdttjvrtjdtdddi}|tdddi|t5|}dddn#1swxYwY|	|||
|j|j|
|j|j|
|j
|j
|
t|t|tj||D]\}}||||
|j|jdS)	NrzElement.copy() not presentrrrrrqix)rr=r}rSkipTestrassertWarnsDeprecationWarningrrr~rUrzryr	itertoolszip_longestassertIsr{r5relement_foo2rrs     rrzBasicElementTest.test_copy	sRZ((#$@AAAjj%(8992::eue-=>>???


0
1
1	.	.&++--L	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.	
{333	
);?;;;*K,<===*K,<===	
\**C,<,<===!* 5k< P P	*	*VVMM&&))))	
,k.@AAAAAsB88B<?B<ctdddi}|tddditj|}|||||j|j||j|j||j|j|t|t|tj||D]\}}|||||j
|j
dSNrrrrrr)r=r}rrrr~rUrzryrrrrr{rs     r
test___copy__zBasicElementTest.test___copy__+	sCjj%(8992::eue-=>>???y--	
{333	
);?;;;*K,<===*K,<===	
\**C,<,<===!* 5k< P P	*	*VVMM&&))))	
,k.@AAAAAr!ctdddi}|tddditj|}|||||j|j||j|j||j	|j	|t|t|tj||D]\}}|||||j
|j
||j
|j
d|j
d<||j
|j
||j
|j
dSr)r=r}rrrrr~rUrzryrrrr{rrs     rtest___deepcopy__z"BasicElementTest.test___deepcopy__C	sjj%(8992::eue-=>>???}[11	
{333	
);?;;;*K,<===*K,<===	
\**C,<,<===!* 5k< P P	-	-VVVV,,,,	
,k.@AAA,k.@AAA%*5!,k.@AAAL/1CDDDDDr!ctd}|t|jd|t|jtddg|t|jddtdg|dd<|t5d|d<dddn#1swxYwY|t5tddg|dd<dddn#1swxYwYt|dr*ddgdd	d
d}|t|j|t|drQGd
dtj}|dg|dd<|ttj
|dSdS)Njoerrrr__setstate__rUrryrz)rU	_childrenr{ryrz__deepcopy__ceZdZdZdS)9BasicElementTest.test_augmentation_type_errors.<locals>.EcdSr^r")r5memos  rrzFBasicElementTest.test_augmentation_type_errors.<locals>.E.__deepcopy__x	s4r!N)r@rArBrr"r!rErw	s#     r!r)r=r}rr(rrrrrrr)r5rstaters    rtest_augmentation_type_errorsz.BasicElementTest.test_augmentation_type_errorsa	sXJJu)QXs333)QX

50A0A5/IJJJ)QXq%888

5!!"!!!


y
)
)		AaD															


y
)
)	.	.JJu%%u-AaaaD	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.1n%%	@"V E
i???1n%%	;
 
 
 
 
 BJ
 
 
 AeHH:AaaaDi:::::	;	;s$C%%C),C)
"D88D<?D<cGdd}|}td||_tj|}~t||td}|}||_tj|}t|d|}~~~t||td}td}td}||||||tj|}~~~t||dS)	NceZdZdS).BasicElementTest.test_cyclic_gc.<locals>.DummyNr@rArBr"r!rDummyr~	Dr!rr)rrrrr)	r=r}dummyrefweakrefrefr
rrqr)r5rrwrefrrrrs        rtest_cyclic_gczBasicElementTest.test_cyclic_gc}	s								
EGGZZAZ..
{1~~
$$&&!!!
JJuEGG
{1~~
]]1e!]
,
,
q"$$&&!!!ZZ


ZZ


ZZ


		"



		"



		"


{2B$$&&!!!!!r!c@dfd}td}tj||}||jd~t
|d||ddS)NFcddSNTr")wflags rwref_cbz.BasicElementTest.test_weakref.<locals>.wref_cb	sDDDr!rT)r=r}rrr~rUr
)r5rrrrs    @rtest_weakrefzBasicElementTest.test_weakref	s					
JJsOO{1g&&S)))
t$$$&&&&&r!ctdddd}||ddd||d	dddS)
Nrrrr)rrzr)rr)r=r}r~rm)r5rs  rtest_get_keyword_argsz&BasicElementTest.test_get_keyword_args	sm
ZZ!qAZ
.
.Q//333Q//33333r!c	tdtjdzD]g}t|jdD]L\}}|dd}d|_d|_||d		|d
|	|d	|
ddd
d||d|||}|
|jd|
|jdd|
t!|d|||NidS)Nrrrepeatr*)rztext goes herezopposite of headchild
grandchildz
.//grandchildrrzother valuer8r)rrgHIGHEST_PROTOCOLrr`r}rzryrqrrrrwr~rUr{rr)r5rrrprqrrs      rtest_picklezBasicElementTest.test_pickle	s{1f59::	0	0E")$,q"A"A"A
0
0NN5bN11)+!!!W--44V^^L5Q5QRRR00111		/**1-11&-HHH))!-D*0&%AA  ///  5!12666  R!,,,((B////
0	0	0r!c	tdtjdzD]}t|jdD]\}}d}||}||dd||d|||}||j	d||dj	d	dS)
Nrrrz\<?xml version="1.0"?>
                    <group><dogs>4</dogs>
                    </group>rUgroupr8rdogs)
rrgrrr`rr~__getstate__rwrU)r5rrrprqXMLTEXTrrs       rtest_pickle_issue18997z'BasicElementTest.test_pickle_issue18997	s1f59::
	4
	4E")$,q"A"A"A	
4	
4 &&w//  !2!25!97CCC))".E*0&%AA  111  AF3333	
4
	4
	4r!N)
r@rArBrrrrrrrrrrr"r!rrrs8886BBB:BBB0EEE<;;;8!"!"!"F'''444
000&44444r!rcveZdZdZdZdZejddZdZ	dZ
dZd	Zd
Z
dZdS)
BadElementTestcfGfdd}|gtd}	|n#t$rYnwxYwGdd|tj}|dgtd}|dS)Nc*eZdZefdZdS)2BadElementTest.test_extend_mutable_list.<locals>.Xc\tdgdd<tjS)NrrVr5Ls r	__class__z<BadElementTest.test_extend_mutable_list.<locals>.X.__class__	s'

5))*!!!z!r!Nr@rArBpropertyrrsrXr	8

"
"
"
"X
"
"
"r!rrceZdZdS)2BadElementTest.test_extend_mutable_list.<locals>.YNrr"r!rYr	rr!rrr=r}rr(r5rrrrs    @rtest_extend_mutable_listz'BadElementTest.test_extend_mutable_list	s	"	"	"	"	"	"	"	"	"	"
QSSEJJu	
HHQKKKK			D						2:			
QsVVHJJu	sA

AAcGfdd}|tdgtd}	|n#t$rYnwxYwGdd|tj}|dtdgtd}|dS)Nc*eZdZefdZdS)3BadElementTest.test_extend_mutable_list2.<locals>.Xc&dd=tjSr^rVrs rrz=BadElementTest.test_extend_mutable_list2.<locals>.X.__class__	saaaDz!r!Nrrsrrr	rr!rrrceZdZdS)3BadElementTest.test_extend_mutable_list2.<locals>.YNrr"r!rrr	rr!rrrrs    @rtest_extend_mutable_list2z(BadElementTest.test_extend_mutable_list2	s
	"	"	"	"	"	"	"	"	"	"
QSS"**U##$JJu	
HHQKKKK			D						2:			
QuXXrzz%(()JJu	sA&&
A32A3cGfddtj}td|dg|tjtdtdtdg|tj|ddS)NceZdZfdZdS)3BadElementTest.test_remove_with_mutating.<locals>.Xcdd=dS)NFr")r5ors  rrz:BadElementTest.test_remove_with_mutating.<locals>.X.__eq__	saaaDur!Nrrzsrrr	s.






r!rrrr)r=r}rrrrr5rrs  @rtest_remove_with_mutatingz(BadElementTest.test_remove_with_mutating	s							
			
JJu	!!E((*ah

50A0ABBBJJu	"**U##$%%%*ah%99999r!ctd}t|d|5|t5t|dddn#1swxYwYddddS#1swxYwYdS)NrrU)r=r}rrRuntimeErrorrrEs  rtest_recursive_reprz"BadElementTest.test_recursive_repr
s
JJu
q%
#
#		""<00

Q














																		s5A;A#A;#A'	'A;*A'	+A;;A?A?cGfddt}t}|di|d||d|d|d||jddS)NceZdZfdZdS)/BadElementTest.test_element_get_text.<locals>.Xc:	jdS#t$rYdSwxYwr^)rz	NameErrorrss r__del__z7BadElementTest.test_element_get_text.<locals>.X.__del__
s5IIII DDs
Nr@rArBrrLsrrr
.






r!rrUABCDEFGHIJKLABCDEFGHIJKL)	rr=r rHr*r4rr~rzr5rrrLs   @rtest_element_get_textz$BadElementTest.test_element_get_text
s										
NN	r	v	qqyy	v	ewwyyN33333r!c
Gfddt}t}|di|di|d|d||d|d|d||djd	dS)
NceZdZfdZdS)/BadElementTest.test_element_get_tail.<locals>.XcF	djdS#t$rYdSwxYwr)ryrrss rrz7BadElementTest.test_element_get_tail.<locals>.X.__del__%
s9GLLLL DDs

  Nrrsrrr$
rr!rr;rUrrrrr)	rr=r rHr4r*rr~ryrs   @rtest_element_get_tailz$BadElementTest.test_element_get_tail"
s										
NN		r	e	v	qqyy	v	f


wwyya~66666r!cXGfdd}tdtdd|tddd|dS)NceZdZfdZdS)%BadElementTest.test_subscr.<locals>.Xcdd=dSNrr"rEs r	__index__z/BadElementTest.test_subscr.<locals>.X.__index__:
saaaDqr!Nr@rArBr%rzsrrr"9
.






r!rrLrrr)r=r}rrs  @rtest_subscrzBadElementTest.test_subscr7
s										

JJv	G$$%%%	$1133$	G$$%%%	!Bqqss(r!cGfdd}tdtdD]0}dtd1gdd|<dS)NceZdZfdZdS))BadElementTest.test_ass_subscr.<locals>.Xcgdd<dSr$r"rEs rr%z3BadElementTest.test_ass_subscr.<locals>.X.__index__H
s!!!qr!Nr&rzsrrr+G
r'r!rrLrrr)r=r}rr)r5rr/rs   @rtest_ass_subscrzBadElementTest.test_ass_subscrE
s										

JJvr	-	-A
HHQ

7++,,,,!Bqqss(r!cd}t|}|di|d|t
|jdi~t
dS)NcgSr^r"rrs  relement_factoryz>BadElementTest.test_treebuilder_start.<locals>.element_factoryT
Ir!r1rUrr)r=r rHr*rAttributeErrorr
r5r1rs   rtest_treebuilder_startz%BadElementTest.test_treebuilder_startR
ss			NN?N;;	r	v.!'62>>>
r!cd}t|}|di|d|t
|jd~tdS)NcgSr^r"r0s  rr1z<BadElementTest.test_treebuilder_end.<locals>.element_factory`
r2r!r3rUr)r=r rHr*rr4r4r
r5s   rtest_treebuilder_endz#BadElementTest.test_treebuilder_end^
sq			NN?N;;	r	v.!%777
r!N)r@rArBrrrrinfinite_recursionrrrr(r-r6r9r"r!rrr	s&&::: W##$#444&777*







r!rceZdZdZdZdS)MutatingElementPathc8tj|g|R}||_|Sr^)r__new__rL)rbrLrr5s    rr>zMutatingElementPath.__new__l
s%{3&&&&	r!c|jdd=dSrrr5rs  rrzMutatingElementPath.__eq__p
sIaaaLtr!N)r@rArBr>rr"r!rr<r<k
s2r!r<ceZdZdZdS)BadElementPathcddz)Nrrr"r@s  rrzBadElementPath.__eq__v
sc	r!Nrr"r!rrBrBu
s#r!rBcXeZdZfdZfdZdZdZdZdZdZ	dZ
d	Zd
ZxZ
S)BadElementPathTestcztddlm}|j|_i|_dSNrr2)supersetUpr4r3r
path_cacher5r3rs  rrIzBadElementPathTest.setUp{
s>


))))))%,r!clddlm}|j|_t	dSrG)r4r3rJrrHtearDownrKs  rrMzBadElementPathTest.tearDown
s;))))))!_
r!ctd}|tdg|t	|ddSNrrr)r=r}rrr<rEs  rtest_find_with_mutatingz*BadElementPathTest.test_find_with_mutating
sWJJu	"**U##$%%%	"1c**+++++r!ctd}|tdg	|t	ddS#t
$rYdSwxYwrO)r=r}rrrBZeroDivisionErrorrEs  rtest_find_with_errorz'BadElementPathTest.test_find_with_error
s{JJu	"**U##$%%%	
FF>#&&''''' 			DD	
"A..
A<;A<ctd}|tdg|t	|ddSrO)r=r}rrr<rEs  rtest_findtext_with_mutatingz.BadElementPathTest.test_findtext_with_mutating
sWJJu	"**U##$%%%	

&q#../////r!ctd}|tdg	|t	ddS#t
$rYdSwxYwrO)r=r}rrrBrRrEs  rtest_findtext_with_errorz+BadElementPathTest.test_findtext_with_error
s{JJu	"**U##$%%%	
JJ~c**+++++ 			DD	rTctd}t|d}dddgdig}|D]2}||_||d|3dS)NrrrQrFr"./barr=r}rqrzr~r)r5	root_elemsub_elemfalseyvals     r(test_findtext_with_falsey_text_attributez;BadElementPathTest.test_findtext_with_falsey_text_attribute
sJJu%%	==E22aB+	?	?CHMY//88#>>>>	?	?r!ctd}t|d}d|_||dddS)NrrrZrQr[)r5r\r]s   r&test_findtext_with_none_text_attributez9BadElementPathTest.test_findtext_with_none_text_attribute
sWJJu%%	==E22
++G44b99999r!ctd}|tdg|t	|ddSrO)r=r}rrr<rEs  rtest_findall_with_mutatingz-BadElementPathTest.test_findall_with_mutating
sWJJu	"**U##$%%%			%a--.....r!ctd}|tdg	|t	ddS#t
$rYdSwxYwrO)r=r}rrrBrRrEs  rtest_findall_with_errorz*BadElementPathTest.test_findall_with_error
s{JJu	"**U##$%%%	
IInS))***** 			DD	rT)r@rArBrIrMrPrSrVrXr`rbrdrf
__classcell__)rs@rrErEz
s     
,,,
000
???:::///
r!rEc,eZdZdZdZdZdZdZdS)ElementTreeTypeTestc|tjt|tjt|tjt|tjt|tjt|tjtdSr^)	r|r=rfrrUr/r}r rrs rtest_istypezElementTreeTypeTest.test_istype
sbmT222bh---bnd333bj$///bnd333blD11111r!c2Gddtj}|d}||tj|||||jdd|_||jddS)NceZdZdS)DElementTreeTypeTest.test_Element_subclass_trivial.<locals>.MyElementNrr"r!r	MyElementrn
rr!rorr)r=r}r|r~rUrzr5romyes   rtest_Element_subclass_trivialz1ElementTreeTypeTest.test_Element_subclass_trivial
s					
			ic2:...c9---%(((5)))))r!cGfddtjdddddd	}||jd
|t	|gddS)Nc&eZdZiffd	ZxZS)HElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElementcHt|j|dz|fi|dS)N__)rHr)r5rUr{extrarors    rrzQElementTreeTypeTest.test_Element_subclass_constructor.<locals>.MyElement.__init__
s4/i&&/d
FLLeLLLLLr!)r@rArBrrg)rros@rroru
sQ+-
M
M
M
M
M
M
M
M
M
M
Mr!rorrr)rrr)rrfoo__))rr)rr)rr)rry)r=r}r~rUrr)r5rqros  @r!test_Element_subclass_constructorz5ElementTreeTypeTest.test_Element_subclass_constructor
s	M	M	M	M	M	M	M
	M	M	MiQQ//1:::'***		,,444	6	6	6	6	6r!cGddtj}|d}||ddS)NceZdZdZdS)GElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElementc|jSr^rTrs r	newmethodzQElementTreeTypeTest.test_Element_subclass_new_method.<locals>.MyElement.newmethod
s	xr!N)r@rArBrr"r!rror~
s#
 
 
 
 
 r!ror)r=r}r~rrps   r test_Element_subclass_new_methodz4ElementTreeTypeTest.test_Element_subclass_new_method
sc	 	 	 	 	 
	 	 	 i%00000r!cBGddtj}td}d|_|d}d|_||||dd||djdt|	d}|t|d|||djddS)	NceZdZdS)AElementTreeTypeTest.test_Element_subclass_find.<locals>.MyElementNrr"r!rror
rr!rorrzrrorr)r=r}rzrr~rrrUrrr)r5rorsubfounds     rtest_Element_subclass_findz.ElementTreeTypeTest.test_Element_subclass_find
s					
			
JJui	


E**I666*E222QYYu%%&&UQ...qu-----r!N)r@rArBrkrrr{rrr"r!rriri
s_222***666111
.
.
.
.
.r!ric>eZdZdZdZdZdZdZdZdZ	dZ
d	S)
ElementFindTestchtt}||djd||djd||djdtt|d<||djd||dd||dd||dd	||dd
d	||d||dd
d
|tdd
d	dS)NrUr./tagrzsection/nexttagnexttagrzrorQrtogz<tag><empty /></tag>empty)	r=rrr~rrUSAMPLE_SECTIONrrrEs  rtest_find_simplez ElementFindTest.test_find_simple
sFF:*E222
..2E:::,e444vvn%%! 1226	BBBG,,f555M22I>>>	
$566;;;$5yAA2FFF	
!**U++,,,E955yAAA	
 677@@II2NNNNNr!cVd}t|}||djdd||djdd||djdd||d	jdd
||djdd|td|jd
|td|jd|td|jd|td|jddS)Nz
        <body>
            <tag class='a'/>
            <tag class='b'/>
            <tag class='c'/>
            <tag class='d'/>
        </body>z./tag[1]classrz./tag[2]rz
./tag[last()]rz./tag[last()-1]rz./tag[last()-2]XPathz./tag[0]z	./tag[-1]z./tag[last()-0]z./tag[last()+1])r=rr~rr{rSyntaxError)r5
LINEAR_XMLrs   rtest_find_xpathzElementFindTest.test_find_xpathsj

FF:	

++27;SAAA
++27;SAAA007@#FFF 1229'BCHHH 1229'BCHHH{GQVZHHH{GQV[III{GQV=NOOO{GQV=NOOOOOr!c2tt}tt|d<|t|ddg|t|dddg|t|dg|t|dg|t|dgd|t|d	dgd
z|t|ddg|t|ddgdz|t|d
gd|t|dgd|t|dgd|t|dgd|t|dgd|t|ddg|t|ddg|t|ddgdz|t|ddgdz|t|ddgdz|t|ddg|t|ddgdz|t|ddgdz|t|ddg|t|ddg|t|dd g|t|d!g|t|d"g|t|d#dgdz||d$|d|t|d%d g|t|d&d g|t|d'd g|t|d(d g|t|d)d g|t|d*g|t|d+g|t|d,g|t|d-g|t|d.g|t|d/dg|t|d0dg|t|d1dg|t|d2dg|t|d3dg|t|d4g|t|d5g|t|d6dgdz|t|d7dgdz|t|d8dgdz|t|d9dgdz|t|d:dgdz|t|d;dgd
z|t|d<dgd
z|d|d=<|t|d(d d g|t|d3ddgdS)>Nrrqr)rUrztog/foorrmz.//tagryrzsection//tagz	section/*)rUrnextsectionz
section//*)rUrrrUzsection/.//*z*/*z*//*z*/tagz*/./tagrz././tagz.//tag[@class]rz.//tag[@class="a"]z.//tag[@class!="a"]z.//tag[@class="b"]z.//tag[@class!="b"]z.//tag[@id]z.//section[tag]rlz.//section[element]z../tagzsection/../tagz	section//z.//section[tag='subtext']z.//section[tag ='subtext']z.//section[tag= 'subtext']z.//section[tag = 'subtext']z.//section[ tag = 'subtext' ]z.//section[tag!='subtext']z.//section[tag !='subtext']z.//section[tag!= 'subtext']z.//section[tag != 'subtext']z.//section[ tag != 'subtext' ]z.//tag[.='subtext']z.//tag[. ='subtext']z.//tag[.= "subtext"]z.//tag[ . = "subtext" ]z.//tag[. = 'subtext']z.//tag[. = 'subtext ']z.//tag[.= ' subtext']z.//tag[.!='subtext']z.//tag[. !='subtext']z.//tag[.!= "subtext"]z.//tag[ . != "subtext" ]z.//tag[. != 'subtext']z.//tag[. != 'subtext ']z.//tag[.!= ' subtext']r)r=rrrr~rZrrEs  rtest_findallzElementFindTest.test_findall"sFF:vvn%%!		#77&BBB		%(8(899E5>JJJ		%(8(8992>>>		)(<(<==rBBB		#77%%%	'	'	'		((;(;<<
GaK					-(@(@AAE7KKK		.(A(ABBUGaKPPP		+(>(>??---	/	/	/		,(?(?@@444	6	6	6		.(A(ABB444	6	6	6		%(8(899---	/	/	/		&(9(9::444	6	6	6		'(:(:;;eWEEE		)(<(<==wGGG		'(:(:;;eWq[III		)(<(<==w{KKK		2B(C(CDD
GaK					2F(G(GHH
G					2G(H(HII
GaK					2F(G(GHH
GaK					2G(H(HII
G					-(@(@AA
G					2C(D(DEE
K					2G(H(HII2NNN		((;(;<<bAAA		2B(C(CDD
GaK			;//<1H1HIII		2M(N(NOO
K					2N(O(OPP
K					2N(O(OPP
K					2O(P(PQQ
K					2Q(R(RSS
K			
	
		2N(O(OPP					2O(P(PQQ					2O(P(PQQ					2P(Q(QRR					2R(S(STT				
		2G(H(HII	"	"	"		2H(I(IJJ	"	"	"		2H(I(IJJ	"	"	"		2K(L(LMM	"	"	"		2I(J(JKK	"	"	"		2J(K(KLL					2I(J(JKK			
	
		2H(I(IJJ1	&	&	&		2I(J(JKK1	&	&	&		2I(J(JKK1	&	&	&		2L(M(MNN1	&	&	&		2J(K(KLL1	&	&	&	
		2K(L(LMM1	&	&	&		2J(K(KLL1	&	&	&t!		2O(P(PQQ#Y/	1	1	1		2I(J(JKK	)	)	)	)	)r!ctt}|t	|dg|t	|ddgdz|t	|ddgdzdS)NrUz{http://effbot.org/ns}tagrz.//{http://effbot.org/ns}tagr)r=rrPr~rZrrEs  rtest_test_find_with_nsz&ElementFindTest.test_test_find_with_nssFF=!!		%(8(8992>>>199%@AABB
()A-	/	/	/	
199%CDDEE
()A-	/	/	/	/	/r!ctd}ddi}|t|d|d|t|d|dddi}|t|d|d	|t|d|dddd
}|t|d|d|t|d|d	dS)N
            <a xmlns:x="X" xmlns:y="Y">
                <x:b><c/></x:b>
                <b/>
                <c><x:b/><b/></c><y:b/>
            </a>xxrz.//xx:b)r`r.//brr)rrQ)r=rr~rr)r5r;nsmaps   rtest_findall_different_nsmapsz-ElementFindTest.test_findall_different_nsmapssUvvsT\\)\FFGGKKKT\\&U\CCDDaHHHsT\\)\FFGGKKKT\\&U\CCDDaHHH$$T\\)\FFGGKKKT\\&U\CCDDaHHHHHr!cRtd}|td|t|dgd|t|ddg|t|ddg|t|d	d
g|t|dddg|t|d
dg|t|d
t|d|t|dgd|t|d|dgzt|d|t|dgd|t|dddg|t|dddg|t|dd
g|t|dgd|t|dddg|t|dt|ddS)Nrrz{*}b){X}br{Y}bz{*}crz{X}*rz{Y}*rrzrz{}br|)rrrrrrz.//{*}b)rrrrrz.//{*}cz.//{X}*z.//{Y}*z.//{}*)rrrrz.//{}br)r=rrrrr~rZrrs  rtest_findall_wildcardz%ElementFindTest.test_findall_wildcardsvv	
BJJv&&'''V(<(<==...	0	0	0V(<(<==	 	 	 V(<(<== 	#	#	#V(<(<== 	#	#	#U(;(;<<s	%	%	%U(;(;<<	 	 	 U(;(;<<'S(9(9::	<	<	<V(<(<==333	5	5	5	
V(<(<Rz(IJJ'S(9(9::	<	<	<	
Y(?(?@@;;;	=	=	=Y(?(?@@s	%	%	%Y(?(?@@ &)	+	+	+Y(?(?@@ 	#	#	#X(>(>??---	/	/	/X(>(>??s	%	%	%X(>(>??'V(<(<==	?	?	?	?	?r!ctt}|td5|dddddS#1swxYwYdS)Nzcannot use absolute pathz/tag)r=rrrrrrEs  r
test_bad_findzElementFindTest.test_bad_findsFF:

#
#K1K
L
L		
IIf																		sAA"%A"ctt}|t|djd|t|dd|tt|	ddgdzd}|
t|5t|	d}dddn#1swxYwY|t|dgdzdS)NrUrzrzThis search is broken in 1.3 and earlier, and will be fixed in a future version.  If you rely on the current behaviour, change it to '.+'z//tagr)r=rrr~r/rrUrrZrassertWarnsRegex
FutureWarning)r5rrrs    rtest_find_through_ElementTreez-ElementFindTest.test_find_through_ElementTreesxFF:**//66:EBBB**33E::FCCCq(9(9(A(A%(H(HII
GaK			#
"
"=#
6
6	4	4""**733B	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4++eWq[99999s.EEEN)r@rArBrrrrrrrrr"r!rrr
sOOO.PPP,n)n)n)`///III"*?*?*?X
:::::r!rc4eZdZddZdZdZdZdZdZdS)	ElementIterTestNcFt||Sr^)rZr)r5rLrUs   r_ilistzElementIterTest._ilistsdiinn---r!ctd}|||gd|||dddg|t|jd|d|	d|d|d	d|t|	d	t|d
}|tt|dd
t|d
}tt
}|tt||dd
td}|t |jtd}|d|	ddS)Nz7<html><body>this is a <i>paragraph</i>.</body>..</html>)rDr)rr)rrDrQzthis is a paragraph...zthis is a paragraph.z
this is a F)rMrr4r)r#z*<root>a&amp;<sub>b&amp;</sub>c&amp;</root>za&b&c&)r=rr~rrrbrrUr+rrQrarr r/rr4)r5ri
sourcefiler#rPs     r
test_basiczElementIterTest.test_basicsGffNOOS))+@+@+@AAASXXf%5%566
FFFchhjj))-v666002JKKK&!1!1!:!:!<!<=="	$	$	$cllnn--|<<<se444
bll:6677:EBBBse444
R^^%5%566bll:flEEFFqI	 	 	 ~~d##.$)444ffABB00(;;;;;r!ctd}|||dgt|d}|||ddgt|d}|||gdt|d}|||gd|d|d<|d=|||ddgdS)	Nrrr)rrrr)rrrrrr)r=r}r~rrqrcs     rtest_cornerszElementIterTest.test_cornerss!JJsOOQ#///
MM!S!!Q#s444
MM!S!!Q999
MM!S!!Q)=)=)=>>>t!
aDQ#s44444r!ctd}|||ddgdz|||ddgdz|t	|ddgdzgd}|t	|||||||||d|dS)	NaJ
            <document>
                <house>
                    <room>bedroom1</room>
                    <room>bedroom2</room>
                </house>
                <shed>nothing here
                </shed>
                <house>
                    <room>bedroom8</room>
                </house>
            </document>roomrhouserrT)r^rrrshedrrr)r=rr~rrZr)r5riall_tagss   rtest_iter_by_tagz ElementIterTest.test_iter_by_tag"s/ff	
S&11F8a<@@@S'22WIMBBB	
3888//00
HqL			
---

33X>>>S))8444S#..99999r!ctd}|}|t5tj|ddddS#1swxYwYdS)Nr)r=r}rrr(r)r5rrs   rrzElementIterTest.test_copy?sJJsOO
VVXX


y
)
)		IbMMM																		s	A++A/2A/cFtd}|}ttjdzD]U}|ttjf5t	j	||dddn#1swxYwYVdS)Nrr)
r=r}rrrgrrr(rjrh)r5rrrrs    rrzElementIterTest.test_pickleEsJJsOO
VVXX62Q677	(	(E""Iv/C#DEE
(
(R'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(	(	(s3BB	B	r^)	r@rArBrrrrrrr"r!rrrss....<<<6555,::::(((((r!rcpeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdZdZdZdZdS)TreeBuilderTestz<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text<div>subtext</div>tail</html>z<toplevel>sometext</toplevel>c*||jd||jd||jd||jit|}|t
|d|d}||jd||jd||jd||jidS)NrDrzrrdivrory)r~rUrzryr{rr)r5rchildrenrs    r_check_sample1_elementz&TreeBuilderTest._check_sample1_elementUs'''(((&&&2&&&77X***E***Y///V,,,r*****r!cGdd}Gdd|}t|}||j||dt|}||j||dtt
}||j||dS)NceZdZdZdS)<TreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuildercdS)Nrr"rs rrzBTreeBuilderTest.test_dummy_builder.<locals>.BaseDummyBuilder.closedsrr!NrWr"r!rBaseDummyBuilderrcs#




r!rceZdZdxZxZZdS)8TreeBuilderTest.test_dummy_builder.<locals>.DummyBuildercdSr^r")rs r<lambda>zATreeBuilderTest.test_dummy_builder.<locals>.DummyBuilder.<lambda>hsDr!N)r@rArBr*rHr4r"r!rDummyBuilderrgs!00D05333r!rrr)r=rrsample1r~robjectr)r5rrr#s    rtest_dummy_builderz"TreeBuilderTest.test_dummy_builderbs>									1	1	1	1	1+	1	1	1\\^^44DL!!!,,,%5%5%7%788DL!!!,,,VXX..DL!!!&,,..)))))r!ct}||djtj||djdttj}||djtj||djdtt}||dtddS)Nctext)comment_factory)r=r r~rprUrrrzrr5rs  rtest_treebuilder_commentz(TreeBuilderTest.test_treebuilder_commentvsNN7++/<<<7++0':::NN2:N667++/<<<7++0':::NN3N//7++S\\:::::r!ct}||ddjtj||ddjdttj}||djtj||djd||ddjtj||ddjdtd}||dtddf||ddtddfdS)Nr)
pi_factoryrz text zpitarget  text c$t||fSr^)r)rrzs  rrz5TreeBuilderTest.test_treebuilder_pi.<locals>.<lambda>sCKK;Nr!)r=r r~rrUrrzrrs  rtest_treebuilder_piz#TreeBuilderTest.test_treebuilder_pisNNh--125999h--2H===NNbeN,,h+RU333h,h777j(337???j(338:KLLLNN&N&NNOOh#h--)>???j(33c*oox5PQQQQQr!cGddtj}d}t|}||jdt|}|||}||jdd}t|}||jdd}t|}|||}||jddS)NceZdZdS);TreeBuilderTest.test_late_tail.<locals>.TreeBuilderSubclassNrr"r!rTreeBuilderSubclassrrr!rz<a>text<!-- comment -->tail</a>texttailrz<a>text<?pi data?>tail</a>)r=r rr~rzrrr)r5rrrr#s     rtest_late_tailzTreeBuilderTest.test_late_tails?					".			0MM#,,,%8%8%:%:;;CLLNN,,,*MM#,,,*%8%8%:%:;;CLLNN,,,,,r!cGddtj}d}ttd}|||}||djd||djd	||jd
t|d}|||}||djd||djd	||jd
d}ttd}|||}||djd
||djd||jdt|d}|||}||djd
||djd||jddS)NceZdZdS)KTreeBuilderTest.test_late_tail_mix_pi_comments.<locals>.TreeBuilderSubclassNrr"r!rrrrr!rz/<a>text<?pi1?> <!-- comment -->
<?pi2?>tail</a>T)insert_commentsrrrz
tailztext z+<a>text<!-- comment -->
<?pi data?>tail</a>)
insert_piszpi dataryztext
)r=r rrrr~rzry)r5rrr#rs     rtest_late_tail_mix_pi_commentsz.TreeBuilderTest.test_late_tail_mix_pi_commentss					".			AR^^D^%I%IJJCLLNN1K0001H---)))%8%8%N%N%NOOCLLNN1K0001H---)))<R^^t^%D%DEECLLNN1I...1F+++***%8%8D%I%I%IJJCLLNN1I...1F+++*****r!cttd}||j|}||dSNr3r)r=rr rrrrr5r#rs   r$test_treebuilder_elementfactory_nonez4TreeBuilderTest.test_treebuilder_elementfactory_nones^R^^D^%I%IJJDL!!!LLNN##A&&&&&r!cXGddtj}|}||ddt|}||j|}||dS)NceZdZdZdS)4TreeBuilderTest.test_subclass.<locals>.MyTreeBuilderc|dzSNrr"r?s  rrz;TreeBuilderTest.test_subclass.<locals>.MyTreeBuilder.foobar1ur!Nr@rArBrr"r!r
MyTreeBuilderr#




r!rrrr)	r=r r~rrrrrrr5rtbr#rs     r
test_subclasszTreeBuilderTest.test_subclasss					BN			]__2+++R((DL!!!LLNN##A&&&&&r!cGddtj}|tjtj}||ddt|}||j|d|	}|
|dS)NceZdZdZdS)?TreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilderc|dzSrr"r?s  rrzFTreeBuilderTest.test_subclass_comment_pi.<locals>.MyTreeBuilder.foobarrr!Nrr"r!rrrrr!r)rrrrrz<!-- a comment--><?and a pi?>)r=r rrrr~rrrrrrrs     rtest_subclass_comment_piz(TreeBuilderTest.test_subclass_comment_pis					BN			]2:"%
H
H
H2+++R((DL!!!3444LLNN##A&&&&&r!cgfd}t|}t|}||j||dgdS)Ncd|t||Sr^)rr=r})rUr{lsts  r	myfactoryz7TreeBuilderTest.test_element_factory.<locals>.myfactorys&JJsOOO::c6***r!r3rtoplevel)r=r rrsample2rr~)r5rrr#rs    @rtest_element_factoryz$TreeBuilderTest.test_element_factorys	+	+	+	+	+
^^I^
6
6R((DL!!!zl+++++r!c$t|}t|}||j|}|||||dSr)r=r rrrrr|r)r5rbrr#rs     r_check_element_factory_classz,TreeBuilderTest._check_element_factory_classsy
^^C^
0
0R((DL!!!LLNNa%%%##A&&&&&r!c`Gddtj}||dS)NceZdZdS)@TreeBuilderTest.test_element_factory_subclass.<locals>.MyElementNrr"r!rror
rr!ro)r=r}r)r5ros  rtest_element_factory_subclassz-TreeBuilderTest.test_element_factory_subclass
sH					
			)))44444r!ctj}||jdGdd|t}||dS)Nr8ceZdZdS)LTreeBuilderTest.test_element_factory_pure_python_subclass.<locals>.MyElementNrr"r!rror	
rr!ro)r=_Element_Pyr~rArr)r5baseros   r)test_element_factory_pure_python_subclassz9TreeBuilderTest.test_element_factory_pure_python_subclass
sj~*ABBB					j			)))44444r!cGdd}t|}||j||ddS)NceZdZdZdZdZdS)3TreeBuilderTest.test_doctype.<locals>.DoctypeParserNc|||f|_dSr^_doctype)r5ropubidsystems    rdoctypez;TreeBuilderTest.test_doctype.<locals>.DoctypeParser.doctype
s!%uf 5


r!c|jSr^rrs rrz9TreeBuilderTest.test_doctype.<locals>.DoctypeParser.close 
s
}$r!)r@rArBrrrr"r!r
DoctypeParserr
s7H
6
6
6
%
%
%
%
%r!rrrDz&-//W3C//DTD XHTML 1.0 Transitional//ENz7http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd)r=rrrr~r)r5rr#s   rtest_doctypezTreeBuilderTest.test_doctype
s	%	%	%	%	%	%	%	%]]__55DL!!!
H	I	I	I	I	Ir!cTGdd}t|dD]Y}|t|5t||dddn#1swxYwYZt|tdD]n}t||t}||j||odS)Nc eZdZdefdZdZdS)BTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilderNc"||_||_dSr^raise_inwhat)r5rr s   rrzKTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__init__,
s (
 			r!cV||jkr||jd}|S)NcdSr^r")rs rhandlez^TreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__.<locals>.handle3
sDr!r)r5ror#s   r__getattr__zNTreeBuilderTest.test_builder_lookup_errors.<locals>.RaisingBuilder.__getattr__0
s74=(())DM222
r!)r@rArBrrr$r"r!rRaisingBuilderr+
s<(,:
!
!
!
!




r!r%r)rHr*r4rpr)r )	r=rrrr4rrrr)r5r%rr#s    rtest_builder_lookup_errorsz*TreeBuilderTest.test_builder_lookup_errors*
sr
	
	
	
	
	
	
	
		NN,,--->	;	;E''
E::
;
;NN5$9$9:::
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;	NN???@@@>	.	.E\\N)S)S)S\TTFKK%%%fllnn----	.	.s%BB	B	N)r@rArBrrrrrrrrrrrrrrrrr&r"r!rrrMs
2G
2G+++***(
;
;
;
R
R
R---0"+"+"+H''''''
'
'
',,,'''555
555III".....r!rcDeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS)
XMLParserTests<file><line>22</line></file>s<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html>text</html>uX<?xml version="1.0" encoding="iso-8859-1"?>
<money value="$£€𐅻">$£€𐅻</money>c||jd||djd||djddS)NrOrline22)r~rUrzrEs  r_check_sample_elementz#XMLParserTest._check_sample_elementM
sX'''16***1D)))))r!ctdt}||j||dS)Nr)rEr)r=rr rrr,r)r5rs  rtest_constructor_argsz#XMLParserTest.test_constructor_argsR
s_,,&(nn&6&688T\"""""7==??33333r!cGddtj}|}||j||dS)NceZdZdS)-XMLParserTest.test_subclass.<locals>.MyParserNrr"r!rMyParserr1Y
rr!r2)r=rrrr,r)r5r2r#s   rrzXMLParserTest.test_subclassX
so					r|			DL!!!""6<<>>22222r!c tj5tjdtt}||j|ddddS#1swxYwYdS)Nerror)	warningscatch_warningssimplefilterrr=rrrrrs  rtest_doctype_warningz"XMLParserTest.test_doctype_warning_
s

$
&
&		!'+=>>>\\^^FKK%%%LLNNN																			sA"BB
BcdGfddtj}|}|td5||jdddn#1swxYwY||dxtj	5tj
dttj
dtGfdd}||}||j|||dddddS#1swxYwYdS)	NceZdZfdZdS)@XMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctypec||fdSr^r")r5rrrs   rrzHXMLParserTest.test_subclass_doctype.<locals>.MyParserWithDoctype.doctypei
s &>r!Nr@rArBrrsrMyParserWithDoctyper;h
s.
*
*
*
*
*
*
*r!r>rr4ceZdZfdZdS):XMLParserTest.test_subclass_doctype.<locals>.DoctypeParserc|||fdSr^r")r5rorr	_doctype2s    rrzBXMLParserTest.test_subclass_doctype.<locals>.DoctypeParser.doctypex
s!%uf 5IIIr!Nr=)rBsrrr@w
s.6666666r!rrr)
r=rrRuntimeWarningrrrrr5r6r7rr~)r5r>r#rrrBs    @@rtest_subclass_doctypez#XMLParserTest.test_subclass_doctypef
sL	*	*	*	*	*	*	*",	*	*	*
%$&&

"
">9
=
=	&	&KK%%%	&	&	&	&	&	&	&	&	&	&	&	&	&	&	&(#####9

$
&
&	M	M!'+=>>>!'>:::
6
6
6
6
6
6
6
6
6
6
)(

@@@FKK%%%LLNNNh'''YL
M
M
M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	M	Ms%A++A/2A/6B1E44E8;E8cftj5tjdttjdtGddt
j}|}||j|	ddddS#1swxYwYdS)z:Ensure that ordinary usage is not deprecated (Issue 19176)r4ceZdZdS)DXMLParserTest.test_inherited_doctype.<locals>.MyParserWithoutDoctypeNrr"r!rMyParserWithoutDoctyperG
sr!rHN)
r5r6r7rrCr=rrrr)r5rHr#s   rtest_inherited_doctypez$XMLParserTest.test_inherited_doctype
s

$
&
&		!'+=>>>!'>:::







++--FKK%%%LLNNN																		sBB&&B*-B*cttt}||j|}||jd||jdd||j	ddS)Nrmoneyru
$£€𐅻)
r=rr rsample3rr~rUr{rzrs   rtest_parse_stringzXMLParserTest.test_parse_string
sR^^%5%566DL!!!LLNN((('*,CDDD!899999r!N)
r@rArBrrrLr,r.rr8rDrIrMr"r!rr(r(D
s-GGMG***
444333MMM<			:::::r!r(ceZdZdZdS)NamespaceParseTestcddd}tt}|t	|d|d|t	|d|d|t	|d|ddS)	Nhellor)hr"z{hello}tablerz.//{hello}tdrz.//{foo}name)r=rSAMPLE_XML_NS_ELEMSr~rr)r5rris   rtest_find_with_namespacez+NamespaceParseTest.test_find_with_namespace
sE**mm/00S[[??@@!DDDS[[??@@!DDDS[[??@@!DDDDDr!N)r@rArBrTr"r!rrOrO
s(EEEEEr!rOcVeZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
S)ElementSlicingTestcd|DS)Ncg|]	}|j
Sr"rT)rWrs  rrXz1ElementSlicingTest._elem_tags.<locals>.<listcomp>
s(((!(((r!r")r5elemlists  r
_elem_tagszElementSlicingTest._elem_tags
s((x((((r!cF|t|Sr^)rZrrss  r
_subelem_tagsz ElementSlicingTest._subelem_tags
stDzz***r!ctd}t|D] }t|d|z!|S)zxCreate an Element with a tag 'a', with the given amount of children
           named 'a0', 'a1' ... and so on.

        rza%s)r=r}rrq)r5numchildrenrrs    r_make_elem_with_childrenz+ElementSlicingTest._make_elem_with_children
sJ

JJsOO{##	(	(AMM!UQY''''r!c.|d|djd|djd|tfd|tfddS)Nrra1a8cdS)Nr"rzsrrz?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>
saer!cdS)Nir"rzsrrz?ElementSlicingTest.test_getslice_single_index.<locals>.<lambda>
safr!)r_r~rUr
IndexErrorrEs @rtest_getslice_single_indexz-ElementSlicingTest.test_getslice_single_index
s))"--14(((2D)))*mmmm444*nnnn55555r!c|d}|||ddgd|||ddgd|||ddgd|||ddddg|||ddddg|||dd	d
dgdS)Nrr)a3a4a5rrjrkrra0ra)r_r~rZrEs  rtest_getslice_rangez&ElementSlicingTest.test_getslice_range
s8))!,,122//1C1C1CDDD1Q3002D2D2DEEE1R4113E3E3EFFF1Q3004,???1R411D$<@@@2A2//$>>>>>r!c	|d}|||dddddg|||dddgd|||dddddg|||dddd	dg|||ddtjd
g|||ddtjdzd
gdS)Nrrrca9r)rnrja6rrrnrarj@r_r~rZrfmaxsizerEs  rtest_getslice_stepsz&ElementSlicingTest.test_getslice_steps
sF))"--1R633dD\BBB33Q3002J2J2JKKK33Q3004,???14a411D$<@@@1>ck>):;;dVDDD1+=ck2o+=)>??$HHHHHr!c	|d}|||dddgd|||dddddg|||ddtjdg|||ddtjdz
dg|||ddtjd	zdgdS)
Nryr)rja2rarnrbrjrarrrtrurEs  rtest_getslice_negative_stepsz/ElementSlicingTest.test_getslice_negative_steps
s$))!,,44R4113K3K3KLLL44R411D$<@@@1?s{l?);<<tfEEE1+<s{l1n+<)=>>GGG1+>s{lB.>+>)?@@4&IIIIIr!c@|d}|dd=|||ddg|d}|dd=|||g|d}|ddd=|||g|d}|ddd=|||ddg|d}|d	dd=|||ddg|d}|ddd=|||d
gdS)Nryrrryrjrrbrnrra)r_r~r\rEs  r
test_delslicez ElementSlicingTest.test_delslice
s))!,,
acF++A..t===))!,,
abbE++A..333))!,,
dddG++A..333))!,,
dddG++A..t===))!,,
addG++A..t===))!,,
cccF++A..77777r!c|d}td|d<|||gdtd|d<|||gd|t5td|d	<dddn#1swxYwY|t5td|d
<dddn#1swxYwY|||gddS)Nryrrrnrryrjrrb)rnrrrjrr)r_r=r}r~r\rrgrEs  rtest_setslice_single_indexz-ElementSlicingTest.test_setslice_single_index
s))!,,zz#!++A..0G0G0GHHH

3"++A..0F0F0FGGG


z
*
*	#	#::c??AaD	#	#	#	#	#	#	#	#	#	#	#	#	#	#	#


z
*
*	$	$JJsOOAbE	$	$	$	$	$	$	$	$	$	$	$	$	$	$	$++A..0F0F0FGGGGGs$C**C.1C.D99D=D=c>|d}dtdD|dd<|||gd|d}tdg|dd<|||gd|d}d	tdD|dd<|||gd
dS)NrycHg|]}td|z Szb%srVrWrs  rrXz:ElementSlicingTest.test_setslice_range.<locals>.<listcomp>(:::A"**UQY'':::r!rrr)rnb0b1rjr)rnrrjcHg|]}td|z SrrVrs  rrXz:ElementSlicingTest.test_setslice_range.<locals>.<listcomp>
rr!)rnrrb2rj)r_rr~r\r=r}rEs  rtest_setslice_rangez&ElementSlicingTest.test_setslice_ranges))!,,::q:::!A#++A..0H0H0HIII))!,,**S//"!A#++A..0A0A0ABBB))!,,::q:::!A#++A..0N0N0NOOOOOr!c|d}dtdD|ddd<|||gd|d}|t
5tdg|ddd<dddn#1swxYwY|t
5dtd	D|ddd<dddn#1swxYwY|t
5g|ddd<dddn#1swxYwY|||gd
|d}tdg|ddtj	<|||gdtd
g|ddtj	dz<|||gddS)NrcHg|]}td|z SrrVrs  rrXz:ElementSlicingTest.test_setslice_steps.<locals>.<listcomp>s(<<<aBJJuqy))<<<r!rrr)rnrryrrkrlrcHg|]}td|z SrrVrs  rrXz:ElementSlicingTest.test_setslice_steps.<locals>.<listcomp>s(@@@!

519--@@@r!r)rnraryrjrkrlryr~rrtrnrryrj
r_rr~r\rrr=r}rfrvrEs  rtest_setslice_stepsz&ElementSlicingTest.test_setslice_steps
s))!,,<<588<<<!Aa%++A..0T0T0TUUU))!,,


z
*
*	)	)

3(Aa!eH	)	)	)	)	)	)	)	)	)	)	)	)	)	)	)


z
*
*	A	A@@uQxx@@@Aa!eH	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A


z
*
*		Aa!eH															++A..0T0T0TUUU))!,,ZZ__-!.S[.++A..0G0G0GHHH!#C 1!
S["_
++A..0G0G0GHHHHH6"B==CC" DDD3	EEEc@|d}dtdD|ddd<|||gd|d}|t
5tdg|ddd<dddn#1swxYwY|t
5dtd	D|ddd<dddn#1swxYwY|t
5g|ddd<dddn#1swxYwY|||gd
|d}tdg|ddtj	<|||gdtd
g|ddtj	dz
<|||gdtdg|ddtj	dz<|||gddS)NrycHg|]}td|z SrrVrs  rrXzCElementSlicingTest.test_setslice_negative_steps.<locals>.<listcomp>#s(===qRZZ	**===r!rrr)rnrrrjrcHg|]}td|z SrrVrs  rrXzCElementSlicingTest.test_setslice_negative_steps.<locals>.<listcomp>*s(AAA1EAI..AAAr!r)rnraryrjrr~rrrrt)rnrryrjrrEs  rtest_setslice_negative_stepsz/ElementSlicingTest.test_setslice_negative_steps!sE))!,,==E!HH===!Ab&	++A..0H0H0HIII))!,,


z
*
*	*	*C)Aa"fI	*	*	*	*	*	*	*	*	*	*	*	*	*	*	*


z
*
*	B	BAAaAAAAa"fI	B	B	B	B	B	B	B	B	B	B	B	B	B	B	B


z
*
*		Aa"fI															++A..0H0H0HIII))!,, jjoo.!/ck\/++A..0G0G0GHHH "

30!
ck\!^
++A..0G0G0GHHH"$**S//!2!
ck\2

++A..0G0G0GHHHHHrN)r@rArBrZr\r_rhrorwrzr|rrrrr"r!rrVrV
s)))+++666???IIIJJJ8882HHHPPPIII(IIIIIr!rVceZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZGd
dZdZdZdZdZdZdZdZdS)IOTestc		td}d|_|t	|ddD]}||5|t	||d|t	||ddddn#1swxYwYdD]}||5|t	||d|z||}|t	||d|z|dddn#1swxYwYtd}d	|_|t	|d
|t	|dd|t	|d
ddD]=}|t	||d|z|>td}d	|jd<|t	|d|t	|dd|t	|d
ddD]=}|t	||d|z|>td}d|_|t	|d|t	|dd|t	|d
ddD]=}|t	||d|z|>td}d|jd<|t	|d|t	|dd|t	|d
ddD]=}|t	||d|z|>dS)NrUrz<tag>abc</tag>)rrrs<tag>abc</tag>)rrutf-32z2<?xml version='1.0' encoding='%s'?>
<tag>abc</tag>z<&"'>z<tag>&lt;&amp;"'&gt;</tag>rs<tag>&lt;&amp;"'&gt;</tag>rz><?xml version='1.0' encoding='%s'?>
<tag>&lt;&amp;"'&gt;</tag>rz"<tag key="&lt;&amp;&quot;'&gt;" />s"<tag key="&lt;&amp;&quot;'&gt;" />zF<?xml version='1.0' encoding='%s'?>
<tag key="&lt;&amp;&quot;'&gt;" />uåöö<>u<tag>åöö&lt;&gt;</tag>s<tag>åöö&lt;&gt;</tag>s%<tag>&#229;&#246;&#246;&lt;&gt;</tag>u=<?xml version='1.0' encoding='%s'?>
<tag>åöö&lt;&gt;</tag>u<tag key="åöö&lt;&gt;" />s<tag key="åöö&lt;&gt;" />s(<tag key="&#229;&#246;&#246;&lt;&gt;" />)rrrrru@<?xml version='1.0' encoding='%s'?>
<tag key="åöö&lt;&gt;" />)	r=r}rzr~rQrupperr)r{)r5rLencrs    rrAzIOTest.test_encoding9szz%  	4*:;;;(	+	+Cc""
+
+  4#!>!>!>)+++  4#))++!F!F!F)+++
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
6	@	@Cc""
@
@  4#!>!>!>*,/017>>>		  4%!@!@!@*,12396#;;@@@
@
@
@
@
@
@
@
@
@
@
@
@
@
@
@zz%  	4*GHHH4':::.	0	0	04*===.	0	0	05	G	GCYtc:::3589:@&++
G
G
G
Gzz%  &E4*OPPP4':::6	8	8	84*===6	8	8	85	P	PCYtc:::<>ABCI6#;;
P
P
P
Pzz%  $	4*KLLL4':::>	@	@	@4*===8	:	:	:5	E	ECYtc:::13678>s
E
E
E
Ezz%  -E4*NOOO4':::A	C	C	C4*===;	=	=	=M	J	JCYtc:::68;<=CVC[[
J
J
J
J	J	Js&ACC	C	,BFF	
F	c|tjtttd}|tttd5}|	|
dddddS#1swxYwYdS)N<site>ø</site>r[<site>&#248;</site>)rgrrhrr=r/rrIrr~rr5rPr"s   rtest_write_to_filenamezIOTest.test_write_to_filename~s	(&111~~bff%<==>>

6
&$

	C1QVVXX'ABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs)B==CCc|tjtttd}|tdttd5}|	|
ddddn#1swxYwY|tdttd5}|	|
tdddddS#1swxYwYdS)Nrrrr[<site>ø</site>r:<?xml version='1.0' encoding='ISO-8859-1'?>
<site></site>)rgrrhrr=r/rrIrr~rr+rs   r$test_write_to_filename_with_encodingz+IOTest.test_write_to_filename_with_encodings	(&111~~bff%<==>>

6G
,,,
&$

	E1QVVXX'CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E	

6L
111
&$

	81QVVXX{6(7(7
8
8
8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8	8s$	)B>>CC:6D==EEc2|tjtt	td5}|j}dddn#1swxYwYtjtttd}|	tdt	td5}|
|dddddS#1swxYwYdS)NrrrCrr[r)rgrrhrrrEr=r/rrIr~r)r5r"rErPs    r!test_write_to_filename_as_unicodez(IOTest.test_write_to_filename_as_unicodesj	(&111
&#

	"!zH	"	"	"	"	"	"	"	"	"	"	"	"	"	"	"   ~~bff%<==>>

6I
...
&$

	A1QVVXX'?@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	As#AAA)DDDc|tjtttd}ttdd5}||d|	|j
dddn#1swxYwYttd5}||ddddn#1swxYwYttddd	
5}||d|	|j
dddn#1swxYwYttd5}||ddddn#1swxYwYttdd5}||d|	|j
dddn#1swxYwYttd5}||d
ddddS#1swxYwYdS)NrrrrrCr[rr(xmlcharrefreplace)rEerrorsrrs<site></site>
rgrrhrr=r/rrrIrcrdr~rrs   rtest_write_to_text_filezIOTest.test_write_to_text_files	(&111~~bff%<==>>
&#
0
0
0	'AJJq9J---QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	E1QVVXX'CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E&#8K
L
L
L	'PQJJq9J---QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	D1QVVXX(BCCC	D	D	D	D	D	D	D	D	D	D	D	D	D	D	D&#
5
5
5	'JJq9J---QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	A1QVVXX'?@@@	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	A	Asl/2B--B14B1
)DD	D%2E##E'*E')F88F<?F<2HHH8)I..I25I2c|tjtttd}ttd5}|||	|j
dddn#1swxYwYttd5}||dddddS#1swxYwYdS)Nrr_r[rrrs   rtest_write_to_binary_filez IOTest.test_write_to_binary_filesc	(&111~~bff%<==>>
&$

	'1JJqMMMQX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	C1QVVXX'ABBB	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	C	Cs$-0B))B-0B-	)C??DDc|tjtttd}ttd5}||d|	|j
dddn#1swxYwYttd5}||ddddn#1swxYwYttd5}||d|	|j
dddn#1swxYwYttd5}||dddddS#1swxYwYdS)	Nrr_rrr[rrrrrs   r'test_write_to_binary_file_with_encodingz.IOTest.test_write_to_binary_file_with_encodings	(&111~~bff%<==>>
&$

	'1JJq7J+++QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	E1QVVXX'CDDD	E	E	E	E	E	E	E	E	E	E	E	E	E	E	E&$

	'1JJq<J000QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	71QVVXX6
7
7
7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7	7sH-2B++B/2B/)DDD 2EE"%E">)F44F8;F8c|tjtttd}ttd5}||d|	|j
dddn#1swxYwYttd5}||d
ddddn#1swxYwYttdd5}||d|	|j
dddn#1swxYwYttd5}||d
dddddS#1swxYwYdS)	Nrr_rrr[u7<?xml version='1.0' encoding='utf-16'?>
<site>ø</site>r)	buffering)rgrrhrr=r/rrrIrcrdr~rr)rs   r"test_write_to_binary_file_with_bomz)IOTest.test_write_to_binary_file_with_boms	(&111~~bff%<==>>
&$

	'1JJq8J,,,QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	>1QVVXX,,2F8,<,<
>
>
>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>
&$!
,
,
,	'JJq8J,,,QX&&&	'	'	'	'	'	'	'	'	'	'	'	'	'	'	'&$

	>1QVVXX,,2F8,<,<
>
>
>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>	>sH-2B++B/2B/<DDD52E33E7:E7<GG #G ct}tjd}||||jddSNz"<?xml version="1.0"?><site></site>site)r=r/rFrHrr~rrUr5rPr!s   rtest_read_from_stringiozIOTest.test_read_from_stringiosZ~~EFF

6+V44444r!cttd}tj}||d||ddSNrrCr)r=r/rrFrHrIr~rJrs   rtest_write_to_stringiozIOTest.test_write_to_stringiosh~~bff%<==>>

6I
...**,CDDDDDr!ct}tjd}||||jddSNs"<?xml version="1.0"?><site></site>r)r=r/rFrGrr~rrUr5rPrs   rtest_read_from_bytesiozIOTest.test_read_from_bytesiosW~~jBCC

3+V44444r!c
ttd}tj}||||ddSNrr)r=r/rrFrGrIr~rJrs   rtest_write_to_bytesiozIOTest.test_write_to_bytesios_~~bff%<==>>jll

3)CDDDDDr!ceZdZdS)IOTest.dummyNrr"r!rdummyrsr!rc$tjd}|}|j|_t}||||j	ddSr)
rFrHrrr=r/rr~rrU)r5r!readerrPs    rtest_read_from_user_text_readerz&IOTest.test_read_from_user_text_readerspEFFk~~

6+V44444r!cNttd}tj}|}|j|_||d||ddSr)	r=r/rrFrHrrIr~rJ)r5rPr!writers    rtest_write_to_user_text_writerz%IOTest.test_write_to_user_text_writers~~~bff%<==>>|

6I
...**,CDDDDDr!cVtjd}|}|j|_t}||||j	dt}dSr)
rFrGrrr=r/rr~rrU)r5rrrPs    r!test_read_from_user_binary_readerz(IOTest.test_read_from_user_binary_readers}jBCCh~~

6+V444~~r!cJttd}tj}|}|j|_||||ddSr)	r=r/rrFrGrrIr~rJr5rPrrs    r test_write_to_user_binary_writerz'IOTest.test_write_to_user_binary_writersx~~bff%<==>>jlly

6)CDDDDDr!cttd}tj}|}|j|_d|_|j|_||d|	|
dddS)Nz<site />cdSrr"r"r!rrzBIOTest.test_write_to_user_binary_writer_with_bom.<locals>.<lambda>!s$r!rrz0<?xml version='1.0' encoding='utf-16'?>
<site />)r=r/rrFrGrrIseekabletellr~rJr)rs    r)test_write_to_user_binary_writer_with_bomz0IOTest.test_write_to_user_binary_writer_with_boms~~bff^4455jlly&,h

6H
---%vh//	1	1	1	1	1r!c	td}|t|ddt|d|t|ddt|ddS)Nz<tag>foo</tag>rCrQrr!)r=rr~r
r+r,rs  rtest_tostringlist_invariantz"IOTest.test_tostringlist_invariant(s}}-..KKi((GGBOOD)4455	7	7	7	
KKh''HHR__T84455	7	7	7	7	7r!c\td}|t|dd|t|ddd|t|ddddS)Nz<tag>a<x />b<y></y>c</tag>rCz<tag>a<x />b<y />c</tag>T)short_empty_elementsFz<tag>a<x></x>b<y></y>c</tag>)r=rr~r
rs  rtest_short_empty_elementsz IOTest.test_short_empty_elements1s}}9::KKi((&	(	(	(	
KKidKCC&	(	(	(	
KKieKDD*	,	,	,	,	,r!N)r@rArBrArrrrrrrrrrrrrrrrrrrr"r!rrr8sxCJCJCJJCCC888	A	A	AAAA*CCC777">>>(555EEE555EEE







555EEE   EEE
1
1
1777
,
,
,
,
,r!rc&eZdZdZdZdZdZdS)ParseErrorTestcj|ttdSr^)r|r=rfrrs rrzParseErrorTest.test_subclass?s&bmmoo{;;;;;r!cx	t|dS#tj$r}|cYd}~Sd}~wwxYwr^)r=rrf)r5r[rs   r
_get_errorzParseErrorTest._get_errorBsO	MM!}			HHHHHH	s9499c||djd||djd||djddS)Nr)rrz<tag>&foo;</tag>)rrzfoobar<)rr)r~rpositionrs rtest_error_positionz"ParseErrorTest.test_error_positionHsx//8&AAA);<<EvNNN33<fEEEEEr!cddlmcmcm}||dj|j|jdS)Nrr)	xml.parsers.expat.errorsparsersexpatrr~rcodecodesXML_ERROR_SYNTAX)r5ERRORSs  rtest_error_codezParseErrorTest.test_error_codeMsf111111111111//4V45	7	7	7	7	7r!N)r@rArBrrrrr"r!rrr>sS<<<FFF
77777r!rceZdZdZdS)KeywordArgsTestctd}||dd|dd||ddd|ddd||dd|dd|t
|ddt
|dd|tdj	itdtddtdtddtdtd	d
tdddtdtddddg}|D]G}||jd||j	tddHt|ddd
di}||j	d
d|
td5tdddddn#1swxYwY|
td5tddddddS#1swxYwYdS)Nz
<a>foo</a>r)pathr`)rrr`#r)rr)r{)r)rrrkey1value1zmust be dict, not strzI'm not a dict)r=rr~rrrrrr}r{rkrUrqrr()r5relementsrrs     rtest_issue14818zKeywordArgsTest.test_issue14818Vs|FF<  T**ST::	<	<	<Ct44dtLL	N	N	N3--==	?	?	?ajjd3344ajjcdjCCDD	F	F	F	
C/444JJsDce44455JJs4SU#;#;#;J<<JJsDcNNNuJ55JJsJ//JJsDce44435JII
	A	AAQUC(((QXt'?'?'?@@@@
]]8A;&(9K]
L
L6*H555

#
#I/F
G
G	.	.JJs,---	.	.	.	.	.	.	.	.	.	.	.	.	.	.	.

#
#I/F
G
G	5	5JJs#3J444	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5	5s$LLL&MMMN)r@rArBrr"r!rrrSs#55555r!rc*eZdZedZdZdS)NoAcceleratorTestcJtturtjddS)Nzonly for the Python version)r=r_rrras rrczNoAcceleratorTest.setUpClassxs$
T>>#$ABBB>r!c|tjjtj|tjjtjdSr^)r|r_r}rtypesFunctionTyperrs rtest_correct_import_pyETz*NoAcceleratorTest.test_correct_import_pyET~sF	
dl3U5GHHHdn5u7IJJJJJr!N)r@rArBrrcrr"r!rrrwsDCC[C
KKKKKr!rc&tj|fi|Sr^)r_canonicalize)rrNs  rc14n_roundtriprsS,,G,,,r!c$eZdZdZdZdZdZdS)C14NTestNc,|tdd|tdd|tdd|tdd|td	d
|tdd|td
d|tdd|tdd|tdd|tdd|tddd}|t||d}|t||d}|t||dS)Nz<doc/>z<doc></doc>z<doc xmlns='uri'/>z<doc xmlns="uri"></doc>z <prefix:doc xmlns:prefix='uri'/>z,<prefix:doc xmlns:prefix="uri"></prefix:doc>z+<doc xmlns:prefix='uri'><prefix:bar/></doc>z7<doc><prefix:bar xmlns:prefix="uri"></prefix:bar></doc>z<elem xmlns:wsu='http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd' xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' />z
<elem></elem>z*<doc>Hello, world!<!-- Comment 1 --></doc>z<doc>Hello, world!</doc>z<value>&#x32;</value>z<value>2</value>zG<compute><![CDATA[value>"0" && value<"10" ?"valid":"error"]]></compute>zI<compute>value&gt;"0" &amp;&amp; value&lt;"10" ?"valid":"error"</compute>zS<compute expr='value>"0" &amp;&amp; value&lt;"10" ?"valid":"error"'>valid</compute>z{<compute expr="value>&quot;0&quot; &amp;&amp; value&lt;&quot;10&quot; ?&quot;valid&quot;:&quot;error&quot;">valid</compute>z7<norm attr=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z/<norm attr=" '    &#xD;&#xA;&#x9;   ' "></norm>z6<normNames attr='   A   &#x20;&#13;&#xa;&#9;   B   '/>z=<normNames attr="   A    &#xD;&#xA;&#x9;   B   "></normNames>z7<normId id=' &apos;   &#x20;&#13;&#xa;&#9;   &apos; '/>z1<normId id=" '    &#xD;&#xA;&#x9;   ' "></normId>z5<X xmlns="http://nps/a"><Y targets="abc,xyz"></Y></X>zJ<X xmlns="http://nps/a"><Y xmlns="http://nsp/b" targets="abc,xyz"></Y></X>zN<X xmlns="http://nps/a"><Y xmlns:b="http://nsp/b" b:targets="abc,xyz"></Y></X>)r~rr5rs  rtest_simple_roundtripzC14NTest.test_simple_roundtrips]11=AAA(<==)	+	+	+(JKK:	<	<	<(UVVE	G	G	G)MNN				
(TUU&	(	(	((?@@	 	 	 (qrrW	Y	Y	Y)BCC
J	K	K	K(abb?	A	A	A(`aaK	M	M	M(abbA	C	C	CF,,c222Z,,c222^,,c22222r!ctjd}|t|dd|t|ddgd|t|ddg	d
|t|ddgdgd|t|dd
dg	d|t|d
dgd|t|dddg	d|t|ddgddS)Nz        <root xmlns:x="http://example.com/x">
            <a x:attr="attrx">
                <b>abtext</b>
            </a>
            <b>btext</b>
            <c>
                <x:d>dtext</x:d>
            </c>
        </root>
        T)
strip_textz<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}attr)r
exclude_attrszc<root><a><b>abtext</b></a><b>btext</b><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>z{http://example.com/x}d)rexclude_tagszb<root><a xmlns:x="http://example.com/x" x:attr="attrx"><b>abtext</b></a><b>btext</b><c></c></root>)rrrz4<root><a><b>abtext</b></a><b>btext</b><c></c></root>rrzC<root><c><x:d xmlns:x="http://example.com/x">dtext</x:d></c></root>)rza<root>
    
    
    <c>
        <x:d xmlns:x="http://example.com/x">dtext</x:d>
    </c>
</root>zI<root><a xmlns:x="http://example.com/x" x:attr="attrx"></a><c></c></root>zu<root>
    <a xmlns:x="http://example.com/x" x:attr="attrx">
        
    </a>
    
    <c>
        
    </c>
</root>)rrr~rrs  rtest_c14n_exclusionzC14NTest.test_c14n_exclusionso




	
34000
				
34@\?]^^^
				
34?X>YZZZ
				
34@\?])B(C
E
E
E
				
34sCjIII
			
	
3c3Z888
				
34?XZ]>^___
				
3.G-MNNN

	
	
	
	
	r!ctdd}ttjj|dttj|DdD}fdDfd|D}|dtd	|	Dd+d
}|
D]\}}|D]\}}||ddk}	||d
dk}
||ddk}d|vrWd|dddD}d|dddD}
ndx}
}ddt|
D}||d|d5|dkr|s|
d||dkr|s|
d|d|vr:|ddd	|
d||dz}|d krtd!d"5}t|d"5}t!j|d#|}dddn#1swxYwYdddn#1swxYwYt(||	|
||
|$}t|dzd%d&'5}|}|d(kr,|d)d*}|d)d*}dddn#1swxYwY|||dddn#1swxYwYdS),Nzc14n-20rrcLg|]!}|d|dd"S).xmlNr)endswithrWfilenames  rrXz+C14NTest.test_xml_c14n2.<locals>.<listcomp>sB///8%%f--/#2#///r!c<g|]}|d|S)in)
startswithrs  rrXz+C14NTest.test_xml_c14n2.<locals>.<listcomp>s<


!""4((



r!c	i|]Z}|d|dt|dzD[S)c14nci|]>}|jdd|jpd|f?S)}rrQ)rUsplitrzr)rWoptions  r
<dictcomp>z6C14NTest.test_xml_c14n2.<locals>.<dictcomp>.<dictcomp>sY
  %%b)V[->B,E,E,G,G+Pr!r
)rr=rr)rWr
	full_paths  rrz+C14NTest.test_xml_c14n2.<locals>.<dictcomp>s


""6**
!hhyy':':V'CDDLLNN


r!c2i|]fdDS)cg|]]}|ddrB|dddv9||dddf^S)out_r/rr)rrsplit)rWr
configs
input_files  rrXz6C14NTest.test_xml_c14n2.<locals>.<dictcomp>.<listcomp>s&&';j';';';<<OOC++B/7::78??3#:#:2#>?@;::r!r")rWrrfiless @rrz+C14NTest.test_xml_c14n2.<locals>.<dictcomp>sW




 %


r!cg|]	}|D]}|
Sr"r")rWoutput_filesoutput_files   rrXz+C14NTest.test_xml_c14n2.<locals>.<listcomp>)s="-"-"-(+"-"-
"-"-"-"-r!c>|||dfdS)Nr"rrm)configoption_namers   r
get_optionz+C14NTest.test_xml_c14n2.<locals>.get_option-s::kGR=99!<<r!IgnoreCommentstrue
TrimTextNodes
PrefixRewrite
sequential
QNameAwarecjg|]0}d|dd|d1S{NSrNamer%rs  rrXz+C14NTest.test_xml_c14n2.<locals>.<listcomp>9sL>RVVD\\==RVVF^^==r!rz/{http://www.w3.org/2010/xml-c14n2}QualifiedAttrcjg|]0}d|dd|d1Sr0r%rs  rrXz+C14NTest.test_xml_c14n2.<locals>.<listcomp>>sL>RVVD\\==RVVF^^==r!z){http://www.w3.org/2010/xml-c14n2}Element,c3nK|]0\}\}}|d|pdd|DV1dS)=r5c3VK|]$}|jddV%dS)rrN)rUr)rWrs  r	<genexpr>z4C14NTest.test_xml_c14n2.<locals>.<genexpr>.<genexpr>Hs5/W/WC0@0@0D/W/W/W/W/W/Wr!N)r+)rWrorrs    rr9z*C14NTest.test_xml_c14n2.<locals>.<genexpr>Gsm((//uhYYeWsxx/W/Wh/W/W/W'W'WYY((((((r!()
inNsRedeclz2Redeclared namespace handling is not supported in inNsSuperfluousz.{http://www.w3.org/2010/xml-c14n2}XPathElementz2QName rewriting in XPath text is not supported in r
inC14N5z	world.txtr[s&ent2;)	from_file
with_commentsrrewrite_prefixesqname_aware_tagsqname_aware_attrsrrrinC14N3z attr="default"rQr^)r	rr'rr+rlistdirr~rvaluesrrrrrrrFrGrr&r=r)r5datadirinput_filestestsr(rr"r#r&
keep_commentsrrAqattrsqtagsconfig_descrr"entity_filerzrrrrs                   @@@rtest_xml_c14n2zC14NTest.test_xml_c14n2
s49];;;BGL'22	//vbj6I6I/J/J///

%*






"








*


	
S"-"-,1LLNN"-"-"-..	/	/	/	=	=	=	=).

<	5<	5$J'3;
5;
5#V *
,!.!.17!8
'ZO--067
#-:O$-$-0<$= 6))"("6q"9"A"AM#O#OF
"("6q"9"A"AG#I#IEE&*)EF #xx((39&,,..3I3I(((  
\\["B"B<"B"B"BCC 5 5!\11:J1

^Q\^^```!%666?O6

^Q\^^```#v--&2Fq2I2N2NL3N3NUY3Z

^Q\^^```"	*v"566A!Y..!))K"8"8$??`;!%a`!$&Jqvvxx/?/?	;K[K[K]K]/^/^$_$_``````````````````````````````??"#&3#-)9).&+JJDiif(<==sVTTTGXY#$6688%22'/'7'78I2'N'NH#'<<0A2#F#FDGGGGGGGGGGGGGGG$$Xt444A 5 5 5 5 5 5 5 5 5 5 5 5 5 5 57;
5<	5<	5sB,OL	A
K+L	+K//L	2K/3L	6OL
O	L
AOAN	ON"
"O%N"
&OOO)r@rArBmaxDiffrrrPr"r!rrrsPG
&3&3&3PGGG`b5b5b5b5b5r!rcftddga|t}|ad}tj|ddlm}tjj}|	}tj|j
|tj|j|j}tjt|d||	|_ttdrMttjtj}tjtjg|RdSdS)	Nr8r9)blockedcdxaadSr^)r=r_r"r!rcleanupzsetUpModule.<locals>.cleanup}sTTTr!rr2r_set_factories)r
r_r=raddModuleCleanupr4r3r^_namespace_maprrErrsetattrrrVrrr)modulerUr3r
nsmap_copyrJ
old_factoriess       rsetUpModuler]ps86(6'7999D
~
B
g&&&&%%%%%!0EJelJ777ek***#Jg{HjIII#**Kr#$$E))"*be<<
!""3DmDDDDDDEEr!__main__)TrCr^)SrrrDrFrrr'rgrfrrrr5rrrrrrtest.supportrrr	r
rrtest.support.import_helperr
test.support.os_helperrr_r=rr)UnicodeEncodeErrorrrrrrrPrSrLrMrr#r+TestCaser-rQrZr\rrr
formatescaper!r
r%rrrr<__hash__rBrErirrrr(rOrVrrrrrrr]r@mainr"r!r<module>rhsN								







%%%%%%%%""""""((((((CCCCCCCCCCCC::::::))))))	,}===A'""""AAA
(
?
@
@@AH_]CCC83MJJJ

"
#(444
L
L
L
L
L"
L
L
L&&&========@WPWPWPWPWPh'WPWPWPt$p?p?p?p?p?)p?p?p?l	!F;4;~t,,--
		'	"#XX			p7p7p7p7p78$p7p7p7l]J]J]J]J]Jx ]J]J]JH_4_4_4_4_4(9_4_4_4DUUUUU_h&7UUUp# #|S,?????(*;???D5.5.5.5.5.(+5.5.5.pv:v:v:v:v:h'v:v:v:r](](](](](h'](](](@t.t.t.t.t.h't.t.t.nQ:Q:Q:Q:Q:H%Q:Q:Q:hEEEEE*EEESISISISISI*SISISIlC,C,C,C,C,X
C,C,C,L77777X&777* 5 5 5 5 5h' 5 5 5HKKKKK)KKK"---`5`5`5`5`5x `5`5`5H"E"E"E"EJzHMOOOOOsBB/