python (3.12.0)

(root)/
lib/
python3.12/
test/
__pycache__/
test_minidom.cpython-312.opt-1.pyc

ΑeddlZddlZddlZddlmZddlZddlZddlmZm	Z	m
Z
mZmZddlm
Z
ddlmZej ddZd	Zdd
ZdZdZGd
dej,Zedk(rej2yy)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>c8tjdd|S)Ndoc)r	createDocument)doctypes E/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/test/test_minidom.pycreate_doc_without_doctypers!00ugFFctjddd}g|j_g|j_t
jjjddd}|jjj|t
jjjdddd}d|_d|_d|_
|jjj||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"$77tTJGGGww''
t(LNH!!(+
WW__
#
#K$G$13FFNFO&F  (Nrct}t|}||jjd_||j
jd_|SNr)r&rritem
ownerDocumentr)rrs  rcreate_doc_with_doctyper+/sK%'G
$W
-C-0G!*.1G1+JrcpeZdZddZdZdZdZdZdZdZ	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.Z0d/Z1d0Z2d1Z3d2Z4d3Z5d4Z6d5Z7d6Z8d7Z9d8Z:d9Z;d:Z<d;Z=d<Z>d=Z?d>Z@d?ZAd@ZBdAZCdBZDdCZEdDZFdEZGdFZHdGZIdHZJdIZKdJZLdKZMdLZNdMZOdNZPdOZQdPZRdQZSdRZTdSZUdTZVdUZWdVZXdWZYdXZZdYZ[dZZ\d[Z]d\Z^d]Z_d^Z`d_Zad`ZbdaZcdbZddcZeddZfdeZgdfZhdgZidhZjdiZkdjZldkZmdlZndmZodnZpdoZqdpZrdqZsdrZtdsZudtZvGdudvZwdwZxdxZydyZzdzZ{d{Z|d|Z}d}Z~d~ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZy)MinidomTestc(|j||yN)
assertTrue)selftesttestnames   rconfirmzMinidomTest.confirm7sh'rcR|j}|j||k(d|d|y)Nzlooking for z, found )	wholeTextr4)r1nodests    rcheckWholeTextzMinidomTest.checkWholeText:s"NNQ!V1a@Arct}|j|j|jtjyr/)rassertFalseasync_r1rs  rtestDocumentAsyncAttrz!MinidomTest.testDocumentAsyncAttr>s-j$)rcttd5}t|}|j|j	t|tdddy#1swYyxYw)Nrbopentstfilerunlinkr4
isinstancerr1filers   rtestParseFromBinaryFilez#MinidomTest.testParseFromBinaryFileCsH
'4
 	4D+CJJLLLC23	4	4	4s;AActtdd5}t|}|j|j	t|tdddy#1swYyxYw)Nrz
iso-8859-1)r"rBrGs   rtestParseFromTextFilez!MinidomTest.testParseFromTextFileIsJ
'3
6	4$+CJJLLLC23	4	4	4s;AA ctdddd}|j|jd|j|jd|j|jd|j|j
dy)NqNamenamespaceURI	localNameprefixrassertEqualnamerOrQrPr1attrs  rtestAttrModeSetsParamsAsAttrsz)MinidomTest.testAttrModeSetsParamsAsAttrsOsdG^[(CG,**N;h/5rctdddd}|j|jd|j|jd|j|jd|j|j
|jy)NrNrOrQrRrUs  r testAttrModeSetsNonOptionalAttrsz,MinidomTest.testAttrModeSetsNonOptionalAttrsVshG^T8<G,**N;h/3rctt}|j|jd|jjdk(|jy)NLI)rrDr4getElementsByTagNamedocumentElementrEr1rs  rtestGetElementsByTagNamez$MinidomTest.testGetElementsByTagName]sGGnS--d3##88>?	@

rcjtd}|j}|jd}|jd}|j	|||jt
|jdk(xr|jjdk(xr|jd|uxr|jjd|uxre|jd|uxrR|jjd|uxr3|j|uxr#|j|uxr|jdk(d|jd}|j	|d|jt
|jdk(xr|jjdk(xr|jd|uxr|jjd|uxre|jd|uxrR|jjd|uxr3|j|uxr#|j|uxr|jd	k(d|jd
}|j	|||jt
|jdk(xr|jjdk(xr|jd|uxr|jjd|uxre|jd|uxrR|jjd|uxr3|j|uxr#|j|uxr|jdk(d|jy)
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insertBeforer4lenlengthr)
firstChild	lastChildtoxmlpreviousSiblingnextSiblingrE)r1rrootelemnelemnelem2s      rtestInsertBeforezMinidomTest.testInsertBeforecsD-.""q!!!),%&S)Q.BOO**a/BOOA&%/BOO((+u4BOOA&$.	B
OO((+t3BOOu,
BNNd*BJJL$AAD		F!!),%&S)Q.LOO**a/LOOA&$.LOO((+t3LOOA&%/	L
OO((+u4LNNe+
L))T1LJJL$KKD		F""5)&%(S)Q.	>OO**a/	>OOA&&0	>OO((+v5	>OOA&%/		>
OO((+u4	>&&%/
	>))V3	>JJL=>D
	F	

rcltd}|jd}|jd}|jd}|jd}|jj||j	}|j||j||j|||||||fS)N<doc/>originalfoorfbat)rcreateTextNoder]appendChildcreateDocumentFragmentr1rorigc1c2c3frags       r_create_fragment_test_nodesz'MinidomTest._create_fragment_test_nodess(#!!*-



&



&



&''-))+D"b"d**rc(|j\}}}}}}|jj|d|jt	|jj
||||fk(d|j
|j
|j\}}}}}}|jj|||jt	|jj
||||fk(d|j
|j
y)NzinsertBefore(<fragment>, None)zinsertBefore(<fragment>, orig))rr]rjr4tuplerhrErs       rtestInsertBeforeFragmentz$MinidomTest.testInsertBeforeFragments&*&F&F&H#T2r2t((t4U3..99:BB'(5	7	



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



rcjtt}|jj|j	d|j|jjdjdk(|j|jjdjdk(|jy)NHelloz#comment)
rrDr]r}
createCommentr4rhnodeNamedatarEr^s  rtestAppendChildzMinidomTest.testAppendChildsGn''(9(9'(BCS((33B7@@JNOS((33B7<<GH

rc|j\}}}}}}|jj||jt	|jj
||||fk(d|j
|j
y)NzappendChild(<fragment>))rr]r}r4rrhrErs       rtestAppendChildFragmentz#MinidomTest.testAppendChildFragmentsx&*&F&F&H#T2r2t''-U3..99:BB'(.	0	



rc4|j\}}}}}}|jj|||j|j	t|jj|||fk(d|j|jy)NzreplaceChild(<fragment>))rr]replaceChildrEr4rrhrs       rtestReplaceChildFragmentz$MinidomTest.testReplaceChildFragments{&*&F&F&H#T2r2t((t4
U3..99:r2rlJ*	,


rct}|jd}|jd}|jtj
j|j||j||jtj
j|j|||jtj
j|j|||j}|jtj
j|j||jtj
j|j||j||jy)Nrbtext)rrir|assertRaisesrrHierarchyRequestErrr}rjr
attributessetNamedItemsetNamedItemNSrE)r1rrsrnodemaps     rtestLegalChildrenzMinidomTest.testLegalChildrensj  +!!&)#''55sM#''55s7G7G	 #''55s7G7G	 //#''55w7K7K	 #''55w7M7M	 	


