python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
test_minidom.cpython-311.opt-2.pyc

e=ddlZddlZddlZddlmZddlZddlZddlZddlm	Z	m
Z
mZmZm
Z
ddlmZddlmZejddZd	Zdd
ZdZdZGd
dejZedkrejdSdS)N)support)parseAttrNodeDocumentparseString)getDOMImplementation)
ExpatErrorztest.xmlxmltestdata)subdira<?xml version='1.0' encoding='us-ascii'?>
<!DOCTYPE doc PUBLIC 'http://xml.python.org/public' 'http://xml.python.org/system' [
  <!ELEMENT e EMPTY>
  <!ENTITY ent SYSTEM 'http://xml.python.org/entity'>
]><doc attr='value'> text
<?pi sample?> <!-- comment --> <e/> </doc>cHtdd|S)Ndoc)r	createDocument)doctypes E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/test_minidom.pycreate_doc_without_doctypers !!00ugFFFctddd}g|j_g|j_t
jjddd}|jj	|t
jj
dddd}d|_d|_d|_
|jj	||S)	Nrzmy-notationz"http://xml.python.org/notations/myz	my-entityz!http://xml.python.org/entities/myz1.0utf-8us-ascii)r	createDocumentTypeentities_seq	notationsxmldomminidomNotationappendEntityversionencodingactualEncoding)rnotationentitys   rcreate_nonempty_doctyper& s"$$77tTJJGGGw''
t(LNNH!!(+++
W_
#
#K$G$133FFNFO&F  (((Nrct}t|}||jd_||jd_|SNr)r&rritem
ownerDocumentr)rrs  rcreate_doc_with_doctyper+0sQ%''G
$W
-
-C-0G!*.1G1+JrcxeZdZddZdZdZdZdZdZdZ	d	Z
d
ZdZdZ
d
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ 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.Z/d/Z0d0Z1d1Z2d2Z3d3Z4d4Z5d5Z6d6Z7d7Z8d8Z9d9Z:d:Z;d;Z<d<Z=d=Z>d>Z?d?Z@d@ZAdAZBdBZCdCZDdDZEdEZFdFZGdGZHdHZIdIZJdJZKdKZLdLZMdMZNdNZOdOZPdPZQdQZRdRZSdSZTdTZUdUZVdVZWdWZXdXZYdYZZdZZ[d[Z\d\Z]d]Z^d^Z_d_Z`d`ZadaZbdbZcdcZdddZedeZfdfZgdgZhdhZidiZjdjZkdkZldlZmdmZndnZodoZpdpZqdqZrdrZsdsZtdtZuduZvGdvdwZwdxZxdyZydzZzd{Z{d|Z|d}Z}d~Z~dZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdS)MinidomTestTestc2|||dSN)
assertTrue)selftesttestnames   rconfirmzMinidomTest.confirm8sh'''''rcT|j}|||kd|d|dS)Nzlooking for z, found )	wholeTextr5)r2nodests    rcheckWholeTextzMinidomTest.checkWholeText;s4NQ!VV111aa@AAAAArct}||j|tjdSr0)rassertFalseasync_r2rs  rtestDocumentAsyncAttrz!MinidomTest.testDocumentAsyncAttr?s=jj$$$)))))rcttd5}t|}||t|tddddS#1swxYwYdS)Nrbopentstfilerunlinkr5
isinstancerr2filers   rtestParseFromBinaryFilez#MinidomTest.testParseFromBinaryFileDs
'4
 
 	4D++CJJLLLLLC22333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4sAA//A36A3cttdd5}t|}||t|tddddS#1swxYwYdS)Nrz
iso-8859-1)r"rCrHs   rtestParseFromTextFilez!MinidomTest.testParseFromTextFileJs
'3
6
6
6	4$++CJJLLLLLC22333	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4	4sAA11A58A5ctdddd}||jd||jd||jd||jddS)NqNamenamespaceURI	localNameprefixrassertEqualnamerPrRrQr2attrs  rtestAttrModeSetsParamsAsAttrsz)MinidomTest.testAttrModeSetsParamsAsAttrsPs|G^[(CCG,,,*N;;;h///55555rctdddd}||jd||jd||jd||j|jdS)NrOrPrRrSrVs  r testAttrModeSetsNonOptionalAttrsz,MinidomTest.testAttrModeSetsNonOptionalAttrsWs~G^T8<<G,,,*N;;;h///33333rctt}||d|jdk|dS)NLI)rrEr5getElementsByTagNamedocumentElementrFr2rs  rtestGetElementsByTagNamez$MinidomTest.testGetElementsByTagName^s`GnnS--d33#88>>?	@	@	@

rctd}|j}|jd}|d}||||t
|jdko|jjdko|jd|uop|jd|uoT|jd|uoE|jd|uo)|j	|uo |j
|uo|dkd|d}||d|t
|jdko|jjdko|jd|uop|jd|uoT|jd|uoE|jd|uo)|j
|uo |j|uo|d	kd|d
}||||t
|jdko|jjdko|jd|uop|jd|uoT|jd|uoE|jd|uo)|j
|uo |j|uo|dkd|dS)
N<doc><foo/></doc>relementz<doc><element/><foo/></doc>z0testInsertBefore -- node properly placed in treez%<doc><element/><foo/><element/></doc>barz+<doc><element/><foo/><bar/><element/></doc>)rr^
childNodes
createElementinsertBeforer5lenlengthr)
firstChild	lastChildtoxmlpreviousSiblingnextSiblingrF)r2rrootelemnelemnelem2s      rtestInsertBeforezMinidomTest.testInsertBeforedsn-.."q!!!),,%&&&S))Q.BO*a/BOA&%/BO((++u4BOA&$.	B
O((++t3BOu,
BNd*BJJLL$AAD		F		F		F!!),,%&&&S))Q.LO*a/LOA&$.LO((++t3LOA&%/	L
O((++u4LNe+
L)T1LJJLL$KKD		F		F		F""5))&%(((S))Q.	>O*a/	>OA&&0	>O((++v5	>OA&%/		>
O((++u4	>&%/
	>)V3	>JJLL=>D
	F
	F
	F	

rctd}|d}|d}|d}|d}|j||}||||||||||||fS)N<doc/>originalfoorgbat)rcreateTextNoder^appendChildcreateDocumentFragmentr2rorigc1c2c3frags       r_create_fragment_test_nodesz'MinidomTest._create_fragment_test_nodess(##!!*--



&
&



&
&



&
&''---))++D"b"d**rcR|\}}}}}}|j|d|t	|jj||||fkd|||\}}}}}}|j|||t	|jj||||fkd||dS)NzinsertBefore(<fragment>, None)zinsertBefore(<fragment>, orig))rr^rkr5tuplerirFrs       rtestInsertBeforeFragmentz$MinidomTest.testInsertBeforeFragments &*&F&F&H&H#T2r2t((t444U3.9::BB'(5	7	7	7	





&*&F&F&H&H#T2r2t((t444U3.9::"b$'(5	7	7	7	





rchtt}|j|d||jjdjdk||jjdjdk|	dS)NHelloz#comment)
rrEr^r~
createCommentr5rinodeNamedatarFr_s  rtestAppendChildzMinidomTest.testAppendChildsGnn''(9(9'(B(BCCCS(3B7@JNOOOS(3B7<GHHH

rc*|\}}}}}}|j||t	|jj||||fkd||dS)NzappendChild(<fragment>))rr^r~r5rrirFrs       rtestAppendChildFragmentz#MinidomTest.testAppendChildFragments&*&F&F&H&H#T2r2t''---U3.9::BB'(.	0	0	0	





rcR|\}}}}}}|j||||t|jj|||fkd||dS)NzreplaceChild(<fragment>))rr^replaceChildrFr5rrirs       rtestReplaceChildFragmentz$MinidomTest.testReplaceChildFragments&*&F&F&H&H#T2r2t((t444


U3.9::r2rlJ*	,	,	,




rct}|d}|d}|tjj|j||||tjj|j|||tjj|j	|||j
}|tjj|j||tjj|j||||
dS)Nrctext)rrjr}assertRaisesrrHierarchyRequestErrr~rkr
attributessetNamedItemsetNamedItemNSrF)r2rrtrnodemaps     rtestLegalChildrenzMinidomTest.testLegalChildrens2jj  ++!!&))#'5sMMM#'5s7G	 	 	 #'5s7G	 	 	 /#'5w7K	 	 	 #'5w7M	 	 	 	


rct}|d}|j}d|d<|d}||j|ud||j|ud||jdkd||jdkd|	|	dS)	Nrcrgr{rz-NamedNodeMap.__setitem__() sets ownerDocumentz,NamedNodeMap.__setitem__() sets ownerElementz%NamedNodeMap.__setitem__() sets valuez)NamedNodeMap.__setitem__() sets nodeValue)
rrjrr)r5r*ownerElementvalue	nodeValuerF)r2rrtattrsas     rtestNamedNodeMapSetItemz#MinidomTest.testNamedNodeMapSetItemsjj  ++eJJqMMQ_+?	A	A	AQ^t+>	@	@	@QW%7	9	9	9Q[E);	=	=	=




rctt}||||d||jdj|dS)Nr{r)rrEr5r~rrirFr_s  rtestNonZerozMinidomTest.testNonZerosoGnnS))%00111+66777

rctt}||j|||jdSr0)rrEr1rirFr=r_s  r
testUnlinkzMinidomTest.testUnlinksJGnn'''