rct}|jd}|j}d|d<|jd}|j	|j
|ud|j	|j|ud|j	|jdk(d|j	|jdk(d|j|jy)	Nrbrfrzrz-NamedNodeMap.__setitem__() sets ownerDocumentz,NamedNodeMap.__setitem__() sets ownerElementz%NamedNodeMap.__setitem__() sets valuez)NamedNodeMap.__setitem__() sets nodeValue)
rrirr)r4r*ownerElementvalue	nodeValuerE)r1rrsattrsas     rtestNamedNodeMapSetItemz#MinidomTest.testNamedNodeMapSetItemsj  +eJJqMQ__+?	AQ^^t+>	@QWW%7	9Q[[E);	=


rctt}|j||j|j	d|j|j
dj
|j
y)Nrzr)rrDr4r}rrhrEr^s  rtestNonZerozMinidomTest.testNonZerosUGnS))%01+6667

rctt}|j|j|j	|j|jyr/)rrDr0rhrEr<r^s  r
testUnlinkzMinidomTest.testUnlinks6Gn'

(rctt5}|j|jddd|j	jy#1swY%xYwr/)rrDr0rhr<r^s  rtestContextzMinidomTest.testContextsB
7^	,sOOCNN+	,(	,	,sAAct}|j|jd|j|j|jyNabc)rr}rir4r]rEr^s  rtestElementzMinidomTest.testElements;j))%01S(()

rcjtd}|j}|jdd|j|j	dk(d|jd}|j|j|ud|j|j|jud|jy)N<abc/>spamjam2<abc spam="jam2"/>testAAAz!setAttribute() sets ownerDocumentz setAttribute() sets ownerElement)	rr]setAttributer4rogetAttributeNoder*rrE)r1relrs    rrzMinidomTest.testAAAs(#

 
 
'RXXZ#77C'Q__+3	5Q^^s':'::2	4

rctd}|j}|jdd|jdd|j|j	dk(d|jy)NrrjamrrtestAAB)rr]rr4rorEr1rrs   rrzMinidomTest.testAABsV(#

 
 
&
'RXXZ#77C

rcTt}|j|jd}|jdd|j	|jddk(|j	|jdjdk(|jdd|j	|jddk(|j	|jdjdk(|j	t|jdk(|jdd|j	|jddk(|j	|jdjdk(|j	t|jdk(|jy)Nrdefghijklmnorcnewval)
rr}rirr4getAttributerrrkrEr1rchilds   rtestAddAttrzMinidomTest.testAddAttrsMj 1 1% 89
5%(U''.%78U%%e,22e;<
5%(U''.%78U%%e,22e;<S))*a/0
5(+U''.(:;U%%e,22h>?S))*a/0

rct}|j|jd}|jt	|j
dk(|j
dd|jt	|j
dk(|j
d=|jt	|j
dk(|jy)Nrrrrrd)rr}rir4rkrrrErs   rtestDeleteAttrzMinidomTest.testDeleteAttr,sj 1 1% 89S))*a/0
5%(S))*a/0U#S))*a/0

rct}|j|jd}|jdd|j	t|jdk(|jtjj|jd|jd|j	t|jdk(|jy)Nrrrrdrzr)
rr}rirr4rkrrrrNotFoundErrremoveAttributerErs   rtestRemoveAttrzMinidomTest.testRemoveAttr7sj 1 1% 89
5%(S))*a/0#''--u/D/DeL
e$S))*a/0

rct}|j|jdd}|jddd|jddd|j	t
jj|jdd|jt|jdk(|jdd|jt|jd	k(|jy)
Nhttp://www.python.org
python:abchttp://www.w3.orgxmlns:pythonzpython:abcattrrzrcabcattrrd)
rr}createElementNSsetAttributeNSrrrrremoveAttributeNSr4rkrrErs   rtestRemoveAttrNSzMinidomTest.testRemoveAttrNSBsj##$;\JL
0.0G	I
46FN#''--u/F/F*	,S))*a/0
 7CS))*a/0

rct}|j|jd}|jdd|j	t|jdk(|jd}|jtjj|jd|j||j||j	t|jdk(xr|jddut}|j|jd}|jd}|jtjj|j||jy)Nrzrrrdr)rr}rirr4rkrrrrrrremoveAttributeNodeassertIsrE)r1rrr7dom2child2node2s       rtestRemoveAttributeNodez#MinidomTest.testRemoveAttributeNodePs2j 1 1% 89
65)S))*a/0%%f-#''--u/H/H	

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