(((((rctt5}||jdddn#1swxYwY||jdSr0)rrEr1rir=r_s  rtestContextzMinidomTest.testContexts
7^^	,sOOCN+++	,	,	,	,	,	,	,	,	,	,	,	,	,	,	,(((((s<AAct}||d||j|dSNabc)rr~rjr5r^rFr_s  rtestElementzMinidomTest.testElementsQjj))%00111S()))

rctd}|j}|dd||dkd|d}||j|ud||j|jud|dS)N<abc/>spamjam2<abc spam="jam2"/>testAAAz!setAttribute() sets ownerDocumentz setAttribute() sets ownerElement)	rr^setAttributer5rpgetAttributeNoder*rrF)r2relrs    rrzMinidomTest.testAAAs(##

 
'''RXXZZ#77CCC''Q_+3	5	5	5Q^s'::2	4	4	4

rc
td}|j}|dd|dd||dkd|dS)NrrjamrrtestAAB)rr^rr5rprFr2rrs   rrzMinidomTest.testAABsr(##

 
&&&
'''RXXZZ#77CCC

rct}||d}|dd||ddk||jdjdk|dd||ddk||jdjdk|t|jdk|dd||ddk||jdjdk|t|jdk|	dS)Nrdefghijklmnordnewval)
rr~rjrr5getAttributerrrlrFr2rchilds   rtestAddAttrzMinidomTest.testAddAttrsjj 1 1% 8 899
5%(((U''..%7888U%e,2e;<<<
5%(((U''..%7888U%e,2e;<<<S)**a/000
5(+++U''..(:;;;U%e,2h>???S)**a/000

rct}||d}|t	|jdk|dd|t	|jdk|jd=|t	|jdk|dS)Nrrrrre)rr~rjr5rlrrrFrs   rtestDeleteAttrzMinidomTest.testDeleteAttr-sjj 1 1% 8 899S)**a/000
5%(((S)**a/000U#S)**a/000

rct}||d}|dd|t|jdk|tj	j
|jd|d|t|jdk|dS)Nrrrrer{r)
rr~rjrr5rlrrrrNotFoundErrremoveAttributerFrs   rtestRemoveAttrzMinidomTest.testRemoveAttr8sjj 1 1% 8 899
5%(((S)**a/000#'-u/DeLLL
e$$$S)**a/000

rc(t}||dd}|ddd|ddd|t
jj|jdd|	t|jdk|dd|	t|jd	k|dS)
Nhttp://www.python.org
python:abchttp://www.w3.orgxmlns:pythonzpython:abcattrr{rdabcattrre)
rr~createElementNSsetAttributeNSrrrrremoveAttributeNSr5rlrrFrs   rtestRemoveAttrNSzMinidomTest.testRemoveAttrNSCsjj##$;\JJLL
0.0G	I	I	I
46FNNN#'-u/F*	,	,	,S)**a/000
 7CCCS)**a/000

rc^t}||d}|dd|t|jdk|d}|tj
j|jd|
||||t|jdko|ddut}||d}|d}|tj
j|j||dS)Nr{rrrer)rr~rjrr5rlrrrrrrremoveAttributeNodeassertIsrF)r2rrr8dom2child2node2s       rtestRemoveAttributeNodez#MinidomTest.testRemoveAttributeNodeQsvjj 1 1% 8 899
65)))S)**a/000%%f--#'-u/H			

dE55d;;<<<S)**a/;**622d:	<	<	<zz!!$"4"4U";";<<''//#'-v/I			