rct}|j|jd}|jdd|j	|jdy)Nrzrr)rr}rirr4hasAttributers   rtestHasAttributezMinidomTest.testHasAttributebsIj 1 1% 89
65)U''/0rctd}|j}|jdd|jt	|j
dk(|jdd|j
d|jt	|j
dk(xrm|j
djdk(xrO|j
djdk(xr1|jddk(xr|jdjd|j
d<|jt	|j
dk(xrk|j
djdk(xrM|j
djdk(xr/|jddk(xr|j
dj|jdd|jt	|j
dk(xr|j
djdk(xr|j
djdk(xrf|jddk(xrP|j
djdk(xr2|j
djdk(xr|jddk(d	|j
d<|jt	|j
dk(xr|j
djdk(xr|j
djdk(xrf|jddk(xrP|j
djd	k(xr2|j
djd	k(xr|jdd	k(|jy)
Nrrrrdbamhamspam2rcbam2)
rr]rr4rkrsetIdAttributerrrrisIdrErs   rtestChangeAttrzMinidomTest.testChangeAttrhs$(#

 
 
&S'1,-
&	&!S'1,5MM&)//585MM&)33u<5OOF+u45''/44		6
!&

fS'1,/MM&)//58/MM&)33u</OOF+u4/MM&)..		0
	'S'1,6MM&)//586MM&)33u<6OOF+u46MM'*00E9	6
MM'*44=6OOG,5
	7"(

gS'1,7MM&)//587MM&)33u<7OOF+u47MM'*00F:	7
MM'*44>7OOG,6
	8	

rcyr/r1s rtestGetAttrListzMinidomTest.testGetAttrListrcyr/rrs rtestGetAttrValueszMinidomTest.testGetAttrValuesrrcyr/rrs rtestGetAttrLengthzMinidomTest.testGetAttrLengthrrct}|j|jdd}|j|j	ddy)Nrrmissing)rr}rrSrrs   rtestGetAttributezMinidomTest.testGetAttributesDj 7FH++I6;rct}|j|jdd}|jddd|j	|jddd|j	|jddd|j|j
d}|j	|jdd	dy)
Nrrrrpythonotherrrr)rr}rrrSgetAttributeNSri)r1rrrs    rtestGetAttributeNSzMinidomTest.testGetAttributeNSsj##$;\JL
0.0G	I--.A8L#	%--.A7K	""3#4#4U#;<../F	R	rcyr/rrs rtestGetAttributeNodez MinidomTest.testGetAttributeNodercdd}t|}|jdd}|jt|dk(xrb|djdk(xrN|dj
dk(xr:|djdk(xr&|djdk(xr|djdk(|jy)NzZ<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>zhttp://pyxml.sf.net/minidommyelemrdrrzminidom:myelem)
rgetElementsByTagNameNSr4rkrOrPrQtagNamerrE)r1drelemss    rtestGetElementsByTagNameNSz&MinidomTest.testGetElementsByTagNameNSs!n**+H+35SZ1_:!H))-JJ:!H&&(2:!HOOy0:!H$$(88	:
!H%%)99	;	

rcb|j||}|jt|dk(yr()rr4rk)r1rnsurilnamenodelists     r5get_empty_nodelist_from_elements_by_tagName_ns_helperzAMinidomTest.get_empty_nodelist_from_elements_by_tagName_ns_helpers)--eU;S]a'(rctd}|j|dd|j|dd|j|ddtd}|j|dd|j|dd|j|d	d
y)Nrxz"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)rrr>s  r+testGetEmptyNodeListFromElementsByTagNameNSz7MinidomTest.testGetEmptyNodeListFromElementsByTagNameNSs(#BB5{	DBBg	BB5s	<OPBB.	=BBk	#BB6	=rct}|j|jd}t|}t	|}|j||k(|j
yrrr}rireprstrr4rEr1rrstring1string2s     rtestElementReprAndStrz!MinidomTest.testElementReprAndStrNj
__S..u5
6r(b'W'(

rct}|j|jd}t|}t	|}|j||k(|j
yrrrs     rtestElementReprAndStrUnicodez(MinidomTest.testElementReprAndStrUnicoderrct}|j|jdd}t|}t	|}|j||k(|jd|v|j
y)Nzhttp://www.slashdot.orgz	slash:abc)rr}rrrr4rErs     rtestElementReprAndStrUnicodeNSz*MinidomTest.testElementReprAndStrUnicodeNSsfj
__ 9;GIr(b'W'([G+,

rct}|j|jd}|jdd}|j	t|t
|k(|jy)Nrr)rr}rirr4rrrE)r1rrr7s    rtestAttributeReprzMinidomTest.testAttributeReprsTj
__S..u5
6ue,SY$t*,-

rcyr/rrs rtestTextNodeReprzMinidomTest.testTextNodeReprrrcd}t|}|j}|j|j||k(y)Nz <?xml version="1.0" ?><a b="c"/>)rrorEr4r1rrdomstrs    rtestWriteXMLzMinidomTest.testWriteXMLs50#

SF]#rcd}t|}|jd}|j|j||j	ddk(y)Nz"<?xml version="1.0" ?>
<a b="c"/>
z
)newl
)rtoprettyxmlrEr4replacer!s    rtestAltNewlinezMinidomTest.testAltNewlinesF4#f-

Vs{{4889rcd}|jtdj|dz|jtdj|dz|jtdj|dz|jtdj|d	z|jtd
j|dzy)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>
)rSrr')r1decls  r test_toprettyxml_with_text_nodesz,MinidomTest.test_toprettyxml_with_text_nodess)Z0<<>,	.%78DDF >>	@%78DDF >>	@%>?KKM EE	G%?@LLN JJ	Lrc&t}|jd}|j|jd|j|jd|j|d}|j	|j|dzy)NrsTEXTr+z<elem>
	TEXT
	TEXT
</elem>
)rrir}r|rSr')r1rrsr-s    r)test_toprettyxml_with_adjacent_text_nodesz5MinidomTest.test_toprettyxml_with_adjacent_text_nodess}j  (++F34++F34)* CC	Erc2dD]}t|}t|j}|j|jddjdj|jddjdjy)N)r,z<A><B>C</B></A>Br)rr'rSr\rhro)r1rrrs    r/test_toprettyxml_preserves_content_of_text_nodez;MinidomTest.test_toprettyxml_preserves_content_of_text_nodes2	ICc"Cs01D((-a0;;A>DDF))#.q1<<Q?EEG
I	Irc0td}|jj}|j|jdk(xr|j
dk(xr|jdk(xr|jtjk(xr|jduxr|jxrqt|jdk(xrW|jduxrG|jduxr7|jduxr'|j t"j$j&k(y)Nz<e><?mypi 	
 data 	
 ?></e>mypizdata 	
 r)rr]rmr4targetrrnodeTyperPROCESSING_INSTRUCTION_NODEr
hasChildNodesrkrhrnrPrOrrEMPTY_NAMESPACE)r1rpis   rtestProcessingInstructionz%MinidomTest.testProcessingInstruction%s;<

 
 
+
+RYY&(
?GG|+
?KK6)
?KK4#C#CC
?MMT)	
?
((**
?

&!+
?MMT)
?LLD(
?LLD(
?OOsww'>'>>
	@rcyr/rrs rtestProcessingInstructionReprz)MinidomTest.testProcessingInstructionRepr4rrcyr/rrs rtestTextReprzMinidomTest.testTextRepr6rrcyr/rrs r
testWriteTextzMinidomTest.testWriteText8rrcyr/rrs rtestDocumentElementzMinidomTest.testDocumentElement:rrctd}|jd}|jtjj
|j||j|jy)Nrxextra)rrirrrrr}rEr1rrss   rtestTooManyDocumentElementsz'MinidomTest.testTooManyDocumentElements<sN(#  )#''55sM


rcyr/rrs rtestCreateElementNSzMinidomTest.testCreateElementNSDrrcyr/rrs rtestCreateAttributeNSz!MinidomTest.testCreateAttributeNSFrrcyr/rrs r	testParsezMinidomTest.testParseHrrcyr/rrs rtestParseStringzMinidomTest.testParseStringJrrcyr/rrs rtestCommentzMinidomTest.testCommentLrrcyr/rrs rtestAttrListItemzMinidomTest.testAttrListItemNrrcyr/rrs rtestAttrListItemszMinidomTest.testAttrListItemsPrrcyr/rrs rtestAttrListItemNSzMinidomTest.testAttrListItemNSRrrcyr/rrs rtestAttrListKeyszMinidomTest.testAttrListKeysTrrcyr/rrs rtestAttrListKeysNSzMinidomTest.testAttrListKeysNSVrrc8td}|j}|j}|jd}|j	d}|j|j
||jtjj|jdy)Nz<doc a=''/>r)rr]rrremoveNamedItemr4
isSameNoderrrrr1rr
ra1a2s      rtestRemoveNamedItemzMinidomTest.testRemoveNamedItemXsw-(



$

"
"3
'R]]2&'#''--u/D/DcJrc>td}|j}|j}|jdd}|j	dd}|j|j
||jtjj|jddy)Nz.<doc xmlns:a='http://xml.python.org/' a:b=''/>zhttp://xml.python.org/b)rr]rgetAttributeNodeNSremoveNamedItemNSr4r`rrrrras      rtestRemoveNamedItemNSz!MinidomTest.testRemoveNamedItemNSasJK

!
!":C
@

$
$%=s
CR]]2&'#''--u/F/F2C	9rcyr/rrs rtestAttrListValueszMinidomTest.testAttrListValueskrrcyr/rrs rtestAttrListLengthzMinidomTest.testAttrListLengthmrrcyr/rrs rtestAttrList__getitem__z#MinidomTest.testAttrList__getitem__orrcyr/rrs rtestAttrList__setitem__z#MinidomTest.testAttrList__setitem__qrrcyr/rrs rtestSetAttrValueandNodeValuez(MinidomTest.testSetAttrValueandNodeValuesrrcyr/rrs rtestParseElementzMinidomTest.testParseElementurrcyr/rrs rtestParseAttributeszMinidomTest.testParseAttributeswrrcyr/rrs rtestParseElementNamespacesz&MinidomTest.testParseElementNamespacesyrrcyr/rrs rtestParseAttributeNamespacesz(MinidomTest.testParseAttributeNamespaces{rrcyr/rrs rtestParseProcessingInstructionsz+MinidomTest.testParseProcessingInstructions}rrcyr/rrs rtestChildNodeszMinidomTest.testChildNodesrrcyr/rrs rtestFirstChildzMinidomTest.testFirstChildrrctd}|j}|j|jtd}|j}|j	|jy)Nrarx)rr]r0r:r<)r1rrrdoc2s     rtestHasChildNodeszMinidomTest.testHasChildNodessY-.!!))+,8$##++-.rc|j}|j}t|j}t|j}|j|j|j	||k(dtt
|D]}|j|}	|j|}
|j	|	|
uxrj|	j|
jk(xrO|	j|
jk(xr4|	j|
jk(xr|	j|
jk(d|j	|
j|udy)Nz(clone of element has same attribute keysz3clone of attribute node has proper attribute valuesz'clone of attribute node correctly owned)
rlistkeyssortr4rangerkr)rrrOrPr)r1e1e2r2attrs1attrs2keys1keys2irbrcs           r!_testCloneElementCopiesAttributesz-MinidomTest._testCloneElementCopiesAttributessV[[]#V[[]#



Ue^%OPs5z"
	?AQBQBLL25BHH,5452??:54K
M
LLB.=
?
	?rctd}|j}|j|}|j||d|xrdxsdzdx|_|_|j
dd|j
dd	||fS)
Nz<doc attr='value'><foo/></doc>testCloneElementDeepShallowMODIFIEDrVz	NEW VALUEaddedVALUE)rr]	cloneNoderrrr)r1deeprrrclones     r_setupCloneElementzMinidomTest._setupCloneElements:;""t$..%+t/K)L	N(21t}&+.'7+Ezrc|jd\}}|jt|jdk(xr>|jjdk(xr#|j
duxr|j
dk(d|jy)Nrz<doc attr="value"/>testCloneElementShallowrr4rkrhrl
parentNoderorEr1rrs   rrz#MinidomTest.testCloneElementShallows,,Q/
US))*a/;$$++q0;$$,;KKM%::+		-
	