rct}||d}|dd||ddS)Nr{rr)rr~rjrr5hasAttributers   rtestHasAttributezMinidomTest.testHasAttributecsfjj 1 1% 8 899
65)))U''//00000rcrtd}|j}|dd|t	|jdk|dd|d|t	|jdko^|jdjdkoH|jdjdko2|	ddko|
djd|jd<|t	|jdkoV|jdjdko@|jdjdko*|	ddko|jdj|dd|t	|jdko|jdjdkos|jdjdko]|	ddkoD|jdjdko.|jdjdko|	ddkd	|jd<|t	|jdko|jdjdkos|jdjdko]|	ddkoD|jdjd	ko.|jdjd	ko|	dd	k|dS)
Nrrrrebamhamspam2rdbam2)
rr^rr5rlrsetIdAttributerrrrisIdrFrs   rtestChangeAttrzMinidomTest.testChangeAttrisD(##

 
&&&S''1,---
&&&	&!!!S''1,5M&)/585M&)3u<5OOF++u45''//4		6	6	6
!&
fS''1,/M&)/58/M&)3u</OOF++u4/M&).		0	0	0
	'''S''1,6M&)/586M&)3u<6OOF++u46M'*0E9	6
M'*4=6OOG,,5
	7	7	7"(
gS''1,7M&)/587M&)3u<7OOF++u47M'*0F:	7
M'*4>7OOG,,6
	8	8	8	

rcdSr0r2s rtestGetAttrListzMinidomTest.testGetAttrListrcdSr0rrs rtestGetAttrValueszMinidomTest.testGetAttrValuesrrcdSr0rrs rtestGetAttrLengthzMinidomTest.testGetAttrLengthrrct}||dd}||dddS)Nrrmissing)rr~rrTrrs   rtestGetAttributezMinidomTest.testGetAttributes^jj 7FFHH++I66;;;;;rct}||dd}|ddd||ddd||ddd||d}||dd	ddS)
Nrrrrpythonotherrrr)rr~rrrTgetAttributeNSrj)r2rrrs    rtestGetAttributeNSzMinidomTest.testGetAttributeNSsjj##$;\JJLL
0.0G	I	I	I--.A8LL#	%	%	%--.A7KK			""3#4#4U#;#;<<../F	RR					rcdSr0rrs rtestGetAttributeNodez MinidomTest.testGetAttributeNodercrd}t|}|dd}|t|dkoT|djdkoC|djdko2|djdko!|djdko|djdk|	dS)NzZ<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>zhttp://pyxml.sf.net/minidommyelemrerrzminidom:myelem)
rgetElementsByTagNameNSr5rlrPrQrRtagNamerrF)r2drelemss    rtestGetElementsByTagNameNSz&MinidomTest.testGetElementsByTagNameNSs!nn**+H+355SZZ1_:!H)-JJ:!H&(2:!HOy0:!H$(88	:
!H%)99	;	;	;	

rc~|||}|t|dkdSr()rr5rl)r2rnsurilnamenodelists     r5get_empty_nodelist_from_elements_by_tagName_ns_helperzAMinidomTest.get_empty_nodelist_from_elements_by_tagName_ns_helpers:--eU;;S]]a'(((((rcVtd}||dd||dd||ddtd}||dd||dd||d	d
dS)Nryz"http://xml.python.org/namespaces/a	localname*splatz3<doc xmlns="http://xml.python.org/splat"><e/></doc>zhttp://xml.python.org/splatz	not-therez#http://somewhere.else.net/not-theree)rr	r?s  r+testGetEmptyNodeListFromElementsByTagNameNSz7MinidomTest.testGetEmptyNodeListFromElementsByTagNameNSs(##BB5{	D	D	DBBg			BB5s	<	<	<OPPBB.	=	=	=BBk	#	#	#BB6	=	=	=	=	=rct}||d}t|}t	|}|||k|dSrrr~rjreprstrr5rFr2rrstring1string2s     rtestElementReprAndStrz!MinidomTest.testElementReprAndStrhjj
__S..u55
6
6r((b''W'(((

rct}||d}t|}t	|}|||k|dSrrrs     rtestElementReprAndStrUnicodez(MinidomTest.testElementReprAndStrUnicoderrc8t}||dd}t|}t	|}|||k|d|v|dS)Nzhttp://www.slashdot.orgz	slash:abc)rr~rrrr5rFrs     rtestElementReprAndStrUnicodeNSz*MinidomTest.testElementReprAndStrUnicodeNSsjj
__ 9;GGIIr((b''W'((([G+,,,

rc,t}||d}|dd}|t|t
|k|dS)Nrr)rr~rjrr5rrrF)r2rrr8s    rtestAttributeReprzMinidomTest.testAttributeReprsqjj
__S..u55
6
6ue,,SYY$t**,---

rcdSr0rrs rtestTextNodeReprzMinidomTest.testTextNodeReprrrcd}t|}|}||||kdS)Nz <?xml version="1.0" ?><a b="c"/>)rrprFr5r2rrdomstrs    rtestWriteXMLzMinidomTest.testWriteXMLsJ0#

SF]#####rcd}t|}|d}||||ddkdS)Nz"<?xml version="1.0" ?>
<a b="c"/>
z
)newl
)rtoprettyxmlrFr5replacer"s    rtestAltNewlinezMinidomTest.testAltNewlines_4#f--

Vs{{488899999rc:d}|td|dz|td|dz|td|dz|td|d	z|td
|dzdS)N<?xml version="1.0" ?>
<B>A</B>z	<B>A</B>
z<C>A<B>A</B></C>z<C>
	A
	<B>A</B>
</C>
z<C><B>A</B>A</C>z<C>
	<B>A</B>
	A
</C>
z<C><B>A</B><B>A</B></C>z<C>
	<B>A</B>
	<B>A</B>
</C>
z<C><B>A</B>A<B>A</B></C>z <C>
	<B>A</B>
	A
	<B>A</B>
</C>
)rTrr()r2decls  r test_toprettyxml_with_text_nodesz,MinidomTest.test_toprettyxml_with_text_nodess5)Z00<<>>,	.	.	.%788DDFF >>	@	@	@%788DDFF >>	@	@	@%>??KKMM EE	G	G	G%?@@LLNN JJ	L	L	L	L	Lrcpt}|d}||d||d||d}|||dzdS)NrtTEXTr,z<elem>
	TEXT
	TEXT
</elem>
)rrjr~r}rTr()r2rrtr.s    r)test_toprettyxml_with_adjacent_text_nodesz5MinidomTest.test_toprettyxml_with_adjacent_text_nodessjj  ((++F33444++F33444)** CC	E	E	E	E	ErctdD]}t|}t|}||ddjd|ddjddS)N)r-z<A><B>C</B></A>Br)rr(rTr]rirp)r2rrrs    r/test_toprettyxml_preserves_content_of_text_nodez;MinidomTest.test_toprettyxml_preserves_content_of_text_nodes2	I	ICc""Cs0011D((--a0;A>DDFF))#..q1<Q?EEGG
I
I
I
I	I	Irctd}|jj}||jdko|jdko|jdko|jtj	koj|j
duoa|oLt|j
dko4|jduo+|jduo"|jduo|jt"jjkdS)Nz<e><?mypi 	
 data 	
 ?></e>mypizdata 	
 r)rr^rnr5targetrrnodeTyperPROCESSING_INSTRUCTION_NODEr
hasChildNodesrlrirorQrPrrEMPTY_NAMESPACE)r2rpis   rtestProcessingInstructionz%MinidomTest.testProcessingInstruction&s;<<

 
+RY&(
?G|+
?K6)
?K4#CC
?MT)	
?
((***
?
&&!+
?MT)
?LD(
?LD(
?Osw'>>
	@
	@
	@
	@
	@rcdSr0rrs rtestProcessingInstructionReprz)MinidomTest.testProcessingInstructionRepr5rrcdSr0rrs rtestTextReprzMinidomTest.testTextRepr7rrcdSr0rrs r
testWriteTextzMinidomTest.testWriteText9rrcdSr0rrs rtestDocumentElementzMinidomTest.testDocumentElement;rrctd}|d}|tjj|j|||dS)Nryextra)rrjrrrrr~rFr2rrts   rtestTooManyDocumentElementsz'MinidomTest.testTooManyDocumentElements=s_(##  ))#'5sMMM




rcdSr0rrs rtestCreateElementNSzMinidomTest.testCreateElementNSErrcdSr0rrs rtestCreateAttributeNSz!MinidomTest.testCreateAttributeNSGrrcdSr0rrs r	testParsezMinidomTest.testParseIrrcdSr0rrs rtestParseStringzMinidomTest.testParseStringKrrcdSr0rrs rtestCommentzMinidomTest.testCommentMrrcdSr0rrs rtestAttrListItemzMinidomTest.testAttrListItemOrrcdSr0rrs rtestAttrListItemszMinidomTest.testAttrListItemsQrrcdSr0rrs rtestAttrListItemNSzMinidomTest.testAttrListItemNSSrrcdSr0rrs rtestAttrListKeyszMinidomTest.testAttrListKeysUrrcdSr0rrs rtestAttrListKeysNSzMinidomTest.testAttrListKeysNSWrrc:td}|j}|j}|d}|d}||||tj	j
|jddS)Nz<doc a=''/>r)rr^rrremoveNamedItemr5
isSameNoderrrrr2rrra1a2s      rtestRemoveNamedItemzMinidomTest.testRemoveNamedItemYs-((



$
$

"
"3
'
'R]]2&&'''#'-u/DcJJJJJrc@td}|j}|j}|dd}|dd}||||tj	j
|jdddS)Nz.<doc xmlns:a='http://xml.python.org/' a:b=''/>zhttp://xml.python.org/b)rr^rgetAttributeNodeNSremoveNamedItemNSr5rarrrrrbs      rtestRemoveNamedItemNSz!MinidomTest.testRemoveNamedItemNSbsJKK