rc|jd\}}|jt|jdk(xr>|jjdk(xr#|j
duxr|j
dk(d|jy)Nrdz<doc attr="value"><foo/></doc>testCloneElementDeeprrs   rrz MinidomTest.testCloneElementDeeps,,Q/
US))*a/F$$++q0F$$,FKKM%EE(		*
	

rcdtd}|jd}|j|dudy)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!)rrr4r1rrs   rtestCloneDocumentShallowz$MinidomTest.testCloneDocumentShallows:*+}}QTT\@	Arctd}|jd}|j|j|xs|j|d|jt	|j
t	|j
k(d|j|jjtjk(d|j|jjj|d|j|jj|jd|j|j|jjtjk(d|j|jjj||j|jj|jyy)	Nrrdz4testCloneDocumentDeep: 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)
rrr4r`rkrhr]r8rELEMENT_NODEr*rDOCUMENT_TYPE_NODErs   rtestCloneDocumentDeepz!MinidomTest.testCloneDocumentDeepsm*+}}Q#...F$//#2FGF	HS(C,@@J	LT))22d6G6GGL	NT))77BB4HN	P,,778L8LMMM	O;;"LL..$2I2IIM
OLL33>>tDELLS[[33DLLAAB#rcFt}|jd}|j|duxrD|j|jk(xr(|j|jk(xr|j
|j
k(xr|j|jk(xrt|jt|jk(xr|jjt|jduxrwt|jt|jk(xrJ|jjt|jduxrt|jdk(tt|jD]+}|jj|}|jj|}|j|j|xr|j|xr|j|jk(xr|j|jk(xr|j
|j
k(xrj|j|jk(xrO|j|jk(xr4|j |j k(xr|j"|j"k(.tt|jD]}|jj|}|jj|}|j|j|xrc|j|xrO|j|jk(xr4|j
|j
k(xr|j|jk(y)Nrdr)r&rr4rrTpublicIdsystemIdrkrr)rrhrr`notationNamer"r#r!)r1rrrsecesncns        rtestCloneDocumentTypeDeepOkz'MinidomTest.testCloneDocumentTypeDeepOks)+!!!$U$&	/NNg&6&66	/JJ',,.	/NNg&6&66	/NNg&6&66		/
'3w/?/?+@@	/NN''ENN(;<D
	/(C0A0A,BB	/OO((U__)=>$F	/(()Q.		0s7++,-	2A!!&&q)B$$Q'BLLbmmB//1]]2..1r{{212??:1r{{2	1
r{{21r{{2
1))R->->>1

bjj0
2	2s7,,-.	4A""''*B%%a(BLLbmmB//3]]2..3r{{23r{{23r{{2	
4	4rcvt}|jjd}|j|dudy)NrdtestCloneDocumentTypeDeepNotOkr+rrr4r1rrs   rrz*MinidomTest.testCloneDocumentTypeDeepNotOks1%'%%a(Ud]$DErcPt}|jd}|j|duxr|j|jk(xr|j|jk(xr|j
|j
k(xr|j|jk(xrt|jdk(xrp|jjdduxrQt|jdk(xr7|jjdduxrt|jdk(yr()r&rr4rrTrrrkrr)rrh)r1rrs   rtestCloneDocumentTypeShallowOkz*MinidomTest.testCloneDocumentTypeShallowOk	s)+!!!$U$&	/NNg&6&66	/JJ',,.	/NNg&6&66	/NNg&6&66		/
'1,	/NN''*d2
	/(A-	/OO((+t3	/(()Q.		0rcvt}|jjd}|j|dudy)Nr!testCloneDocumentTypeShallowNotOkrrs   rrz-MinidomTest.testCloneDocumentTypeShallowNotOks1%'%%a(Ud]$GHrctd}td}|jtjj|j
||y)Nrx)rrrrNotSupportedErr
importNode)r1rtestNamedoc1rs     rcheck_import_documentz!MinidomTest.check_import_documents88$8$#''114??D$Orc(|jddy)NrtestImportDocumentShallowrrs rrz%MinidomTest.testImportDocumentShallow!""1&ABrc(|jddy)NrdtestImportDocumentDeeprrs rrz"MinidomTest.testImportDocumentDeep$""1&>?rct}t}|jtjj
|j|jdyr(r+rrrrrrrr1srcr7s   rtestImportDocumentTypeShallowz)MinidomTest.testImportDocumentTypeShallow'=%'+-#''1163D3D++q	*rct}t}|jtjj
|j|jdyNrdrrs   rtestImportDocumentTypeDeepz&MinidomTest.testImportDocumentTypeDeep-rrc
td}|jjd}|j|d|j	|}|j|j
||j|j
||j|jdu|dz|j|jj
|j|dz|j|j|dzy)Nz<doc attr='value'/>rVz: ownerElement should be Nonez: ownerDocument does not matchz.: cloned attribute must have specified == True)
rr]rassertNotEqualrr4r`rr*	specified)r1rrrrVrs      rcheck_clone_attributez!MinidomTest.check_clone_attribute5s/0""33F;D$'t$))$//0//0U''4/::	<U((33D4F4FG;;	=U__KK	Mrc(|jddy)NrtestCloneAttributeShallowrrs rrz%MinidomTest.testCloneAttributeShallowCrrc(|jddy)NrdtestCloneAttributeDeeprrs rrz"MinidomTest.testCloneAttributeDeepFrrc.td}|j}|j|jtj
|j
|}|j|j|jk(xr|j|jk(y)Nz<?target data?><doc/>)
rrmrSr8rr9rr4r7r)r1rrrr<rs      rcheck_clone_pizMinidomTest.check_clone_piIsn12
^^d&F&FGT"U\\RYY.*JJ"'')	+rc(|jddy)NrtestClonePIShallowrrs rrzMinidomTest.testClonePIShallowQsA34rc(|jddy)NrdtestClonePIDeeprrs rrzMinidomTest.testClonePIDeepTsA01rctjjjdj	}Gdd}|}|j
}|jd}|jdd||r|jd}|j|jjjd	tjjj}|j
jd}	netj |d
d5|jd}dddtjjj"}jd}	|j|j$||j|j&d|j|j(d|j+|j,||j+|j.|	y#1swYxYw)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>
        ceZdZdZy)4MinidomTest.check_clone_node_entity.<locals>.HandlercJ||_||_||_||_||_yr/)	operationkeyrrdstr1rrrrrs      rhandlez;MinidomTest.check_clone_node_entity.<locals>.Handler.handleds%!* 	rN)__name__
__module____qualname__rrrrHandlerrcs
rrsmilerrT)ru%Don't let entities make you frown ☺r*)rrrrstriprrsetUserDatarrSr]rmr6UserDataHandler
NODE_IMPORTEDr	swap_attrNODE_CLONEDrrrrrr)
r1clone_documentdocumentrhandlerrr%rrrs
          rcheck_clone_node_entityz#MinidomTest.check_clone_node_entityWs77??..0
EG		)""!!'*5&'2&&D&1EU22==GGD
F//==I--((1C""7OTB
5))t)4
5//;;I..)C**I6e,v.

gkk6*

gkk3'
5
5sG++G4cH|jd|jdy)NFT)rrs rtestCloneNodeEntityzMinidomTest.testCloneNodeEntitys$$U+$$T*rctd}|j}|j|jd|j|jd|j	t|jdk(xr|jjdk(d|j|j	t|jdk(xrN|jjdk(xr3|j|juxr|jjdk(d|jtd}|j}|j|jd	|j|j	t|jd
k(xr|jjd
k(d|jy)NrxfirstsecondrcztestNormalize -- preparationrdfirstsecondztestNormalize -- resultrrz*testNormalize -- single empty node removed)
rr]r}r|r4rkrhrl	normalizermrnrrEr1rrrs   r
testNormalizezMinidomTest.testNormalizesq(#""++G45++H56S)Q.0OO**a/.	0	

S)Q.:OO**a/:OOt~~5:OO((M9+		-
	

(#""++B/0

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

rctd}|j}|j|jd|j|jd|j|j	d|jt
|jdk(xr|jjdk(d|j|jt
|jdk(xr|jjdk(xr|jjdk(xr|j|juxrz|jj|juxrV|jjduxr<|jj|juxr|jjdud	|jy)
Nrxrrrrez1testNormalizeCombineAndNextSibling -- preparationrcrz-testNormalizeCombinedAndNextSibling -- result)rr]r}r|rir4rkrhrlrrmrrnrqrprErs   r"testNormalizeCombineAndNextSiblingz.MinidomTest.testNormalizeCombineAndNextSiblings(#""++G45++H56**3/0S)Q.0OO**a/C	E	

S)Q.7OO**a/7OO((M97OO4>>97OO//4>>A	7
OO33t;7NN22dooE
7NN..$6A	C	

rctd}|j}|j|jd|j|jd|j	t|jdk(xr|jjdk(d|j|j	t|jdk(xr|jjdk(xrg|jjdk(xrL|j|juxr2|jjduxr|jjdud|jy)Nrxrrrcz1testNormalizeDeleteWithPrevSibling -- preparationrdz,testNormalizeDeleteWithPrevSibling -- resultrr]r}r|r4rkrhrlrrmrrnrqrprErs   r"testNormalizeDeleteWithPrevSiblingz.MinidomTest.testNormalizeDeleteWithPrevSiblings-(#""++G45++B/0S)Q.0OO**a/C	E	

S)Q.<OO**a/<OO((G3<OOt~~5<OO//47	<
OO33t;@
	B	

rctd}|j}|j|jd|j|jd|j	t|jdk(xr|jjdk(d|j|j	t|jdk(xr|jjdk(xrg|jjdk(xrL|j|juxr2|jjduxr|jjdud|jy)Nrxrrrcz1testNormalizeDeleteWithNextSibling -- preparationrdz,testNormalizeDeleteWithNextSibling -- resultrrs   r"testNormalizeDeleteWithNextSiblingz.MinidomTest.testNormalizeDeleteWithNextSiblings-(#""++B/0++H56S)Q.0OO**a/C	E	

S)Q.<OO**a/<OO((H4<OOt~~5<OO//47	<
OO33t;@
	B	

rcjtd}|j}|j|jd|j|j	d|j|jd|jt
|jdk(xr|jjdk(d|j|jt
|jdk(xr|jjdk(xr|j|juxrz|jj|juxrV|jjduxr<|jj|juxr|jjdud|jy)Nrxrrrez1testNormalizeDeleteWithTwoSiblings -- preparationrcz,testNormalizeDeleteWithTwoSiblings -- result)rr]r}rir|r4rkrhrlrrmrnrqrprErs   r)testNormalizeDeleteWithTwoNonTextSiblingsz5MinidomTest.testNormalizeDeleteWithTwoNonTextSiblingssg(#""**3/0++B/0**3/0S)Q.0OO**a/C	E	

S)Q.7OO**a/7OO4>>97OO//4>>A7OO33t;	7
NN22dooE7NN..$6@	B	

rctd}|j}|j|jd|j|jd|j|jd|j|jd|j|jd|j	t|jdk(xr|jjdk(d|j|j	t|jdk(xr|jjdk(xrg|j|juxrM|jjdk(xr2|jjduxr|jjdud	|jy)
Nrxrrfourthz,testNormalizeDeleteAndCombine -- preparationrdsecondfourthz'testNormalizeDeleteAndCombine -- result)rr]r}r|r4rkrhrlrrmrnrrprqrErs   rtestNormalizeDeleteAndCombinez)MinidomTest.testNormalizeDeleteAndCombinesw(#""++B/0++H56++B/0++H56++B/0S)Q.0OO**a/>	@	

S)Q.8OO**a/8OOt~~58OO((N:8OO33t;	8
OO//47;
	=	

rc.td}|j}|jdj|j	d|jdj|j	d|jdjdj|j	d|jdj|j	d|j|j	d|jt
|jdk(xr!|jjdk(xrt
|jdjd	k(xr|jdjjd	k(xrt
|jdjdk(xr|jdjjdk(xrgt
|jdjdjd
k(xr3|jdjdjjd
k(d|j|jt
|jd
k(xr!|jjd
k(xrt
|jdjd
k(xr|jdjjd
k(xrt
|jdjd
k(xr|jdjjd
k(xrgt
|jdjdjdk(xr3|jdjdjjdk(d|j|jdjdjd
k(xra|jdjdjdjdk(xr)|jdjdjdk(d|j|jdjdjduxr|jdjdj|jdjduxrI|jdjdjduxr|jdjdj|jdjduxr|jdjdjduxr|jdjdj|jdjduxrl|jdjdjduxrB|jdjdj|jdjdud|jy)Nz)<doc><o><i/>t</o><o><o>t2</o>t3</o></doc>rrxrdx2x3rergrcztestNormalize2 -- preparationz$testNormalize2 -- childNodes lengthstxt2x2t3x3z$testNormalize2 -- joined text fieldsz"testNormalize2 -- sibling pointers)
rr]rhr}r|r4rkrlrrrqrprErs   rtestNormalizeRecursionz"MinidomTest.testNormalizeRecursionsd#$"""&&s'9'9"'=>&&s'9'9#'>?%%a(44S5G5G5MN&&s'9'9$'?@++B/0S)Q.LOO**a/L*556!;LOOA&1188A=L*556!;	L
OOA&1188A=L*55a8CCDI
LOOA&11!4??FF!K1	3	

S)Q.LOO**a/L*556!;LOOA&1188A=L*556!;	L
OOA&1188A=L*55a8CCDI
LOOA&11!4??FF!K8	:	
T__Q'2215::dBDOOA&11!4??BGG6QDOOA&11!499VC8	:	
T__Q'2215AATI<OOA&11!4DD??1-88;<<OOA&11!4DDL<OOA&11!4@@??1-88;<	<OOA&11!4@@DH
<OOA&11!4DD??1-88;<<OOA&11!4DDL<OOA&11!4@@??1-88;<6	8	

rctd}|jjd}|j|jt
j|j|jy)Nz<o>text</o>r)	rr]rhrSr8r	TEXT_NODErrE)r1rrs   rtestBug0777884zMinidomTest.testBug0777884DsM-(""--a07

rctd}|j}d|jd_|j	|j|jdjdudy)Nz<o><i/>t</o>rrdrz)Final child's .nextSibling should be None)rr]rhrrr4rqr1rr7s   rtestBug1433694zMinidomTest.testBug1433694LsX.)""')$T__R(44<@	BrcNtd}|j}|j\}}}|j|j|uxrN|j
duxr>|j|uxr.|j
|uxr|jduxr|j
|ud|j
y)Nz<doc><?pi?>text?<elm/></doc>testSiblings)rr]rhr4rqrprE)r1rrrr<relms      rr!zMinidomTest.testSiblingsTs89""//T3R^^t+,""d*,  C',$$*,4'	,
##t+^	=	

rchtd}|j}|jd}|j\}}|jd}|j|j|uxr>|j|uxr.|j|uxr|j|uxr|j|ud|jy)Nz3<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>rtestParents)rr]rhr4rrE)r1rrrelm1elm2aelm2belm3s       rr$zMinidomTest.testParentsbsAC""q!"T__+)4')  D()  D()5(-		9
	

rctd}|j}|d}|j|d|jduxr|jdduxr|jjd|jduxrb|jjd|jduxr6|jjdjjddud|j	y)Nz<doc><e/><e/></doc>rrdztest NodeList.item())rrhr4r)rE)r1rchildrendocelems    rtestNodeListItemzMinidomTest.testNodeListItemqs/0>>1+Xa[HMM!$44JMM!$,J&&++A.'2D2DQ2GGJ&&++A.'2D2DQ2GGJ&&++A.99>>qATI&	(	

rctd}|j|jd|j|jdd|j|jdd|j|jdd|j|jd	d
jd	|j	t
tf5tdddd|jy#1swYxYw)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>s0<franais>Comment a va ? Trs bien ?</franais>)rrSroencoderUnicodeDecodeErrorr
rEr>s  r
testEncodingszMinidomTest.testEncodings}s/0B	D7+L	N=1J	L:.J	L8,
  &x 0	2

 2J?
@	O
	
	

		sC??Dctd}|j|jd|j|jdd|j|jdd|j|jdd|j|jddd	|jy)
Nr.r/)
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>)rrSrorEr>s  rtestStandalonezMinidomTest.testStandalones/0B	Dd3B	Dd3E	Ge4D	F7D1
'	(	

rceZdZdZdZy)MinidomTest.UserDataHandlerrcd|j||dz||j|ddd|_yr)rcalledrs      rrz"MinidomTest.UserDataHandler.handles-OOC40OOCt,DKrN)rrrr9rrrrrr7s	rrct}|jd}|j|jddu|j	ddd|j|jddu|j	ddd|j	ddd|j|jddk(|j|jddk(|j	ddd|j|jddu|j|jddk(|j}|j	dd||j
d}|j|jxr)|jdduxr|jddk(|j|j|jy)Nr
rzrf
rd)	rrir4getUserDatarrrr9rE)r1rnrcs     rtestUserDatazMinidomTest.testUserDatas{jc"Q]]5)T12	

eT4(Q]]5)T12	

eR$	

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

eT4(Q]]5)T12Q]]5)R/0&&(	

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

	


rc&|jtjj|j|ddtd}|jtjj|j|tjjdy)Nhttp://xml.python.org/nsz	xmlns:foorxrz)rrrNamespaceErr
renameNoderWrongDocumentErrr;)r1rr7rs    r checkRenameNodeSharedConstraintsz,MinidomTest.checkRenameNodeSharedConstraintsse#''..4k	C8$#''22DOOT''115	:rctd}|j}|j}|jd}|j|tj
jd}|j|jdk(xr|jdk(xr|jduxr|jtj
jk(xr|jduxr|jdk(xr|jdduxrp|jdj|xrN|dj|xr8|j j|xr|j"j||j|dd}|j|jdk(xr|jdk(xr|jdk(xr|jdk(xr|jduxr|jdk(xr|jdduxr|jdduxro|jdj|xrM|j%ddj|xr*|dj|xr|dj||j|dd	}|j|jd	k(xr|jd	k(xr|jd
k(xr|jdk(xr|jdk(xr|jdk(xr|jdduxr|jdduxr|jdduxr|j%ddduxro|jd	j|xrM|j%dd
j|xr*|d	j|xr|dj||j|tj
jd
}|j|jd
k(xr|jd
k(xr|jduxr|jtj
jk(xr|jduxr|jdk(xr|jdduxr|jdduxrv|jdduxra|jd	duxrL|j%ddduxr6|jd
j|xr|d
j||j'tj
j(|j|dd|j+|||j-y)Nz<doc a='v'/>rrfvrBr?)rBr?http://xml.python.org/ns2zp:drp)rIrr
xmlns)rr]rrDrrr;r4rTrrPrOrQrrr`r*rrgrrCrFrE)r1rrsattrmaprVs     rtestRenameAttributezMinidomTest.testRenameAttributes.)""//s#~~dCGG$;$;SATYY#%
7MMS(
7NNd*
7%%)@)@@
7KK4'	
7
JJ#%
7))#.$6
7))#.99$?
7CL++D1
7&&11#6
7%%006
	8~~d$>DTYY#%PMMS(PNNc)P%%)CCPKK4'	P