!
!":C
@
@

$
$%=s
C
CR]]2&&'''#'-u/F2C	9	9	9	9	9rcdSr0rrs rtestAttrListValueszMinidomTest.testAttrListValueslrrcdSr0rrs rtestAttrListLengthzMinidomTest.testAttrListLengthnrrcdSr0rrs rtestAttrList__getitem__z#MinidomTest.testAttrList__getitem__prrcdSr0rrs rtestAttrList__setitem__z#MinidomTest.testAttrList__setitem__rrrcdSr0rrs rtestSetAttrValueandNodeValuez(MinidomTest.testSetAttrValueandNodeValuetrrcdSr0rrs rtestParseElementzMinidomTest.testParseElementvrrcdSr0rrs rtestParseAttributeszMinidomTest.testParseAttributesxrrcdSr0rrs rtestParseElementNamespacesz&MinidomTest.testParseElementNamespaceszrrcdSr0rrs rtestParseAttributeNamespacesz(MinidomTest.testParseAttributeNamespaces|rrcdSr0rrs rtestParseProcessingInstructionsz+MinidomTest.testParseProcessingInstructions~rrcdSr0rrs rtestChildNodeszMinidomTest.testChildNodesrrcdSr0rrs rtestFirstChildzMinidomTest.testFirstChildrrctd}|j}||td}|j}||dS)Nrbry)rr^r1r;r=)r2rrrdoc2s     rtestHasChildNodeszMinidomTest.testHasChildNodessq-..!))++,,,8$$#++--.....rc|j}|j}t|}t|}|||||kdtt
|D]}||}	||}
||	|
uo?|	j|
jko/|	j	|
j	ko|	j
|
j
ko|	j|
jkd||
j|uddS)Nz(clone of element has same attribute keysz3clone of attribute node has proper attribute valuesz'clone of attribute node correctly owned)
rlistkeyssortr5rangerlr)rrrPrQr)r2e1e2r3attrs1attrs2keys1keys2ircrds           r!_testCloneElementCopiesAttributesz-MinidomTest._testCloneElementCopiesAttributessEV[[]]##V[[]]##



Ue^%OPPPs5zz""
	?
	?AQBQBLL25BH,5452?:54K
M
M
M
LLB.=
?
?
?
?
	?
	?rctd}|j}||}|||d|rdpdzdx|_|_|dd|dd	||fS)
Nz<doc attr='value'><foo/></doc>testCloneElementDeepShallowMODIFIEDrWz	NEW VALUEaddedVALUE)rr^	cloneNoderrrr)r2deeprrsclones     r_setupCloneElementzMinidomTest._setupCloneElements:;;"t$$..%+t/K)L	N	N	N(21t}&+...'7+++Ezrc|d\}}|t|jdko0|jjdko |jduo|dkd|dS)Nrz<doc attr="value"/>testCloneElementShallowrr5rlrirm
parentNoderprFr2rrs   rrz#MinidomTest.testCloneElementShallows,,Q//
US)**a/;$+q0;$,;KKMM%::+		-	-	-
	

rc|d\}}|t|jdko0|jjdko |jduo|dkd|dS)Nrez<doc attr="value"><foo/></doc>testCloneElementDeeprrs   rrz MinidomTest.testCloneElementDeeps,,Q//
US)**a/F$+q0F$,FKKMM%EE(		*	*	*
	

rc~td}|d}||duddS)N<?xml version='1.0'?>
<!-- comment --><!DOCTYPE doc [
<!NOTATION notation SYSTEM 'http://xml.python.org/'>
]>
<doc attr='value'/>rzFtestCloneDocumentShallow: shallow cloning of documents makes no sense!)rrr5r2rrs   rtestCloneDocumentShallowz$MinidomTest.testCloneDocumentShallowsZ*++}}QTT\@	A	A	A	A	Arctd}|d}|||p||d|t	|jt	|jkd||jjtj	kd||jj
|d||j|jd|j||jjtjkd||jj
|||j|jdSdS)	Nrrez4testCloneDocumentDeep: document objects not distinctz8testCloneDocumentDeep: wrong number of Document childrenz:testCloneDocumentDeep: documentElement not an ELEMENT_NODEz@testCloneDocumentDeep: documentElement owner is not new documentz;testCloneDocumentDeep: documentElement should not be sharedz7testCloneDocumentDeep: doctype not a DOCUMENT_TYPE_NODE)
rrr5rarlrir^r9rELEMENT_NODEr*rDOCUMENT_TYPE_NODErs   rtestCloneDocumentDeepz!MinidomTest.testCloneDocumentDeeps*++}}Q#....F$//#2F2FGF	H	H	HS((C,@,@@J	L	L	LT)2d6GGL	N	N	NT)7BB4HHN	P	P	P,778LMMMM	O	O	O;"LL.$2IIM
O
O
OLL3>>tDDEEELLS[33DLAAABBBBB#"rc(t}|d}||duo|j|jko|j|jko|j|jko|j|jkot|jt|jko|j	t|jduoot|j
t|j
koE|j
	t|j
duot|jdktt|jD]}|j	|}|j	|}||
|o|
|oo|j|jko_|j|jkoO|j|jko?|j|jko/|j|jko|j|jko|j|jktt|j
D]}|j
	|}|j
	|}||
|oE|
|o/|j|jko|j|jko|j|jkdS)Nrer)r&rr5rrUpublicIdsystemIdrlrr)rrirranotationNamer"r#r!)r2rrrsecesncns        rtestCloneDocumentTypeDeepOkz'MinidomTest.testCloneDocumentTypeDeepOks&)++!!!$$U$&	/Ng&66	/J',.	/Ng&66	/Ng&66		/
''3w/?+@+@@	/N''EN(;(;<<D
	/((C0A,B,BB	/O((U_)=)=>>$F	/())Q.		0		0		0s7+,,--	2	2A!&&q))B$$Q''BLLbmmB///1]]2...1r{212?:1r{2	1
r{21r{2
1)R->>1
bj0
2
2
2
2s7,--..	4	4A"''**B%%a((BLLbmmB///3]]2...3r{23r{23r{2	
4
4
4
4	4	4rct}|jd}||duddS)NretestCloneDocumentTypeDeepNotOkr+rrr5r2rrs   rrz*MinidomTest.testCloneDocumentTypeDeepNotOksA%''%%a((Ud]$DEEEEErct}|d}||duo|j|jko|j|jko|j|jko|j|jkot|jdkog|j	dduoKt|j
dko3|j
	dduot|jdkdSr()r&rr5rrUrrrlrr)rri)r2rrs   rtestCloneDocumentTypeShallowOkz*MinidomTest.testCloneDocumentTypeShallowOk
s)++!!!$$U$&	/Ng&66	/J',.	/Ng&66	/Ng&66		/
''1,	/N''**d2
	/((A-	/O((++t3	/())Q.		0		0		0		0		0rct}|jd}||duddS)Nr!testCloneDocumentTypeShallowNotOkrrs   rrz-MinidomTest.testCloneDocumentTypeShallowNotOksA%''%%a((Ud]$GHHHHHrctd}td}|tjj|j||dS)Nry)rrrrNotSupportedErr
importNode)r2rtestNamedoc1rs     rcheck_import_documentz!MinidomTest.check_import_documentsC8$$8$$#'14?D$OOOOOrc2|dddS)NrtestImportDocumentShallowrrs rrz%MinidomTest.testImportDocumentShallow"""1&ABBBBBrc2|dddS)NretestImportDocumentDeeprrs rrz"MinidomTest.testImportDocumentDeep%""1&>?????rct}t}|tjj|j|jddSr(r+rrrrrrrr2srcr8s   rtestImportDocumentTypeShallowz)MinidomTest.testImportDocumentTypeShallow(M%''+--#'163D+q	*	*	*	*	*rct}t}|tjj|j|jddSNrerrs   rtestImportDocumentTypeDeepz&MinidomTest.testImportDocumentTypeDeep.rrc:td}|jd}||d||}||||||||jdu|dz||j|j|dz||j	|dzdS)Nz<doc attr='value'/>rWz: ownerElement should be Nonez: ownerDocument does not matchz.: cloned attribute must have specified == True)
rr^rassertNotEqualrr5rarr*	specified)r2rrrrWrs      rcheck_clone_attributez!MinidomTest.check_clone_attribute6s!/00"33F;;D$'''t$$))$///000///000U'4/::	<	<	<U(33D4FGG;;	=	=	=U_KK	M	M	M	M	Mrc2|dddS)NrtestCloneAttributeShallowrrs rrz%MinidomTest.testCloneAttributeShallowDrrc2|dddS)NretestCloneAttributeDeeprrs rrz"MinidomTest.testCloneAttributeDeepGrrctd}|j}||jtj||}||j|jko|j	|j	kdS)Nz<?target data?><doc/>)
rrnrTr9rr:rr5r8r)r2rrrr=rs      rcheck_clone_pizMinidomTest.check_clone_piJs122
^d&FGGGT""U\RY.*J"')	+	+	+	+	+rc2|dddS)NrtestClonePIShallowrrs rrzMinidomTest.testClonePIShallowRsA344444rc2|dddS)NretestClonePIDeeprrs rrzMinidomTest.testClonePIDeepUsA011111rctjjd}Gdd}|}|j}|jd}|dd||rd|d}|	|j
jjd	tjj
j}|jjd}	ngtj|d
d5|d}dddn#1swxYwYtjj
j}|jd}	|	|j||	|jd|	|jd||j|||j|	dS)Nu
            <?xml version="1.0" ?>
            <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
                "http://www.w3.org/TR/html4/strict.dtd"
                [ <!ENTITY smile "☺"> ]
            >
            <doc>Don't let entities make you frown &smile;</doc>
        ceZdZdZdS)4MinidomTest.check_clone_node_entity.<locals>.HandlercL||_||_||_||_||_dSr0)	operationkeyrrdstr2rrrrrs      rhandlez;MinidomTest.check_clone_node_entity.<locals>.Handler.handlees)!* 	rN)__name__
__module____qualname__rrrrHandlerrds#




rrsmilerrT)ru%Don't let entities make you frown ☺r*)rrrrstriprrsetUserDatarrTr^rnr7UserDataHandler
NODE_IMPORTEDr	swap_attrNODE_CLONEDrrrrrr)
r2clone_documentdocumentrhandlerrr%rrrs
          rcheck_clone_node_entityz#MinidomTest.check_clone_node_entityXs7?..0
EGG								'))"!'*5&'222	*&&D&11EU2=GD
F
F
F/=I-(1CC"7OTBB
5
5))t)44
5
5
5
5
5
5
5
5
5
5
5
5
5
5
5/;I.)C*I666e,,,v...

gk6***

gk3'''''s5DDDcZ|d|ddS)NFT)rrs rtestCloneNodeEntityzMinidomTest.testCloneNodeEntitys0$$U+++$$T*****rctd}|j}||d||d|t|jdko|jjdkd||t|jdko-|jjdko|j	|j
uo|j	jdkd|td}|j}||d	||t|jd
ko|jjd
kd|dS)NryfirstsecondrdztestNormalize -- preparationrefirstsecondztestNormalize -- resultrrz*testNormalize -- single empty node removed)
rr^r~r}r5rlrirm	normalizernrorrFr2rrss   r
testNormalizezMinidomTest.testNormalizes(##"++G44555++H55666S))Q.0O*a/.	0	0	0	

S))Q.:O*a/:Ot~5:O(M9+		-	-	-
	

(##"++B//000

S))Q.0O*a/<	>	>	>	

rc"td}|j}||d||d||d|t
|jdko|jjdkd|	|t
|jdkoo|jjdko_|j
jdkoO|j
|juoA|j
j
|juo.|j
jduo |jj|j
uo
|jj
dud	|dS)
Nryrrrrfz1testNormalizeCombineAndNextSibling -- preparationrdrz-testNormalizeCombinedAndNextSibling -- result)rr^r~r}rjr5rlrirmrrnrrorrrqrFrs   r"testNormalizeCombineAndNextSiblingz.MinidomTest.testNormalizeCombineAndNextSiblings(##"++G44555++H55666**3//000S))Q.0O*a/C	E	E	E	

S))Q.7O*a/7O(M97O4>97O/4>A	7
O3t;7N2doE
7N.$6A	C	C	C	

rctd}|j}||d||d|t|jdko|jjdkd||t|jdkoI|jjdko9|j	j
dko)|j	|juo|j	jduo
|j	j
dud|dS)Nryrrrdz1testNormalizeDeleteWithPrevSibling -- preparationrez,testNormalizeDeleteWithPrevSibling -- resultrr^r~r}r5rlrirmrrnrrorrrqrFrs   r"testNormalizeDeleteWithPrevSiblingz.MinidomTest.testNormalizeDeleteWithPrevSiblingsH(##"++G44555++B//000S))Q.0O*a/C	E	E	E	

S))Q.<O*a/<O(G3<Ot~5<O/47	<
O3t;@
	B	B	B	

rctd}|j}||d||d|t|jdko|jjdkd||t|jdkoI|jjdko9|j	j
dko)|j	|juo|j	jduo
|j	j
dud|dS)Nryrrrdz1testNormalizeDeleteWithNextSibling -- preparationrez,testNormalizeDeleteWithNextSibling -- resultrrs   r"testNormalizeDeleteWithNextSiblingz.MinidomTest.testNormalizeDeleteWithNextSiblingsH(##"++B//000++H55666S))Q.0O*a/C	E	E	E	

S))Q.<O*a/<O(H4<Ot~5<O/47	<
O3t;@
	B	B	B	

rctd}|j}||d||d||d|t
|jdko|jjdkd|	|t
|jdko_|jjdkoO|j
|juoA|j
j|juo.|j
j
duo |jj
|j
uo
|jjdud|dS)Nryrrrfz1testNormalizeDeleteWithTwoSiblings -- preparationrdz,testNormalizeDeleteWithTwoSiblings -- result)rr^r~rjr}r5rlrirmrrnrorrrqrFrs   r)testNormalizeDeleteWithTwoNonTextSiblingsz5MinidomTest.testNormalizeDeleteWithTwoNonTextSiblingss(##"**3//000++B//000**3//000S))Q.0O*a/C	E	E	E	

S))Q.7O*a/7O4>97O/4>A7O3t;	7
N2doE7N.$6@	B	B	B	

rcvtd}|j}||d||d||d||d||d|t|jdko|jjdkd||t|jdkoI|jjdko9|j	|j
uo+|j	jdko|j	jduo
|j	j
dud	|dS)
Nryrrfourthz,testNormalizeDeleteAndCombine -- preparationresecondfourthz'testNormalizeDeleteAndCombine -- result)rr^r~r}r5rlrirmrrnrorrqrrrFrs   rtestNormalizeDeleteAndCombinez)MinidomTest.testNormalizeDeleteAndCombines(##"++B//000++H55666++B//000++H55666++B//000S))Q.0O*a/>	@	@	@	

S))Q.8O*a/8Ot~58O(N:8O3t;	8
O/47;
	=	=	=	

rc~
td}|j}|jd|d|jd|d|jdjd|d|jd|d||d|t
|jdko|jjdkot
|jdjd	ko|jdjjd	kot
|jdjdkon|jdjjdkoSt
|jdjdjd
ko%|jdjdjjd
kd||t
|jd
ko|jjd
kot
|jdjd
ko|jdjjd
kot
|jdjd
kon|jdjjd
koSt
|jdjdjdko%|jdjdjjdkd||jdjdj	d
koL|jdjdjdj	dko |jdjdj	dkd||jdjdj
duo0|jdjdj|jdjduo|jdjdjduo|jdjdj
|jdjduo|jdjdj
duo|jdjdj|jdjduoS|jdjdjduo4|jdjdj
|jdjdud|dS)Nz)<doc><o><i/>t</o><o><o>t2</o>t3</o></doc>rrxrex2x3rfrhrdztestNormalize2 -- preparationz$testNormalize2 -- childNodes lengthstxt2x2t3x3z$testNormalize2 -- joined text fieldsz"testNormalize2 -- sibling pointers)
rr^rir~r}r5rlrmrrrrrqrFrs   rtestNormalizeRecursionz"MinidomTest.testNormalizeRecursions#$$""&&s'9'9"'='=>>>&&s'9'9#'>'>???%a(44S5G5G5M5MNNN&&s'9'9$'?'?@@@++B//000S))Q.LO*a/L*566!;LOA&18A=L*566!;	L
OA&18A=L*5a8CDDI
LOA&1!4?F!K1	3	3	3	

S))Q.LO*a/L*566!;LOA&18A=L*566!;	L
OA&18A=L*5a8CDDI
LOA&1!4?F!K8	:	:	:	
T_Q'215:dBDOA&1!4?BG6QDOA&1!49VC8	:	:	:	
T_Q'215ATI<OA&1!4D?1-8;<<OA&1!4DL<OA&1!4@?1-8;<	<OA&1!4@DH
<OA&1!4D?1-8;<<OA&1!4DL<OA&1!4@?1-8;<6	8	8	8	

rctd}|jjd}||jt
j||dS)Nz<o>text</o>r)	rr^rirTr9r	TEXT_NODErrF)r2rrs   rtestBug0777884zMinidomTest.testBug0777884EsZ-(("-a0777

rctd}|j}d|jd_|||jdjduddS)Nz<o><i/>t</o>rrerz)Final child's .nextSibling should be None)rr^rirrr5rrr2rr8s   rtestBug1433694zMinidomTest.testBug1433694Mso.))"')$T_R(4<@	B	B	B	B	Brctd}|j}|j\}}}||j|uo,|jduo#|j|uo|j|uo|jduo|j|ud|dS)Nz<doc><?pi?>text?<elm/></doc>testSiblings)rr^rir5rrrqrF)r2rrsr=relms      rr"zMinidomTest.testSiblingsUs899"/T3R^t+,"d*, C',$*,4'	,
#t+^	=	=	=	

rc$td}|j}|jd}|j\}}|jd}||j|uo#|j|uo|j|uo|j|uo|j|ud|dS)Nz3<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>rtestParents)rr^rir5rrF)r2rrselm1elm2aelm2belm3s       rr%zMinidomTest.testParentscsACC"q!"T_+)4') D() D()5(-		9	9	9
	

rctd}|j}|d}||d|duo|dduo|jd|jduoZ|jd|jduo3|jdjddud|dS)Nz<doc><e/><e/></doc>rreztest NodeList.item())rrir5r)rF)r2rchildrendocelems    rtestNodeListItemzMinidomTest.testNodeListItemrs/00>1+Xa[HMM!$4$44JMM!$$,J&++A..'2DQ2GGJ&++A..'2DQ2GGJ&++A..9>>qAATI&	(	(	(	

rctd}||d||dd||dd||dd||d	d
d	tjdkrC|ttd|ttd
n!|ttd|	dS)N<foo>&#x20ac;</foo>$<?xml version="1.0" ?><foo>€</foo>rs4<?xml version="1.0" encoding="utf-8"?><foo>€</foo>ziso-8859-15s8<?xml version="1.0" encoding="iso-8859-15"?><foo></foo>rs;<?xml version="1.0" encoding="us-ascii"?><foo>&#8364;</foo>zutf-16u5<?xml version="1.0" encoding="utf-16"?><foo>€</foo>rdrhrs<franais></franais>s.<franais>Comment a va ? Trs bien ?</franais>s0<franais>Comment a va ? Trs bien ?</franais>)
rrTrpencodepyexpatversion_inforr
UnicodeDecodeErrorrFr?s  r
testEncodingszMinidomTest.testEncodings~s/00B	D	D	D7++L	N	N	N=11J	L	L	L:..J	L	L	L8,,
  &x 0 0	2	2	29,,j+2
4
4
4j+K
M
M
M
M
0+O
Q
Q
Q	

rctd}||d||dd||dd||dd||ddd	|dS)
Nr/r0)
standaloneTu4<?xml version="1.0" standalone="yes"?><foo>€</foo>Fu3<?xml version="1.0" standalone="no"?><foo>€</foo>rsE<?xml version="1.0" encoding="utf-8" standalone="yes"?><foo>€</foo>)rrTrprFr?s  rtestStandalonezMinidomTest.testStandalones/00B	D	D	Dd33B	D	D	Dd33E	G	G	Ge44D	F	F	F7D11
'	(	(	(	

rceZdZdZdZdS)MinidomTest.UserDataHandlerrcv|||dz|||ddd|_dSr)rcalledrs      rrz"MinidomTest.UserDataHandler.handles=OOC4000OOCt,,,DKKKrN)rrrr=rrrrrr;s(					rrct}|d}||ddu|ddd||ddu|ddd|ddd||ddk||ddk|ddd||ddu||ddk|}|dd||d}||jo/|dduo|ddk|||dS)Nrr{rg
re)	rrjr5getUserDatarrrr=rF)r2rnrcs     rtestUserDatazMinidomTest.testUserDatasjjc""Q]]5))T1222	

eT4(((Q]]5))T1222	

eR$$$	

eR$$$Q]]5))R/000Q]]5))R/000	

eT4(((Q]]5))T1222Q]]5))R/000&&((	

eR)))
KKNNW^/MM%((D0/MM%((B.	0	0	0	



	




rc|tjj|j|ddtd}|tjj|j|tjjddS)Nhttp://xml.python.org/nsz	xmlns:fooryr{)rrrNamespaceErr
renameNoderWrongDocumentErrr<)r2rr8rs    r checkRenameNodeSharedConstraintsz,MinidomTest.checkRenameNodeSharedConstraintssu#'.4k	C	C	C8$$#'2DOT'15	:	:	:	:	:rc
td}|j}|j}|jd}||tjjd}||jdko|j	dko|j
duo|jtjjko|jduo|j
dko|dduov|d|oN|d|o3|j|o|j|||dd}||jdko|j	dko|j
dko|jdko|jduo|j
dko|dduo|dduo|d|o^|dd|o5|d|o|d|||dd	}||jd	ko|j	d	ko|j
d
ko|jdko|jdko|j
dko|dduo|dduo|dduo|ddduo|d	|o^|dd
|o5|d	|o|d|||tjjd
}||jd
ko|j	d
ko|j
duo|jtjjko|jduo|j
dko|dduo|dduo|dduoq|d	duoZ|ddduoB|d
|o|d
||tjj|j|dd||||dS)Nz<doc a='v'/>rrgvrFrC)rFrChttp://xml.python.org/ns2zp:drp)rMrrxmlns)rr^rrHrrr<r5rUrrQrPrRrrrar*rrhrrGrJrF)r2rrtattrmaprWs     rtestRenameAttributezMinidomTest.testRenameAttributes.))"/s#~~dCG$;SAATY#%
7MS(
7Nd*
7%)@@
7K4'	
7
J#%
7))#..$6
7))#..99$??
7CL++D11
7&11#66
7%0066
	8
	8
	8~~d$>DDTY#%PMS(PNc)P%)CCPK4'	P
J#%P))#..$6
P))#..$6P))#..99$??P++.555?Z5E5EPCL++D11P=>II$OO	Q	Q	Q~~d$?GGTY%'QMU*QNc)Q%)DDQK3&	Q
J#%Q))#..$6
Q))#..$6Q))#..$6Q++.558<=Q))%00;;DAAQ++/666@j6F6FQEN--d33Q>?JJ4PP	R	R	R$~~dCG$;SAATY#%
2MS(
2Nd*
2%)@@
2K4'	
2
J#%
2))#..$6

2))#..$6
2))#..$6
2))%00D8
2++.558<=
2))#..99$??
2CL++D11
	3
	3
	3	
#'.4g	?	?	?--c4888

rctd}|j}||tjjd}||jdkoP|jdkoE|j	duo<|j
tjjko"|jduo|j
|||dd}||jdkoC|jdko8|j	dko-|j
dko"|jduo|j
|||dd}||jdkoE|jdko:|j	dko/|j
dko$|jdko|j
|||tjjd	}||jd	koP|jd	koE|j	duo<|j
tjjko"|jduo|j
|||||dS)
NryrrFrgrMzp:crCrNr)rr^rHrrr<r5rrrQrPrRr*rarJrFrIs   rtestRenameElementzMinidomTest.testRenameElements(##"~~dCG$;SAAT\S(7MS(7Nd*7%)@@7K4'	7
&11#66	8	8	8~~d$>DDT\S(7MS(7Nc)7%)CC7K4'	7
&11#66	8	8	8~~d$?GGT\U*7MU*7Nc)7%)DD7K3&	7
&11#66	8	8	8~~dCG$;SAAT\S(7MS(7Nd*7%)@@7K4'	7
&11#66	8	8	8	
--c4888

rc^tjjtjjdd}|d}|tjj|j	|tjjd|
dS)Nrcommentr{)rrrr	rr<rrrrHrFrs   rtestRenameOtherzMinidomTest.testRenameOtherHsgo2244CCG#S$00  ++#'13>4'15	:	:	:

rctd}|j}|jd}||jt
j||d||	d||d|
|d|||d|d}|||	d	}||||d||d	|
d
}||||}||d||d	|dd}||||}||d||d	||||d
||d
dS)Nz<doc>a</doc>rrrgabrCcabrUrryzcabd)rr^rirTr9rrr;r~r}rkcreateCDATASectionrrjrcreateProcessingInstructionremoveChild)r2rrtrsplittertext2rs       r
testWholeTextzMinidomTest.testWholeTextRs=.))"q!777D#&&&++C00111D$'''#0055t<<<D%((($$Y//"""""3''D%(((E3'''c""!X&&&D%(((E3'''++C55!X&&&D%(((E3'''"""D&)))E6*****rctd}|j}|j}||j|ud|||||j|uddS)Nz<doc><e/></doc>zBefore replaceChild()zAfter replaceChild())rr^rnr5rr)r2rrtrs    rtestPatch1094164zMinidomTest.testPatch1094164vss+,,"OQ\T)+BCCC!QQ\T)+ABBBBBrcd}|\}}}}}|d}||d||d|t|jdk|\}}}}}|d}||d||d|t|jdk|\}}}}}|d}||d||duot|jdkdS)	Nc
td}|j}|j}|j}|j}||d|||d||||||fS)Nz<doc>a<e/>d</doc>rgrC)rr^rnrorrrkr}r])rrttext1rar`s     rsetupz/MinidomTest.testReplaceWholeText.<locals>.setups122C&DOENE(Hc0055x@@@c44S995AAAeXu44rznew contentrrfrYrrrd)replaceWholeTextr;r5rlri)r2rhrrtrgr`rars        rtestReplaceWholeTextz MinidomTest.testReplaceWholeTexts{	5	5	5-2EGG)T5(E%%m44D-000E3'''S))Q.///,1EGG)T5(E%%m44D-000E5)))S))Q.///,1EGG)T5(E%%b))E3'''TT\.((A-	/	/	/	/	/rctd}|j}|j}||jduo|jtjjkd	}|D][}|
|}|j}|t|do|jtjjk\dS)Nal<!DOCTYPE doc [
  <!ENTITY e1 SYSTEM 'http://xml.python.org/e1'>
  <!ENTITY e2 SYSTEM 'http://xml.python.org/e2'>
  <!ATTLIST doc id   ID       #IMPLIED 
                ref  IDREF    #IMPLIED 
                refs IDREFS   #IMPLIED 
                enum (a|b)    #IMPLIED 
                ent  ENTITY   #IMPLIED 
                ents ENTITIES #IMPLIED 
                nm   NMTOKEN  #IMPLIED 
                nms  NMTOKENS #IMPLIED 
                text CDATA    #IMPLIED 
    >
]><doc id='name' notid='name' text='splat!' enum='b'       ref='name' refs='name name' ent='e1' ents='e1 e2'       nm='123' nms='123 abc' />z+id notid text enum ref refs ent ents nm nmsrU)rr^
schemaTyper5rU	namespacerrr<splitrhasattr)r2rrtr:namesrUrs       rtestSchemaTypezMinidomTest.testSchemaTypes
/00""