JJ#%P))#.$6
P))#.$6P))#.99$?P++.55?Z5EPCL++D1P=>II$O	Q~~d$?GTYY%'QMMU*QNNc)Q%%)DDQKK3&	Q
JJ#%Q))#.$6
Q))#.$6Q))#.$6Q++.58<=Q))%0;;DAQ++/66@j6FQEN--d3Q>?JJ4P	R$~~dCGG$;$;SATYY#%
2MMS(
2NNd*
2%%)@)@@
2KK4'	
2
JJ#%
2))#.$6

2))#.$6
2))#.$6
2))%0D8
2++.58<=
2))#.99$?
2CL++D1
	3	
#''..4g	?--c48

rctd}|j}|j|tjj
d}|j
|jdk(xru|jdk(xrd|jduxrT|jtjj
k(xr+|jduxr|jj||j|dd}|j
|jdk(xr^|jdk(xrM|jdk(xr<|jdk(xr+|jduxr|jj||j|dd}|j
|jdk(xr_|jdk(xrN|jdk(xr=|jdk(xr,|jdk(xr|jj||j|tjj
d	}|j
|jd	k(xru|jd	k(xrd|jduxrT|jtjj
k(xr+|jduxr|jj||j|||jy)
NrxrrBrfrIzp:cr?rJr)rr]rDrrr;r4rrrPrOrQr*r`rFrErHs   rtestRenameElementzMinidomTest.testRenameElements(#""~~dCGG$;$;SAT\\S(7MMS(7NNd*7%%)@)@@7KK4'	7
&&11#6	8~~d$>DT\\S(7MMS(7NNc)7%%)CC7KK4'	7
&&11#6	8~~d$?GT\\U*7MMU*7NNc)7%%)DD7KK3&	7
&&11#6	8~~dCGG$;$;SAT\\S(7MMS(7NNd*7%%)@)@@7KK4'	7
&&11#6	8	
--c48

rctjjjj	tjj
dd}|j
d}|jtjj|j|tjj
d|jy)Nr
commentrz)rrrr	rr;rrrrDrErs   rtestRenameOtherzMinidomTest.testRenameOtherCsggoo224CCGG##S$0  +#''113>>4''115	:

rctd}|j}|jd}|j|jt
j|j|d|j|jd|j|d|j|jd||j|d|jd}|j||jd	}|j||j|d|j|d	|jd
}|j|||}|j|d|j|d	|jdd}|j|||}|j|d|j|d	|j!||j|d
|j|d
y)Nz<doc>a</doc>rrrfabr?cabrQrryzcabd)rr]rhrSr8rrr:r}r|rjcreateCDATASectionrrircreateProcessingInstructionremoveChild)r1rrsrsplittertext2rs       r
testWholeTextzMinidomTest.testWholeTextMs.)""q!7D#&++C01D$'#005t<D%($$Y/"""3'D%(E3'c"!X&D%(E3'++C5!X&D%(E3'"D&)E6*rctd}|j}|j}|j|j|ud|j|||j|j|udy)Nz<doc><e/></doc>zBefore replaceChild()zAfter replaceChild())rr]rmr4rr)r1rrsr
s    rtestPatch1094164zMinidomTest.testPatch1094164qsa+,""OOQ\\T)+BC!QQ\\T)+ABrchd}|\}}}}}|jd}|j|d|j|d|jt|jdk(|\}}}}}|jd}|j|d|j|d|jt|jdk(|\}}}}}|jd}|j|d|j|duxrt|jdk(y)	Nc
td}|j}|j}|j}|j}|j|j
d||j|jd||||||fS)Nz<doc>a<e/>d</doc>rfr?)rr]rmrnrqrjr|rY)rrstext1r]r\s     rsetupz/MinidomTest.testReplaceWholeText.<locals>.setup{s|12C&&DOOENNE((Hc005x@c44S95AeXu44rznew contentrrerUrrrc)replaceWholeTextr:r4rkrh)r1rdrrsrcr\r]rs        rtestReplaceWholeTextz MinidomTest.testReplaceWholeTextzs	5-2G)T5(E%%m4D-0E3'S)Q./,1G)T5(E%%m4D-0E5)S)Q./,1G)T5(E%%b)E3'TT\.(A-	/rctd}|j}|j}|j|jduxr'|j
tjjk(dj}|D]c}|j|}|j}|jt|dxr'|j
tjjk(ey)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 nmsrT)rr]
schemaTyper4rT	namespacerrr;splitrhasattr)r1rrsr9namesrTrs       rtestSchemaTypezMinidomTest.testSchemaTypes
/0"""

OOQVVt^;KK377#:#::	<=CCE	@D%%d+AALLF+?sww'>'>>
@	@rctd}|j}|jd}|jd}|j|j	dduxr|j
xr
|j
|j
d|j|j|j	dxr|j
xr
|j
|j
d|j|j|j	dxr<|j|j	dxr|j
xr|j
|jd}d|_	|j||j|j	dduxrL|j|j	dxr*|j
xr|j
xr
|j
|j|tjjd|j|j|j	dxr|j
y)Nz<doc a1='v' a2='w'/>rbrcrHwan)rr]rr4getElementByIdrrr`createAttributersetAttributeNoderDrrr;)r1rr
rbrca3s      rtestSetIdAttributezMinidomTest.testSetIdAttributes01



%



%S'',4 K K	!	
Q\\#"4"4S"9: GG K	!	
Q\\#"4"4S"9:LL!3!3C!89GGGG	

 
 
&	2S'',4 LL!3!3C!89 K GG K		!	r37722D9Q\\#"4"4S"9:GG	rc@d}d}td|zdz|zdz}|j}|j|d}|j|d}|j|j	dduxr|j
xr
|j
|j
|d|j|j|j	dxr|j
xr
|j
|j
|d|j|j|j	dxr<|j|j	d	xr|j
xr|j
|j|d}d|_	|j||j|j|j	d	|j|j
|j|j
|j|j
|j|j	ddu|j|tjjd
|j|j|j	d	xr|j
yNzhttp://xml.python.org/ns1rIz<doc xmlns:ns1='z
' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>rbrcrHrorp)rr]rgr4rqrsetIdAttributeNSr`createAttributeNSrrsrDrrr;r1NS1NS2rr
rbrcrts        rtestSetIdAttributeNSz MinidomTest.testSetIdAttributeNSsC)))+./2))+./2556


!
!#t
,

!
!#t
,S'',4 K K	!	
3%Q\\#"4"4S"9: GG K	!	
3%Q\\#"4"4S"9:LL!3!3C!89GGGG	

"
"3
-	2Q\\#"4"4S"9:;[!RWW[!S'',45r37722D9Q\\#"4"4S"9:GG	rc<d}d}td|zdz|zdz}|j}|j|d}|j|d}|j|j	dduxr|j
xr
|j
|j
||j|j|j	dxr|j
xr
|j
|j
||j|j|j	dxr<|j|j	d	xr|j
xr|j
|j|d}d|_	|j||j|j|j	d	|j|j
|j|j
|j|j
|j|j	ddu|j|tjjd
|j|j|j	d	xr|j
yrw)rr]rgr4rqrsetIdAttributeNoder`ryrrsrDrrr;rzs        rtestSetIdAttributeNodez"MinidomTest.testSetIdAttributeNodes?)))+./2))+./2556


!
!#t
,

!
!#t
,S'',4 K K	!	
R Q\\#"4"4S"9: GG K	!	
R Q\\#"4"4S"9:LL!3!3C!89GGGG	

"
"3
-	2Q\\#"4"4S"9:;[!RWW[!S'',45r37722D9Q\\#"4"4S"9:GG	rc||fg}|r;|j\}}|j|j|j|jt|jt|j|j|j
|j
|j
|j||j
|j||jtjk(rt|jt|jt|jt|j|jt|jt|j|jt|jt|jtt|jD]}|jj|}|jj|}|j|j|j|j|j|j|j|j |j |j#||ftt|jD]}|jj|}	|jj|}
|j|	j$|
j$|j|	j|
j|j|	j |
j |j#|	|
f|jtj&k7rT|j)|j*j||j)|j*j|tt|jD]/}|j#|j||j|f1|r:yyr/)poprSr8rkrhrr<r`rrrrrr)rTrrrr
DOCUMENT_NODEr0r*)r1rrstackn1n2rno1no2rrs           rassert_recursive_equalz"MinidomTest.assert_recursive_equalst
YY[FBR[["++6S/R]]1CDR[["++6R]]2./R]]2./{{d555BKK BKK BLL!BLL!  R[[!13r{{3CD  R\\!2C4EFs2<<01-A,,++A.C,,++A.C$$SXXsxx8$$S\\3<<@$$S\\3<<@LL#s,-s2;;/0+A))!,B))!,B$$R__booF$$R[["++>$$R[["++>LL"b*
+{{d000 0 0 ; ;C @A 0 0 ; ;D AB3r}}-.
CbmmA.

a0@AB
CArctt}tdtjdzD]?}tj
||}tj|}|j||Ay)Nrcrd)rsamplerpickleHIGHEST_PROTOCOLdumpsloadsr)r1rprotor8rs     rtestPickledDocumentzMinidomTest.testPickledDocumentDsZ&!1f559:	3ES%(A<<?D''T2	3rcptt}tj|}|j	||yr/)rrcopydeepcopyrrs   rtestDeepcopiedDocumentz"MinidomTest.testDeepcopiedDocumentKs*&!}}S!##C.rct}|j|jd|jt|j
y)Nzfoo--bar)rr}rr
ValueErrorror>s  r(testSerializeCommentNodeWithDoubleHyphenz4MinidomTest.testSerializeCommentNodeWithDoubleHyphenPs5(*))*56*cii0rctd}t|j}|j|jtj
jk(y)Nz$<element xmlns=''>
<foo/>
</element>)rror4rOrrr;rs   rtestEmptyXMLNSValuezMinidomTest.testEmptyXMLNSValueVsB/0399;'T&&#''*A*AABrcz|jttf5tddddy#1swYyxYw)NzE<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>)rrr
rrs r!testExceptionOnSpacesInXMLNSValuez-MinidomTest.testExceptionOnSpacesInXMLNSValue\s7