OQVt^;K37#::	<	<	<=CCEE	@	@D%%d++AALLF++?sw'>>
@
@
@
@	@	@rctd}|j}|d}|d}||dduo|jo|j|d|||do|jo|j|d|||do5||do
|jo|j|d}d|_	|
|||dduo>||do|jo|jo|j||tj
jd|||do|jdS)Nz<doc a1='v' a2='w'/>rcrdrLwan)rr^rr5getElementByIdrrracreateAttributersetAttributeNoderHrrr<)r2rrrcrda3s      rtestSetIdAttributezMinidomTest.testSetIdAttributese011



%
%



%
%S'',,4 K K	!	!	!	
Q\\#"4"4S"9"9:: G K	!	!	!	
Q\\#"4"4S"9"9::LL!3!3C!8!899GG			

 
 
&
&	2S'',,4 LL!3!3C!8!899 K G K		!	!	!	r372D999Q\\#"4"4S"9"9::G					rcd}d}td|zdz|zdz}|j}||d}||d}||dduo|jo|j||d|||do|jo|j||d|||do5||d	o
|jo|j||d}d|_	|
||||d	||j||j||j||ddu||tj
jd
|||d	o|jdSNzhttp://xml.python.org/ns1rMz<doc xmlns:ns1='z
' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>rcrdrLrsrt)rr^rhr5rursetIdAttributeNSracreateAttributeNSrrwrHrrr<r2NS1NS2rrrcrdrxs        rtestSetIdAttributeNSz MinidomTest.testSetIdAttributeNSs)))+./2))+./25566


!
!#t
,
,

!
!#t
,
,S'',,4 K K	!	!	!	
3%%%Q\\#"4"4S"9"9:: G K	!	!	!	
3%%%Q\\#"4"4S"9"9::LL!3!3C!8!899GG			

"
"3
-
-	2Q\\#"4"4S"9"9::;;;[!!!RW[!!!S'',,4555r372D999Q\\#"4"4S"9"9::G					rcd}d}td|zdz|zdz}|j}||d}||d}||dduo|jo|j|||||do|jo|j|||||do5||d	o
|jo|j||d}d|_	|
||||d	||j||j||j||ddu||tj
jd
|||d	o|jdSr{)rr^rhr5rursetIdAttributeNoderar}rrwrHrrr<r~s        rtestSetIdAttributeNodez"MinidomTest.testSetIdAttributeNodes)))+./2))+./25566


!
!#t
,
,

!
!#t
,
,S'',,4 K K	!	!	!	
R   Q\\#"4"4S"9"9:: G K	!	!	!	
R   Q\\#"4"4S"9"9::LL!3!3C!8!899GG			

"
"3
-
-	2Q\\#"4"4S"9"9::;;;[!!!RW[!!!S'',,4555r372D999Q\\#"4"4S"9"9::G					rcR||fg}|r|\}}||j|j|t|jt|j||j|j|||||||jtj	krbt|j
t|j
t|jt|j|t|j
t|j
|t|jt|jtt|jD]}|j
|}|j
|}||j|j||j|j||j|j|||ftt|j
D]}|j