J7
8	(
			s1:ctt}|jjdd}|j	t
jj|j|t|j}|j|jdt|j}|j||dz
k(y)NTITLErrd)rrDr]r\rrrrr[rkrhr0)r1r	title_tagnum_children_beforenum_children_afters     rtestDocRemoveChildzMinidomTest.testDocRemoveChildcsGn''<<WEaH	377..K!#..1q)* 0*.AA.EEFrcTtt}|jdd}d|_y)NrVrWcrash)rrDrZr)r1rr<s   r"testProcessingInstructionNameErrorz.MinidomTest.testProcessingInstructionNameErrorls&Gn

,
,S#
6rcd}t|}tj}|j||j	|j|yNE<?xml version="1.0" ?><curriculum status="public" company="example"/>)rioStringIOwritexmlrSgetvalue)r1xml_strroutputs    rtest_minidom_attribute_orderz(MinidomTest.test_minidom_attribute_orderss?Y'"V*G4rc^d}t|}|j|j|yr)rrSror1rrs   r"test_toxml_with_attributes_orderedz.MinidomTest.test_toxml_with_attributes_orderedzs'Y'"g.rc^d}t|}|j|jdy)NrzG<?xml version="1.0" ?>
<curriculum status="public" company="example"/>
rrSr'rs   r(test_toprettyxml_with_attributes_orderedz4MinidomTest.test_toprettyxml_with_attributes_ordereds/Y'"*M	Nrc^d}t|}|j|jdy)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_cdatas-W'"*%	&rcd}t|}|j|jddjdt|j	}|j|jddjdy)Nrr7rz</data>)rr:r\rmr')r1rdom1rs    rtest_cdata_parsingzMinidomTest.test_cdata_parsingspW7#D55f=a@KKYW4++-.D55f=a@KKYWrN)Test)rrrr4r:r?rIrLrWrYr_rvrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr#r)r.r1r4r=r?rArCrErIrKrMrOrQrSrUrWrYr[r]rdrirkrmrorqrsrurwryr{r}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
rrrrrr!r$r,r2r5rr@rFrMrOrRr^r`rfrmrur}rrrrrrrrrrrrrrrrrr-r-6s(B*
4464)V+"*"))

*		$1$L


<)
)
="%$:L	EI
@2 !'()#$%&$&K9'&++0$'.03""/?(

AC2 4DF
0I
P
C@**MC@+52-(^+2*$$(*<~B

. 0:KZ)V"+HC/:@B>"H"H#CJ3/
1CG5/
N&Xrr-__main__r/)rrrr2runittestxml.dom.minidomrrrrrrr	xml.parsers.expatr
findfilerDrrr&r+TestCaser-rmainrrr<module>rs
	DD0('

:m
<7G ^X(##^X@3zHMMOr