|}	|j

|}
||	j|
j||	j|
j||	j|
j||	|
f|jtjkrZ||j|||j|tt|jD]/}||j||j|f0|dSdSr0)poprTr9rlrirr=rarrrrrr)rUrrrr
DOCUMENT_NODEr1r*)r2rrstackn1n2rno1no2rrs           rassert_recursive_equalz"MinidomTest.assert_recursive_equal$st
!	CYY[[FBR["+666S//R]1C1CDDDR["+666R]]2..///R]]2..///{d555BK   BK   BL!!!BL!!!  R[!1!13r{3C3CDDD  R\!2!2C4E4EFFFs2<0011--A,++A..C,++A..C$$SXsx888$$S\3<@@@$$S\3<@@@LL#s,,,,s2;//00++A))!,,B))!,,B$$R_boFFF$$R["+>>>$$R["+>>>LL"b****{d000 0 ; ;C @ @AAA 0 ; ;D A ABBB3r}--..
C
CbmA.
a0@ABBBBC!	C!	C!	C!	C!	Crctt}tdtjdzD]A}tj||}tj|}|||BdS)Nrdre)rsamplerpickleHIGHEST_PROTOCOLdumpsloadsr)r2rprotor9rs     rtestPickledDocumentzMinidomTest.testPickledDocumentIsq&!!1f59::	3	3ES%((A<??D''T2222	3	3rctt}tj|}|||dSr0)rrcopydeepcopyrrs   rtestDeepcopiedDocumentz"MinidomTest.testDeepcopiedDocumentPs:&!!}S!!##C.....rct}||d|t|jdS)Nzfoo--bar)rr~rr
ValueErrorrpr?s  r(testSerializeCommentNodeWithDoubleHyphenz4MinidomTest.testSerializeCommentNodeWithDoubleHyphenUsK(**))*55666*ci00000rctd}t|}||jtjjkdS)Nz$<element xmlns=''>
<foo/>
</element>)rrpr5rPrrr<rs   rtestEmptyXMLNSValuezMinidomTest.testEmptyXMLNSValue[sP/00399;;''T&#'*AABBBBBrctjdkr|td}n|td}|5tdddddS#1swxYwYdS)Nr1zsyntax errorzUnsupported syntaxzE<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>)r3r4assertRaisesRegexr
rr)r2contexts  r!testExceptionOnSpacesInXMLNSValuez-MinidomTest.testExceptionOnSpacesInXMLNSValueas9,,,,ZHHGG,,Z9MNNG
	a	a_```	a	a	a	a	a	a	a	a	a	a	a	a	a	a	a	a	a	as
A''A+.A+ctt}|jdd}|t
jj|j|t|j
}||j
dt|j
}|||dz
kdS)NTITLErre)rrEr^r]rrrrr_rlrir1)r2r	title_tagnum_children_beforenum_children_afters     rtestDocRemoveChildzMinidomTest.testDocRemoveChildjsGnn'<<WEEaH	37.KKK!#.11q)*** 00*.AA.EEFFFFFrchtt}|dd}d|_dS)NrZr[crash)rrEr^r)r2rr=s   r"testProcessingInstructionNameErrorz.MinidomTest.testProcessingInstructionNameErrorss/Gnn

,
,S#
6
6rcd}t|}tj}|||||dSNE<?xml version="1.0" ?><curriculum status="public" company="example"/>)rioStringIOwritexmlrTgetvalue)r2xml_strroutputs    rtest_minidom_attribute_orderz(MinidomTest.test_minidom_attribute_orderzsWY'""V**G44444rcxd}t|}|||dSr)rrTrpr2rrs   r"test_toxml_with_attributes_orderedz.MinidomTest.test_toxml_with_attributes_ordereds8Y'""g.....rcxd}t|}||ddS)NrzG<?xml version="1.0" ?>
<curriculum status="public" company="example"/>
rrTr(rs   r(test_toprettyxml_with_attributes_orderedz4MinidomTest.test_toprettyxml_with_attributes_orderedsMY'""**M	N	N	N	N	Nrcxd}t|}||ddS)NC<?xml version="1.0" ?><root><node><![CDATA[</data>]]></node></root>zH<?xml version="1.0" ?>
<root>
	<node><![CDATA[</data>]]></node>
</root>
rrs   rtest_toprettyxml_with_cdataz'MinidomTest.test_toprettyxml_with_cdatasGW'""**%	&	&	&	&	&rc:d}t|}||ddjdt|}||ddjddS)Nrr8rz</data>)rr;r]rnr()r2rdom1rs    rtest_cdata_parsingzMinidomTest.test_cdata_parsingsW7##D55f==a@KYWWW4++--..D55f==a@KYWWWWWrN)r.)rrrr5r;r@rJrMrXrZr`rwrrrrrrrrrrrrrrrrrrrrrrrrrrrr	rrrrrr r$r*r/r2r5r>r@rBrDrFrJrLrNrPrRrTrVrXrZr\r^rerjrlrnrprrrtrvrxrzr|r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrr	rr
rrrr r"r%r-r6r9rrDrJrQrSrVrbrdrjrqryrrrrrrrrrrrrrrrrrrr-r-7sB((((BBB***
444444666444)))V+++"*"))))))



*						$111$$$L








<<<)((


)))
==="%$$$$$:::LLL	E	E	EIII
@
@
@211   !!!'''('')))###$$$%%%&&&$$$&&&KKK999'&&&&&++++++000$$$'''...000333""""""///???(



A
A
ACCC2 4 4 4DFFF
000III
PPP
CCC@@@******MMMCCC@@@+++555222-(-(-(^+++2*$$(*<<<~BBB





6 0:::KKKZ)))V"+"+"+HCCC///:@@@B>"""H"""H#C#C#CJ333///
111CCCaaaGGG555///
NNN&&&XXXXXrr-__main__r0)rrrr3runittestr3xml.dom.minidomrrrrrrr	xml.parsers.expatr
findfilerErrr&r+TestCaser-rmainrrr<module>rsZ



				DDDDDDDDDDDDDD000000(((((('
:m
<
<
<7GGGG dXdXdXdXdX(#dXdXdXL3zHMOOOOOr