
    0hh                       S SK r S SKrS SKrS SKJr  S SKrS SKrS SKJrJ	r	J
r
JrJr  S SKJr  S SKJr  \R                   " SSS9rS	rSS
 jrS rS r " S S\R,                  5      r\S:X  a  \R2                  " 5         gg)    N)support)parseAttrNodeDocumentparseString)getDOMImplementation)
ExpatErrorztest.xmlxmltestdata)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>c                 8    [        5       R                  S SU 5      $ )Ndoc)r	   createDocument)doctypes    :/opt/python-3.13.8/usr/lib/python3.13/test/test_minidom.pycreate_doc_without_doctyper      s    !00ugFF    c                     [        5       R                  SS S 5      n / U R                  l        / U R                  l        [
        R                  R                  R                  SS S5      nU R                  R                  R                  U5        [
        R                  R                  R                  SS SS5      nSUl        SUl        SUl        U R                  R                  R                  U5        U $ )	Nr   zmy-notationz"http://xml.python.org/notations/myz	my-entityz!http://xml.python.org/entities/myz1.0utf-8us-ascii)r	   createDocumentTypeentities_seq	notationsxmldomminidomNotationappendEntityversionencodingactualEncoding)r   notationentitys      r   create_nonempty_doctyper&      s    "$77tTJGGGww''t(LNH!!(+WW__##K$G$13F FNFO&F  (Nr   c                      [        5       n [        U 5      nXR                  R                  S5      l        XR
                  R                  S5      l        U$ Nr   )r&   r   r   itemownerDocumentr   )r   r   s     r   create_doc_with_doctyper+   /   sG    %'G
$W
-C-0!*.11+Jr   c                   z   \ rS rSrSS jrS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$ r&S% r'S& r(S' r)S( r*S) r+S* r,S+ r-S, r.S- r/S. r0S/ r1S0 r2S1 r3S2 r4S3 r5S4 r6S5 r7S6 r8S7 r9S8 r:S9 r;S: r<S; r=S< r>S= r?S> r@S? rAS@ rBSA rCSB rDSC rESD rFSE rGSF rHSG rISH rJSI rKSJ rLSK rMSL rNSM rOSN rPSO rQSP rRSQ rSSR rTSS rUST rVSU rWSV rXSW rYSX rZSY r[SZ r\S[ r]S\ r^S] r_S^ r`S_ raS` rbSa rcSb rdSc reSd rfSe rgSf rhSg riSh rjSi rkSj rlSk rmSl rnSm roSn rpSo rqSp rrSq rsSr rtSs ruSt rvSu rw " Sv Sw5      rxSx rySy rzSz r{S{ r|S| r}S} r~S~ rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rSrg)MinidomTest6   c                 &    U R                  X5        g N)
assertTrue)selftesttestnames      r   confirmMinidomTest.confirm7   s    'r   c                 P    UR                   nU R                  X2SU< SU< 35        g )Nzlooking for z, found )	wholeTextassertEqual)r2   nodests       r   checkWholeTextMinidomTest.checkWholeText:   s"    NNAQBCr   c                     [        5       nU R                  UR                  5        U R                  [         R                  5        g r0   )r   assertFalseasync_r2   r   s     r   testDocumentAsyncAttr!MinidomTest.testDocumentAsyncAttr>   s-    j$)r   c                     [        [        S5       n[        U5      nUR                  5         U R	                  U[
        5        S S S 5        g ! , (       d  f       g = f)Nrbopentstfiler   unlinkassertIsInstancer   r2   filer   s      r   testParseFromBinaryFile#MinidomTest.testParseFromBinaryFileC   s<    '4 D+CJJL!!#x0 !  s   2A
Ac                     [        [        SSS9 n[        U5      nUR                  5         U R	                  U[
        5        S S S 5        g ! , (       d  f       g = f)Nrz
iso-8859-1)r"   rG   rL   s      r   testParseFromTextFile!MinidomTest.testParseFromTextFileI   s>    '36$+CJJL!!#x0 766s   2A
Ac                     [        SSSS5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  S5        g )NqNamenamespaceURI	localNameprefixr   r9   namerV   rX   rW   r2   attrs     r   testAttrModeSetsParamsAsAttrs)MinidomTest.testAttrModeSetsParamsAsAttrsO   sd    G^[(CG,**N;h/5r   c                    [        SSS S5      nU R                  UR                  S5        U R                  UR                  S5        U R                  UR                  S5        U R                  UR
                  UR                  5        g )NrU   rV   rX   rY   r[   s     r    testAttrModeSetsNonOptionalAttrs,MinidomTest.testAttrModeSetsNonOptionalAttrsV   sh    G^T8<G,**N;h/3r   c                     [        [        5      nU R                  UR                  S5      UR                  R                  S5      5        UR                  5         g )NLI)r   rI   r9   getElementsByTagNamedocumentElementrJ   r2   r   s     r   testGetElementsByTagName$MinidomTest.testGetElementsByTagName]   sD    Gn11$7##88>	@

r   c                    [        S5      nUR                  nUR                  S   nUR                  S5      nUR	                  XC5        U R                  [        UR                  5      S5        U R                  UR                  R                  S5        U R                  UR                  S   U5        U R                  UR                  R                  S5      U5        U R                  UR                  S   U5        U R                  UR                  R                  S5      U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  5       S5        UR                  S5      nUR	                  US 5        U R                  [        UR                  5      S5        U R                  UR                  R                  S5        U R                  UR                  S   U5        U R                  UR                  R                  S5      U5        U R                  UR                  S   U5        U R                  UR                  R                  S5      U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  5       S5        UR                  S	5      nUR	                  XT5        U R                  [        UR                  5      S
5        U R                  UR                  R                  S
5        U R                  UR                  S   U5        U R                  UR                  R                  S5      U5        U R                  UR                  S   U5        U R                  UR                  R                  S5      U5        U R                  UR                  U5        U R                  UR                  U5        U R                  UR                  5       S5        UR                  5         g )N<doc><foo/></doc>r   element      z<doc><element/><foo/></doc>   z%<doc><element/><foo/><element/></doc>bar   z+<doc><element/><foo/><bar/><element/></doc>)r   re   
childNodescreateElementinsertBeforer9   lenlengthassertIsr)   
firstChild	lastChildtoxmlpreviousSiblingnextSiblingrJ   )r2   r   rootelemnelemnelem2s         r   testInsertBeforeMinidomTest.testInsertBeforec   s   -.""q!!!),%&T__-q1//3dooa(%0doo**1-u5dooa($/doo**1-t4doou-dnnd+'DE!!),%&T__-q1//3dooa($/doo**1-t4dooa(%0doo**1-u5dnne,e++T2'NO""5)&(T__-q1//3dooa(&1doo**1-v6dooa(%0doo**1-u5f((%0e++V4F	H

r   c                 f   [        S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  R                  U5        UR	                  5       nUR                  U5        UR                  U5        UR                  U5        XX4XV4$ )N<doc/>originalfooro   bat)r   createTextNodere   appendChildcreateDocumentFragmentr2   r   origc1c2c3frags          r   _create_fragment_test_nodes'MinidomTest._create_fragment_test_nodes   s    (#!!*-&&&''-))+""**r   c                 
   U R                  5       u  pp4pVUR                  R                  US 5        U R                  [	        UR                  R
                  5      X#XE4S5        UR                  5         UR                  5         U R                  5       u  pp4pVUR                  R                  Xb5        U R                  [	        UR                  R
                  5      X4XR4S5        UR                  5         UR                  5         g )NzinsertBefore(<fragment>, None)zinsertBefore(<fragment>, orig))r   re   rs   assertTupleEqualtuplerq   rJ   r   s          r   testInsertBeforeFragment$MinidomTest.testInsertBeforeFragment   s    &*&F&F&H#22((t4eC$7$7$B$BC'5	7 	

&*&F&F&H#22((4eC$7$7$B$BCb'5	7 	

r   c                 b   [        [        5      nUR                  R                  UR	                  S5      5        U R                  UR                  R                  S   R                  S5        U R                  UR                  R                  S   R                  S5        UR                  5         g )NHelloz#comment)
r   rI   re   r   createCommentr9   rq   nodeNamedatarJ   rf   s     r   testAppendChildMinidomTest.testAppendChild   s    Gn''(9(9'(BC,,77;DDjQ,,77;@@'J

r   c                    U R                  5       u  pp4pVUR                  R                  U5        U R                  [	        UR                  R
                  5      X#XE4S5        UR                  5         UR                  5         g )NzappendChild(<fragment>))r   re   r   r   r   rq   rJ   r   s          r   testAppendChildFragment#MinidomTest.testAppendChildFragment   sk    &*&F&F&H#22''-eC$7$7$B$BC'.	0 	

r   c                 &   U R                  5       u  pp4pVUR                  R                  Xb5        UR                  5         U R	                  [        UR                  R                  5      X4U4S5        UR                  5         UR                  5         g )NzreplaceChild(<fragment>))r   re   replaceChildrJ   r   r   rq   r   s          r   testReplaceChildFragment$MinidomTest.testReplaceChildFragment   sp    &*&F&F&H#22((4eC$7$7$B$BCbb\*	,

r   c                    [        5       nUR                  S5      nUR                  S5      nU R                  [        R
                  R                  UR                  U5        UR                  U5        U R                  [        R
                  R                  UR                  UU5        U R                  [        R
                  R                  UR                  UU5        UR                  nU R                  [        R
                  R                  UR                  U5        U R                  [        R
                  R                  UR                  U5        UR                  U5        UR                  5         g )Nrk   text)r   rr   r   assertRaisesr   r   HierarchyRequestErrr   rs   r   
attributessetNamedItemsetNamedItemNSrJ   )r2   r   r}   r   nodemaps        r   testLegalChildrenMinidomTest.testLegalChildren   s   j  +!!&)#''55sM#''55s7G7G	 #''55s7G7G	  //#''55w7K7K	 #''55w7M7M	  	

r   c                    [        5       nUR                  S5      nUR                  nSUS'   UR                  S5      nU R	                  UR
                  US5        U R	                  UR                  US5        U R                  UR                  SS5        U R                  UR                  SS5        UR                  5         UR                  5         g )	Nrk   ro   r   r   z-NamedNodeMap.__setitem__() sets ownerDocumentz,NamedNodeMap.__setitem__() sets ownerElementz%NamedNodeMap.__setitem__() sets valuez)NamedNodeMap.__setitem__() sets nodeValue)r   rr   r   r)   rv   r*   ownerElementr9   value	nodeValuerJ   )r2   r   r}   attrsas        r   testNamedNodeMapSetItem#MinidomTest.testNamedNodeMapSetItem   s    j  +eJJqMaoos?	Aannd>	@%7	9e;	=

r   c                     [        [        5      nU R                  U5        UR                  UR	                  S5      5        U R                  UR                  S   R                  5        UR                  5         g )Nr   r   )r   rI   r1   r   r   r@   rq   rJ   rf   s     r   testNonZeroMinidomTest.testNonZero   sT    Gn))%01+667

r   c                     [        [        5      nU R                  UR                  5        UR	                  5         U R                  UR                  5        g r0   )r   rI   r1   rq   rJ   r@   rf   s     r   
testUnlinkMinidomTest.testUnlink   s6    Gn'

(r   c                     [        [        5       nU R                  UR                  5        S S S 5        U R	                  WR                  5        g ! , (       d  f       N*= fr0   )r   rI   r1   rq   r@   rf   s     r   testContextMinidomTest.testContext   s:    7^sOOCNN+ ( ^s   A
Ac                     [        5       nUR                  UR                  S5      5        U R                  UR                  5        UR                  5         g Nabc)r   r   rr   r1   re   rJ   rf   s     r   testElementMinidomTest.testElement   s;    j))%01++,

r   c                 b   [        S5      nUR                  nUR                  SS5        U R                  UR	                  5       SS5        UR                  S5      nU R                  UR                  US5        U R                  UR                  UR                  S5        UR                  5         g )N<abc/>spamjam2<abc spam="jam2"/>testAAAz!setAttribute() sets ownerDocumentz setAttribute() sets ownerElement)
r   re   setAttributer9   ry   getAttributeNoderv   r*   r   rJ   )r2   r   elr   s       r   r   MinidomTest.testAAA   s    (#  
'%99E'aoos3	5annc&9&92	4

r   c                     [        S5      nUR                  nUR                  SS5        UR                  SS5        U R                  UR	                  5       SS5        UR                  5         g )Nr   r   jamr   r   testAAB)r   re   r   r9   ry   rJ   r2   r   r   s      r   r   MinidomTest.testAAB  sU    (#  
&
'%99E

r   c                 4   [        5       nUR                  UR                  S5      5      nUR                  SS5        U R	                  UR                  S5      S5        U R	                  UR                  S   R                  S5        UR                  SS5        U R	                  UR                  S5      S5        U R	                  UR                  S   R                  S5        U R	                  [        UR                  5      S5        UR                  SS5        U R	                  UR                  S5      S5        U R	                  UR                  S   R                  S5        U R	                  [        UR                  5      S5        UR                  5         g )Nr   defghijklmnorl   newval)
r   r   rr   r   r9   getAttributer   r   rt   rJ   r2   r   childs      r   testAddAttrMinidomTest.testAddAttr  sE   j 1 1% 895%(++E2E:))%066>5%(++E2E:))%066>U--.25(+++E2H=))%066AU--.2

r   c                    [        5       nUR                  UR                  S5      5      nU R                  [	        UR
                  5      S5        UR                  SS5        U R                  [	        UR
                  5      S5        UR
                  S	 U R                  [	        UR
                  5      S5        UR                  5         g )Nr   r   r   r   rm   )r   r   rr   r9   rt   r   r   rJ   r   s      r   testDeleteAttrMinidomTest.testDeleteAttr)  s    j 1 1% 89U--.25%(U--.2U#U--.2

r   c                    [        5       nUR                  UR                  S5      5      nUR                  SS5        U R	                  [        UR                  5      S5        U R                  [        R                  R                  UR                  S5        UR                  S5        U R	                  [        UR                  5      S5        UR                  5         g )Nr   r   r   rm   r   r   )r   r   rr   r   r9   rt   r   r   r   r   NotFoundErrremoveAttributerJ   r   s      r   testRemoveAttrMinidomTest.testRemoveAttr4  s    j 1 1% 895%(U--.2#''--u/D/DeLe$U--.2

r   c                    [        5       nUR                  UR                  SS5      5      nUR                  SSS5        UR                  SSS5        U R	                  [
        R                  R                  UR                  SS5        U R                  [        UR                  5      S5        UR                  SS5        U R                  [        UR                  5      S	5        UR                  5         g )
Nhttp://www.python.org
python:abchttp://www.w3.orgxmlns:pythonzpython:abcattrr   rl   abcattrrm   )r   r   createElementNSsetAttributeNSr   r   r   r   removeAttributeNSr9   rt   r   rJ   r   s      r   testRemoveAttrNSMinidomTest.testRemoveAttrNS?  s    j##$;\JL0.0G	I46FN#''--u/F/F*	,U--.2 7CU--.2

r   c                    [        5       nUR                  UR                  S5      5      nUR                  SS5        U R	                  [        UR                  5      S5        UR                  S5      nU R                  [        R                  R                  UR                  S 5        U R                  X2R                  U5      5        U R	                  [        UR                  5      S5        U R                  UR                  S5      5        [        5       nUR                  UR                  S5      5      nUR                  S5      nU R                  [        R                  R                  UR                  U5        UR                  5         g )Nr   r   r   rm   r   )r   r   rr   r   r9   rt   r   r   r   r   r   r   removeAttributeNoderv   assertIsNonerJ   )r2   r   r   r:   dom2child2node2s          r   testRemoveAttributeNode#MinidomTest.testRemoveAttributeNodeM  s-   j 1 1% 8965)U--.2%%f-#''--u/H/H	d55d;<U--.2%0089z!!$"4"4U";<''/#''--v/I/I	

r   c                     [        5       nUR                  UR                  S5      5      nUR                  SS5        U R	                  UR                  S5      5        g )Nr   r   r   )r   r   rr   r   r1   hasAttributer   s      r   testHasAttributeMinidomTest.testHasAttribute_  sI    j 1 1% 8965)**623r   c                    [        S5      nUR                  nUR                  SS5        U R                  [	        UR
                  5      S5        UR                  SS5        UR                  S5        U R                  [	        UR
                  5      S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR                  S5      S5        U R                  UR                  S5      R                  5        SUR
                  S'   U R                  [	        UR
                  5      S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR                  S5      S5        U R                  UR
                  S   R                  5        UR                  SS5        U R                  [	        UR
                  5      S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR                  S5      S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR                  S5      S5        S	UR
                  S'   U R                  [	        UR
                  5      S5        U R                  UR
                  S   R                  S5        U R                  UR
                  S   R                  S5        U R                  UR                  S5      S5        U R                  UR
                  S   R                  S	5        U R                  UR
                  S   R                  S	5        U R                  UR                  S5      S	5        UR                  5         g )
Nr   r   r   rm   bamhamspam2rl   bam2)r   re   r   r9   rt   r   setIdAttributer   r   r   r1   r   isIdrJ   r   s      r   testChangeAttrMinidomTest.testChangeAttre  s5   (#  
&R]]+Q/
& 	&!R]]+Q/v.44e<v.88%@0%8++F3889 %fR]]+Q/v.44e<v.88%@0%8f-223
'R]]+Q/v.44e<v.88%@0%8w/55u=w/995A159!'gR]]+Q/v.44e<v.88%@0%8w/55v>w/996B16:

r   c                    [        S5      nU R                  UR                  5        UR                  nUR	                  SS5        U R                  [        UR                  R                  5       5      S5        UR	                  SS5        UR                  R                  5       nU R                  [        U5      S5        U R                  SU5        U R                  S	U5        g )
Nr   r   r   rm   r   ro   rl   )r   r   )r   ro   )
r   
addCleanuprJ   re   r   r9   rt   r   itemsassertIn)r2   r   r   r
  s       r   testGetAttrListMinidomTest.testGetAttrList  s    (#

#  
&R]]0023Q7
u%##%UQ'ou-ne,r   c                    [        S5      nU R                  UR                  5        UR                  nUR	                  SS5        UR
                  R                  5        Vs/ s H  o3R                  PM     nnU R                  SU5        UR	                  SS5        UR
                  R                  5        Vs/ s H  o3R                  PM     nnU R                  SU5        U R                  SU5        g s  snf s  snf )Nr   r   r   r   ro   )	r   r	  rJ   re   r   r   valuesr   r  )r2   r   r   xr  s        r   testGetAttrValuesMinidomTest.testGetAttrValues  s    (#

#  
&#%==#7#7#9:#9a''#9:eV$
u%#%==#7#7#9:#9a''#9:eV$eV$ ; ;s   !C48C9c                     [        5       nUR                  UR                  SS5      5      nU R                  UR	                  S5      S5        g )Nr   r   missing )r   r   r   r9   r   r   s      r   testGetAttributeMinidomTest.testGetAttribute  sD    j 7FH++I6;r   c                    [        5       nUR                  UR                  SS5      5      nUR                  SSS5        U R	                  UR                  SS5      S5        U R	                  UR                  SS5      S5        UR                  UR                  S5      5      nU R	                  UR                  SS	5      S5        g )
Nr   r   r   r   pythonotherr  r   r  )r   r   r   r   r9   getAttributeNSrr   )r2   r   r   r   s       r   testGetAttributeNSMinidomTest.testGetAttributeNS  s    j##$;\JL0.0G	I--.A8L#	%--.A7K	""3#4#4U#;<../F	R	r   c                     g r0    r2   s    r   testGetAttributeNode MinidomTest.testGetAttributeNode  s    Dr   c                    Sn[        U5      nUR                  SS5      nU R                  [        U5      S5        U R                  US   R                  S5        U R                  US   R
                  S5        U R                  US   R                  S5        U R                  US   R                  S5        U R                  US   R                  S5        UR                  5         g )NzZ<foo xmlns:minidom='http://pyxml.sf.net/minidom'>
        <minidom:myelem/>
        </foo>zhttp://pyxml.sf.net/minidommyelemrm   r   r   zminidom:myelem)
r   getElementsByTagNameNSr9   rt   rV   rW   rX   tagNamer   rJ   )r2   dr   elemss       r   testGetElementsByTagNameNS&MinidomTest.testGetElementsByTagNameNS  s     !n**+H+35UQ'q..0MNq++X6q)4q))+;<q**,<=

r   c                 \    UR                  X#5      nU R                  [        U5      S5        g r(   )r%  r9   rt   )r2   r   nsurilnamenodelists        r   5get_empty_nodelist_from_elements_by_tagName_ns_helperAMinidomTest.get_empty_nodelist_from_elements_by_tagName_ns_helper  s&    --e;X*r   c                    [        S5      nU R                  USS5        U R                  USS5        U R                  USS5        [        S5      nU R                  USS5        U R                  USS5        U R                  US	S
5        g )Nr   z"http://xml.python.org/namespaces/a	localname*splatz3<doc xmlns="http://xml.python.org/splat"><e/></doc>zhttp://xml.python.org/splatz	not-therez#http://somewhere.else.net/not-theree)r   r/  rB   s     r   +testGetEmptyNodeListFromElementsByTagNameNS7MinidomTest.testGetEmptyNodeListFromElementsByTagNameNS  s    (#BB5{	DBBg	BB5s	< OPBB.	=BBk	#BB6	=r   c                     [        5       nUR                  UR                  S5      5      n[        U5      n[	        U5      nU R                  X45        UR                  5         g r   r   r   rr   reprstrr9   rJ   r2   r   r   string1string2s        r   testElementReprAndStr!MinidomTest.testElementReprAndStr  K    j__S..u56r(b'*

r   c                     [        5       nUR                  UR                  S5      5      n[        U5      n[	        U5      nU R                  X45        UR                  5         g r   r9  r<  s        r   testElementReprAndStrUnicode(MinidomTest.testElementReprAndStrUnicode  rA  r   c                     [        5       nUR                  UR                  SS5      5      n[        U5      n[	        U5      nU R                  X45        U R                  SU5        UR                  5         g )Nzhttp://www.slashdot.orgz	slash:abc)r   r   r   r:  r;  r9   r  rJ   r<  s        r   testElementReprAndStrUnicodeNS*MinidomTest.testElementReprAndStrUnicodeNS  s`    j__ 9;GIr(b'*k7+

r   c                     [        5       nUR                  UR                  S5      5      nUR                  SS5      nU R	                  [        U5      [        U5      5        UR                  5         g )Nr   r   )r   r   rr   r   r9   r;  r:  rJ   )r2   r   r   r:   s       r   testAttributeReprMinidomTest.testAttributeRepr  sS    j__S..u56ue,TDJ/

r   c                     Sn[        U5      nUR                  5       nUR                  5         U R                  X5        g )Nz <?xml version="1.0" ?><a b="c"/>)r   ry   rJ   r9   r2   r;  r   domstrs       r   testWriteXMLMinidomTest.testWriteXML   s3    0#

%r   c                    [        5       nUR                  UR                  S5      5      nUR                  UR                  S5      5        UR                  UR                  S5      5      nUR                  UR                  S5      5        UR                  UR                  S5      5      nUR                  UR                  S5      5        UR                  UR                  S5      5      nUR                  UR                  S5      5        UR                  UR                  S	5      5      nUR                  UR                  S
5      5        UR	                  5       nUR                  5         U R                  US5        g )Nr}   &<>"crcrlf
lflf

ws	
 zf<?xml version="1.0" ?><elem>&amp;&lt;&gt;"<cr></cr><crlf>
</crlf><lflf>

</lflf><ws>	
 </ws></elem>)r   r   rr   r   ry   rJ   r9   )r2   r   r}   rR  rT  rV  rX  rM  s           r   test_toxml_quote_text!MinidomTest.test_toxml_quote_text  s0   js0089++F34c//56
s))$/0 1 1& 9:++F34 1 1& 9:++F34c//56
s)))45

 "* 	+r   c                    [        5       nUR                  UR                  S5      5      nUR                  SS5        UR                  SS5        UR                  SS5        UR                  SS	5        UR                  S
S5        UR                  SS5        UR	                  5       nUR                  5         U R                  US5        g )Nr}   r   rQ  rR  rS  lf
rT  rU  rV  rW  rX  rY  z<?xml version="1.0" ?><elem a="&amp;&lt;&gt;&quot;" cr="&#13;" lf="&#10;" crlf="&#13;&#10;" lflf="&#10;&#10;" ws="&#9;&#10;&#13; "/>)r   r   rr   r   ry   rJ   r9   )r2   r   r}   rM  s       r   test_toxml_quote_attrib#MinidomTest.test_toxml_quote_attrib  s    js0089#v&$%$%&&)&&)$	*

 ") 	*r   c                     Sn[        U5      nUR                  SS9nUR                  5         U R                  X1R	                  SS5      5        g )Nz"<?xml version="1.0" ?>
<a b="c"/>
rU  )newlr^  )r   toprettyxmlrJ   r9   replacerL  s       r   testAltNewlineMinidomTest.testAltNewline/  sC    4#f-

T6!:;r   c                    SnU R                  [        S5      R                  5       US-   5        U R                  [        S5      R                  5       US-   5        U R                  [        S5      R                  5       US-   5        U R                  [        S5      R                  5       US	-   5        U R                  [        S
5      R                  5       US-   5        g )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>
)r9   r   rc  )r2   decls     r    test_toprettyxml_with_text_nodes,MinidomTest.test_toprettyxml_with_text_nodes6  s    )Z0<<>,	.%78DDF >>	@%78DDF >>	@%>?KKM EE	G%?@LLN JJ	Lr   c                 &   [        5       nUR                  S5      nUR                  UR                  S5      5        UR                  UR                  S5      5        UR                  U5        SnU R	                  UR                  5       US-   5        g )Nr}   TEXTrh  z<elem>
	TEXT
	TEXT
</elem>
)r   rr   r   r   r9   rc  )r2   r   r}   rj  s       r   )test_toprettyxml_with_adjacent_text_nodes5MinidomTest.test_toprettyxml_with_adjacent_text_nodesD  s}    j  (++F34++F34)* CC	Er   c                 6   S H  n[        U5      n[        UR                  5       5      nU R                  UR                  S5      S   R                  S   R                  5       UR                  S5      S   R                  S   R                  5       5        M     g )N)ri  z<A><B>C</B></A>Br   )r   rc  r9   rd   rq   ry   )r2   r;  r   r   s       r   /test_toprettyxml_preserves_content_of_text_node;MinidomTest.test_toprettyxml_preserves_content_of_text_nodeO  s    2Cc"Cs01D((-a0;;A>DDF))#.q1<<Q?EEGI 3r   c                 
   [        S5      nUR                  R                  nU R                  UR                  S5        U R                  UR
                  S5        U R                  UR                  S5        U R                  UR                  [        R                  5        U R                  UR                  5        U R                  UR                  5       5        U R                  [        UR                  5      S5        U R                  UR                  5        U R                  UR                   5        U R                  UR"                  5        U R                  UR$                  [&        R(                  R*                  5        g )N<e><?mypi 	
 data 	
 ?></e>mypizdata 	
 r   )r   re   rw   r9   targetr   r   nodeTyper   PROCESSING_INSTRUCTION_NODEr   r   r@   hasChildNodesrt   rq   rx   rW   rV   r   r   EMPTY_NAMESPACEr2   r   pis      r   testProcessingInstruction%MinidomTest.testProcessingInstructionX  s
   ;<  ++F+,/f-d&F&FG"--())+,R]]+Q/"--(",,'",,'#''*A*ABr   c                     [        S5      nUR                  R                  nU R                  [	        UR
                  5      [        UR
                  5      5        g )Nrv  )r   re   rw   r9   r;  ry  r:  r}  s      r   testProcessingInstructionRepr)MinidomTest.testProcessingInstructionReprg  s@    ;<  ++R[[)4+<=r   c                 F   [        5       nU R                  UR                  5        UR                  S5      nUR	                  UR                  S5      5        UR                  nU R                  [        U5      [        U5      5        U R                  S[        U5      5        g )Nr}   r   z<DOM Text node "'foo'">)
r   r	  rJ   rr   r   r   rw   r9   r;  r:  )r2   r   r}   r   s       r   testTextReprMinidomTest.testTextReprl  sx    j

#  (++E23__R$r(+4c"g>r   c                     g r0   r  r   s    r   testWriteTextMinidomTest.testWriteTextu  s    Tr   c                     g r0   r  r   s    r   testDocumentElementMinidomTest.testDocumentElementw      4r   c                     [        S5      nUR                  S5      nU R                  [        R                  R
                  UR                  U5        UR                  5         UR                  5         g )Nr   extra)r   rr   r   r   r   r   r   rJ   r2   r   r}   s      r   testTooManyDocumentElements'MinidomTest.testTooManyDocumentElementsy  sN    (#  )#''55sM

r   c                     g r0   r  r   s    r   testCreateElementNSMinidomTest.testCreateElementNS  r  r   c                     g r0   r  r   s    r   testCreateAttributeNS!MinidomTest.testCreateAttributeNS  s    Tr   c                     g r0   r  r   s    r   	testParseMinidomTest.testParse  s    r   c                     g r0   r  r   s    r   testParseStringMinidomTest.testParseString  s    tr   c                     g r0   r  r   s    r   testCommentMinidomTest.testComment  s    4r   c                     g r0   r  r   s    r   testAttrListItemMinidomTest.testAttrListItem      r   c                     g r0   r  r   s    r   testAttrListItemsMinidomTest.testAttrListItems  s    r   c                     g r0   r  r   s    r   testAttrListItemNSMinidomTest.testAttrListItemNS      $r   c                     g r0   r  r   s    r   testAttrListKeysMinidomTest.testAttrListKeys  r  r   c                     g r0   r  r   s    r   testAttrListKeysNSMinidomTest.testAttrListKeysNS  r  r   c                 8   [        S5      nUR                  nUR                  nUR                  S5      nUR	                  S5      nU R                  UR                  U5      5        U R                  [        R                  R                  UR                  S5        g )Nz<doc a=''/>r   )r   re   r   r   removeNamedItemr1   
isSameNoder   r   r   r   r2   r   r5  r   a1a2s         r   testRemoveNamedItemMinidomTest.testRemoveNamedItem  sw    -($""3'b)*#''--u/D/DcJr   c                 >   [        S5      nUR                  nUR                  nUR                  SS5      nUR	                  SS5      nU R                  UR                  U5      5        U R                  [        R                  R                  UR                  SS5        g )Nz.<doc xmlns:a='http://xml.python.org/' a:b=''/>zhttp://xml.python.org/b)r   re   r   getAttributeNodeNSremoveNamedItemNSr1   r  r   r   r   r   r  s         r   testRemoveNamedItemNS!MinidomTest.testRemoveNamedItemNS  s    JK!!":C@$$%=sCb)*#''--u/F/F2C	9r   c                     g r0   r  r   s    r   testAttrListValuesMinidomTest.testAttrListValues  r  r   c                     g r0   r  r   s    r   testAttrListLengthMinidomTest.testAttrListLength  r  r   c                     g r0   r  r   s    r   testAttrList__getitem__#MinidomTest.testAttrList__getitem__      tr   c                     g r0   r  r   s    r   testAttrList__setitem__#MinidomTest.testAttrList__setitem__  r  r   c                     g r0   r  r   s    r   testSetAttrValueandNodeValue(MinidomTest.testSetAttrValueandNodeValue      Dr   c                     g r0   r  r   s    r   testParseElementMinidomTest.testParseElement  r  r   c                     g r0   r  r   s    r   testParseAttributesMinidomTest.testParseAttributes  r  r   c                     g r0   r  r   s    r   testParseElementNamespaces&MinidomTest.testParseElementNamespaces  s    $r   c                     g r0   r  r   s    r   testParseAttributeNamespaces(MinidomTest.testParseAttributeNamespaces  r  r   c                     g r0   r  r   s    r   testParseProcessingInstructions+MinidomTest.testParseProcessingInstructions  s    tr   c                     g r0   r  r   s    r   testChildNodesMinidomTest.testChildNodes      dr   c                     g r0   r  r   s    r   testFirstChildMinidomTest.testFirstChild  r  r   c                     [        S5      nUR                  nU R                  UR                  5       5        [        S5      nUR                  nU R	                  UR                  5       5        g )Nrj   r   )r   re   r1   r{  r@   )r2   r   r   r   doc2s        r   testHasChildNodesMinidomTest.testHasChildNodes  sY    -.!!))+,8$##++-.r   c                    UR                   nUR                   n[        UR                  5       5      n[        UR                  5       5      nUR                  5         UR                  5         U R	                  Xg5        [        [        U5      5       H  nUR                  U5      n	UR                  U5      n
U R                  X5        U R	                  U	R                  U
R                  5        U R	                  U	R                  U
R                  5        U R	                  U	R                  U
R                  5        U R	                  U	R                  U
R                  5        U R                  U
R                  U5        M     g r0   )r   listkeyssortr9   rangert   r)   assertIsNotr   r   rV   rW   rv   r   )r2   e1e2r3   attrs1attrs2keys1keys2ir  r  s              r   !_testCloneElementCopiesAttributes-MinidomTest._testCloneElementCopiesAttributes  s   V[[]#V[[]#



&s5z"AQBQBR$RXXrxx0R\\2<<8R__R__=R\\2<<8MM"//2. #r   c                 
   [        S5      nUR                  nUR                  U5      nU R                  X4SU=(       a    S=(       d    S-   5        S=Ul        Ul        UR                  SS5        UR                  SS	5        X$4$ )
Nz<doc attr='value'><foo/></doc>testCloneElementDeepShallowMODIFIEDr\   z	NEW VALUEaddedVALUE)r   re   	cloneNoder  r&  r   r   )r2   deepr   r|   clones        r   _setupCloneElementMinidomTest._setupCloneElement  s    :;""t$..+t/K)L	N (21t}&+.'7+zr   c                 V   U R                  S5      u  pU R                  [        UR                  5      S5        U R                  UR                  R                  S5        U R                  UR                  5        U R                  UR                  5       S5        UR                  5         g )Nr   z<doc attr="value"/>)	r  r9   rt   rq   ru   r   
parentNodery   rJ   r2   r   r  s      r   testCloneElementShallow#MinidomTest.testCloneElementShallow  s    ,,Q/
U--.2))00!4%**+(=>

r   c                 V   U R                  S5      u  pU R                  [        UR                  5      S5        U R                  UR                  R                  S5        U R                  UR                  5        U R                  UR                  5       S5        UR                  5         g )Nrm   z<doc attr="value"><foo/></doc>)
r  r9   rt   rq   ru   r   r  r1   ry   rJ   r	  s      r   testCloneElementDeep MinidomTest.testCloneElementDeep  s}    ,,Q/
U--.2))00!4%**+'GH

r   c                 `    [        S5      nUR                  S5      nU R                  US5        g )N<?xml version='1.0'?>
<!-- comment --><!DOCTYPE doc [
<!NOTATION notation SYSTEM 'http://xml.python.org/'>
]>
<doc attr='value'/>r   zFtestCloneDocumentShallow: shallow cloning of documents makes no sense!)r   r  r   r2   r   r  s      r   testCloneDocumentShallow$MinidomTest.testCloneDocumentShallow  s8     * + }}Q$@	Ar   c                    [        S5      nUR                  S5      nU R                  UR                  U5      =(       d    UR                  U5      S5        U R	                  [        UR                  5      [        UR                  5      S5        U R	                  UR                  R                  [        R                  S5        U R                  UR                  R                  R                  U5      S5        U R                  UR                  R                  UR                  5      S5        UR                  b  U R	                  UR                  R                  [        R                  S5        U R                  UR                  R                  R                  U5      5        U R                  UR                  R                  UR                  5      5        g g )	Nr  rm   z4testCloneDocumentDeep: 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)r   r  r@   r  r9   rt   rq   re   ry  r   ELEMENT_NODEr1   r*   r   DOCUMENT_TYPE_NODEr  s      r   testCloneDocumentDeep!MinidomTest.testCloneDocumentDeep  sg    * + }}Q#...F$//#2FF	HS^^,c$//.BJ	L--668I8IL	N,,::EEdKN	P,,778L8LMM	O;;"T\\22D4K4KMOOODLL66AA$GHS[[33DLLAB #r   c                 B   [        5       nUR                  S5      nU R                  US L=(       Gam    UR                  UR                  :H  =(       GaL    UR                  UR                  :H  =(       Ga+    UR
                  UR
                  :H  =(       Ga
    UR                  UR                  :H  =(       a    [        UR                  5      [        UR                  5      :H  =(       a    UR                  R                  [        UR                  5      5      S L =(       a    [        UR                  5      [        UR                  5      :H  =(       aO    UR                  R                  [        UR                  5      5      S L =(       a    [        UR                  5      S:H  5        [        [        UR                  5      5       GH\  nUR                  R                  U5      nUR                  R                  U5      nU R                  UR                  U5      (       + =(       a    UR                  U5      (       + =(       a    UR                  UR                  :H  =(       a    UR                  UR                  :H  =(       a    UR
                  UR
                  :H  =(       ay    UR                  UR                  :H  =(       aY    UR                  UR                  :H  =(       a9    UR                   UR                   :H  =(       a    UR"                  UR"                  :H  5        GM_     [        [        UR                  5      5       H  nUR                  R                  U5      nUR                  R                  U5      nU R                  UR                  U5      (       + =(       av    UR                  U5      (       + =(       aY    UR                  UR                  :H  =(       a9    UR
                  UR
                  :H  =(       a    UR                  UR                  :H  5        M     g )Nrm   r   )r&   r  r5   r   rZ   publicIdsystemIdrt   r   r)   r   rq   r  r  notationNamer"   r#   r!   )r2   r   r  r  secesncns           r   testCloneDocumentTypeDeepOk'MinidomTest.testCloneDocumentTypeDeepOk  s   )+!!!$U$& 	/ 	/NNg&6&66	/ 	/JJ',,.	/ 	/ NNg&6&66	/ 	/ NNg&6&66		/
 '3w/?/?+@@	/ NN''ENN(;<D	/ (C0A0A,BB	/ OO((U__)=>$F	/ (()Q.		0 s7++,-A!!&&q)B$$Q'BLLbmmB// 1]]2..1r{{21 2??:1 r{{2	1
 r{{21 r{{21 ))R->->>1 

bjj02 . s7,,-.A""''*B%%a(BLLbmmB// 3]]2..3r{{23 r{{23 r{{2	4 /r   c                 p    [        5       nUR                  R                  S5      nU R                  U5        g Nrm   r+   r   r  r   r2   r   r  s      r   testCloneDocumentTypeDeepNotOk*MinidomTest.testCloneDocumentTypeDeepNotOk>  ,    %'%%a(% r   c                    [        5       nUR                  S5      nU R                  US L=(       Ga    UR                  UR                  :H  =(       a    UR                  UR                  :H  =(       a    UR
                  UR
                  :H  =(       a    UR                  UR                  :H  =(       a    [        UR                  5      S:H  =(       a    UR                  R                  S5      S L =(       a[    [        UR                  5      S:H  =(       a<    UR                  R                  S5      S L =(       a    [        UR                  5      S:H  5        g r(   )r&   r  r5   r   rZ   r  r  rt   r   r)   r   rq   )r2   r   r  s      r   testCloneDocumentTypeShallowOk*MinidomTest.testCloneDocumentTypeShallowOkC  s   )+!!!$U$& 	/ 	/NNg&6&66	/JJ',,.	/ NNg&6&66	/ NNg&6&66		/
 '1,	/ NN''*d2	/ (A-	/ OO((+t3	/ (()Q.		0r   c                 p    [        5       nUR                  R                  S5      nU R                  U5        g r(   r%  r&  s      r   !testCloneDocumentTypeShallowNotOk-MinidomTest.testCloneDocumentTypeShallowNotOkQ  r)  r   c                     [        S5      n[        S5      nU R                  [        R                  R                  UR
                  XA5        g )Nr   )r   r   r   r   NotSupportedErr
importNode)r2   r  testNamedoc1r  s        r   check_import_document!MinidomTest.check_import_documentV  s6    8$8$#''114??DOr   c                 (    U R                  SS5        g )Nr   testImportDocumentShallowr5  r   s    r   r8  %MinidomTest.testImportDocumentShallow[      ""1&ABr   c                 (    U R                  SS5        g )Nrm   testImportDocumentDeepr9  r   s    r   r=  "MinidomTest.testImportDocumentDeep^      ""1&>?r   c                     [        5       n[        5       nU R                  [        R                  R
                  UR                  UR                  S5        g r(   r+   r   r   r   r   r1  r2  r   r2   srcrx  s      r   testImportDocumentTypeShallow)MinidomTest.testImportDocumentTypeShallowa  =    %'+-#''1163D3D++q	*r   c                     [        5       n[        5       nU R                  [        R                  R
                  UR                  UR                  S5        g r$  rA  rB  s      r   testImportDocumentTypeDeep&MinidomTest.testImportDocumentTypeDeepg  rF  r   c                     [        S5      nUR                  R                  S5      nU R                  U5        UR	                  U5      nU R                  UR                  U5      5        U R                  UR                  U5      5        U R                  UR                  US-   5        U R                  UR                  R                  UR                  5      US-   5        U R                  UR                  US-   5        g )Nz<doc attr='value'/>r\   z: ownerElement should be Nonez: ownerDocument does not matchz.: cloned attribute must have specified == True)r   re   r   assertIsNotNoner  r@   r  r   r   r5   r*   	specified)r2   r  r3  r   r\   r  s         r   check_clone_attribute!MinidomTest.check_clone_attributeo  s    /0""33F;T"t$))$/0/0%,,::	<U((33D4F4FG;;	=U__KK	Mr   c                 (    U R                  SS5        g )Nr   testCloneAttributeShallowrM  r   s    r   rP  %MinidomTest.testCloneAttributeShallow}  r;  r   c                 (    U R                  SS5        g )Nrm   testCloneAttributeDeeprQ  r   s    r   rT  "MinidomTest.testCloneAttributeDeep  r?  r   c                 8   [        S5      nUR                  nU R                  UR                  [        R
                  5        UR                  U5      nU R                  UR                  UR                  :H  =(       a    UR                  UR                  :H  5        g )Nz<?target data?><doc/>)
r   rw   r9   ry  r   rz  r  r5   rx  r   )r2   r  r3  r   r~  r  s         r   check_clone_piMinidomTest.check_clone_pi  sn    12^^d&F&FGT"U\\RYY. *JJ"'')	+r   c                 (    U R                  SS5        g )Nr   testClonePIShallowrW  r   s    r   rZ  MinidomTest.testClonePIShallow  s    A34r   c                 (    U R                  SS5        g )Nrm   testClonePIDeepr[  r   s    r   r^  MinidomTest.testClonePIDeep  s    A01r   c                    [         R                  R                  R                  SR	                  5       5      n " S S5      nU" 5       nUR
                  nUR                  S   nUR                  SSU5        U(       a}  UR                  SS9nU R                  UR                  R                  R                  S	5        [         R                  R                  R                  nUR
                  R                  S   n	Oc[        R                   " US
S 5         UR                  SS9nS S S 5        [         R                  R                  R"                  nWR                  S   n	U R                  UR$                  U5        U R                  UR&                  S5        U R                  UR(                  S5        U R+                  UR,                  U5        U R+                  UR.                  U	5        g ! , (       d  f       N= f)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>
        c                       \ rS rSrS rSrg)4MinidomTest.check_clone_node_entity.<locals>.Handleri  c                 @    Xl         X l        X0l        X@l        XPl        g r0   )	operationkeyr   rC  dstr2   rd  re  r   rC  rf  s         r   handle;MinidomTest.check_clone_node_entity.<locals>.Handler.handle  s    !* 	r   )r   rf  re  rd  rC  N)__name__
__module____qualname____firstlineno__rh  __static_attributes__r  r   r   Handlerrb    s    r   ro  smilere  r   T)r  u%   Don't let entities make you frown ☺r*   )r   r   r   r   stripr   r   setUserDatar  r9   re   rw   r8   UserDataHandlerNODE_IMPORTEDr   	swap_attrNODE_CLONEDrd  re  r   rv   rC  rf  )
r2   clone_documentdocumentro  handlerr   r%   r  rd  rf  s
             r   check_clone_node_entity#MinidomTest.check_clone_node_entity  s    77??.. 0 EG	 	 )""!!'*5&'2&&D&1EU22==GGDF//==I--((1C ""7OTB))t)4 C //;;I..)C**I6e,v.gkk6*gkk3' CBs   G++
G9c                 H    U R                  S5        U R                  S5        g )NFT)rz  r   s    r   testCloneNodeEntityMinidomTest.testCloneNodeEntity  s    $$U+$$T*r   c                    [        S5      nUR                  nUR                  UR                  S5      5        UR                  UR                  S5      5        U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  S5        UR                  5         U R	                  [        UR                  5      S:H  =(       aX    UR                  R                  S:H  =(       a8    UR                  UR                  L =(       a    UR                  R                  S:H  S5        UR                  5         [        S5      nUR                  nUR                  UR                  S	5      5        UR                  5         U R	                  [        UR                  5      S
:H  =(       a    UR                  R                  S
:H  S5        UR                  5         g )Nr   firstsecondrl   ztestNormalize -- preparationrm   firstsecondztestNormalize -- resultr  r   z*testNormalize -- single empty node removed)r   re   r   r   r5   rt   rq   ru   	normalizerw   rx   r   rJ   r2   r   r|   s      r   testNormalizeMinidomTest.testNormalize  sq   (#""++G45++H56S)Q. 0OO**a/.	0 	S)Q. :OO**a/:OOt~~5: OO((M9+		-
 	

(#""++B/0S)Q. 0OO**a/<	> 	

r   c                    [        S5      nUR                  nUR                  UR                  S5      5        UR                  UR                  S5      5        UR                  UR	                  S5      5        U R                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  S5        UR                  5         U R                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  =(       a    UR                  R                  S:H  =(       a    UR                  UR                  L=(       a    UR                  R                  UR                  L =(       a`    UR                  R                  S L =(       aA    UR                  R                  UR                  L =(       a    UR                  R                  S L S	5        UR                  5         g )
Nr   r  r  r  rn   z1testNormalizeCombineAndNextSibling -- preparationrl   r  z-testNormalizeCombinedAndNextSibling -- result)r   re   r   r   rr   r5   rt   rq   ru   r  rw   r   rx   r{   rz   rJ   r  s      r   "testNormalizeCombineAndNextSibling.MinidomTest.testNormalizeCombineAndNextSibling  s   (#""++G45++H56**3/0S)Q. 0OO**a/C	E 	S)Q. 7OO**a/7OO((M97 OO4>>97 OO//4>>A	7
 OO33t;7 NN22dooE7 NN..$6A	C 	

r   c                    [        S5      nUR                  nUR                  UR                  S5      5        UR                  UR                  S5      5        U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  S5        UR                  5         U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  =(       av    UR                  R                  S:H  =(       aV    UR                  UR                  L =(       a7    UR                  R                  S L =(       a    UR                  R                  S L S5        UR                  5         g )Nr   r  r  rl   z1testNormalizeDeleteWithPrevSibling -- preparationrm   z,testNormalizeDeleteWithPrevSibling -- resultr   re   r   r   r5   rt   rq   ru   r  rw   r   rx   r{   rz   rJ   r  s      r   "testNormalizeDeleteWithPrevSibling.MinidomTest.testNormalizeDeleteWithPrevSibling  s-   (#""++G45++B/0S)Q. 0OO**a/C	E 	S)Q. <OO**a/<OO((G3< OOt~~5< OO//47	<
 OO33t;@	B 	

r   c                    [        S5      nUR                  nUR                  UR                  S5      5        UR                  UR                  S5      5        U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  S5        UR                  5         U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  =(       av    UR                  R                  S:H  =(       aV    UR                  UR                  L =(       a7    UR                  R                  S L =(       a    UR                  R                  S L S5        UR                  5         g )Nr   r  r  rl   z1testNormalizeDeleteWithNextSibling -- preparationrm   z,testNormalizeDeleteWithNextSibling -- resultr  r  s      r   "testNormalizeDeleteWithNextSibling.MinidomTest.testNormalizeDeleteWithNextSibling  s-   (#""++B/0++H56S)Q. 0OO**a/C	E 	S)Q. <OO**a/<OO((H4< OOt~~5< OO//47	<
 OO33t;@	B 	

r   c                    [        S5      nUR                  nUR                  UR                  S5      5        UR                  UR	                  S5      5        UR                  UR                  S5      5        U R                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  S5        UR                  5         U R                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  =(       a    UR                  UR                  L=(       a    UR                  R                  UR                  L =(       a`    UR                  R                  S L =(       aA    UR                  R                  UR                  L =(       a    UR                  R                  S L S5        UR                  5         g )Nr   r  r  rn   z1testNormalizeDeleteWithTwoSiblings -- preparationrl   z,testNormalizeDeleteWithTwoSiblings -- result)r   re   r   rr   r   r5   rt   rq   ru   r  rw   rx   r{   rz   rJ   r  s      r   )testNormalizeDeleteWithTwoNonTextSiblings5MinidomTest.testNormalizeDeleteWithTwoNonTextSiblings  sg   (#""**3/0++B/0**3/0S)Q. 0OO**a/C	E 	S)Q. 7OO**a/7OO4>>97 OO//4>>A7 OO33t;	7
 NN22dooE7 NN..$6@	B 	

r   c                    [        S5      nUR                  nUR                  UR                  S5      5        UR                  UR                  S5      5        UR                  UR                  S5      5        UR                  UR                  S5      5        UR                  UR                  S5      5        U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  S5        UR                  5         U R	                  [        UR                  5      S:H  =(       a    UR                  R                  S:H  =(       av    UR                  UR                  L =(       aW    UR                  R                  S:H  =(       a7    UR                  R                  S L =(       a    UR                  R                  S L S	5        UR                  5         g )
Nr   r  r  fourth   z,testNormalizeDeleteAndCombine -- preparationrm   secondfourthz'testNormalizeDeleteAndCombine -- result)r   re   r   r   r5   rt   rq   ru   r  rw   rx   r   rz   r{   rJ   r  s      r   testNormalizeDeleteAndCombine)MinidomTest.testNormalizeDeleteAndCombine*  sw   (#""++B/0++H56++B/0++H56++B/0S)Q. 0OO**a/>	@ 	S)Q. 8OO**a/8OOt~~58 OO((N:8 OO33t;	8
 OO//47;	= 	

r   c                    [        S5      nUR                  nUR                  S   R                  UR	                  S5      5        UR                  S   R                  UR	                  S5      5        UR                  S   R                  S   R                  UR	                  S5      5        UR                  S   R                  UR	                  S5      5        UR                  UR	                  S5      5        U R                  [        UR                  5      S:H  =(       Ga?    UR                  R                  S:H  =(       Ga    [        UR                  S   R                  5      S	:H  =(       a    UR                  S   R                  R                  S	:H  =(       a    [        UR                  S   R                  5      S:H  =(       a    UR                  S   R                  R                  S:H  =(       al    [        UR                  S   R                  S   R                  5      S
:H  =(       a3    UR                  S   R                  S   R                  R                  S
:H  S5        UR                  5         U R                  [        UR                  5      S
:H  =(       Ga?    UR                  R                  S
:H  =(       Ga    [        UR                  S   R                  5      S
:H  =(       a    UR                  S   R                  R                  S
:H  =(       a    [        UR                  S   R                  5      S
:H  =(       a    UR                  S   R                  R                  S
:H  =(       al    [        UR                  S   R                  S   R                  5      S:H  =(       a3    UR                  S   R                  S   R                  R                  S:H  S5        U R                  UR                  S   R                  S   R                  S:H  =(       af    UR                  S   R                  S   R                  S   R                  S:H  =(       a)    UR                  S   R                  S   R                  S:H  S5        U R                  UR                  S   R                  S   R                  S L =(       Ga    UR                  S   R                  S   R                  UR                  S   R                  S   L =(       Gab    UR                  S   R                  S   R                  S L =(       Ga2    UR                  S   R                  S   R                  UR                  S   R                  S   L =(       a    UR                  S   R                  S   R                  S L =(       a    UR                  S   R                  S   R                  UR                  S   R                  S   L =(       aq    UR                  S   R                  S   R                  S L =(       aB    UR                  S   R                  S   R                  UR                  S   R                  S   L S5        UR                  5         g )Nz)<doc><o><i/>t</o><o><o>t2</o>t3</o></doc>r   r  r  rm   x2x3rn   rp   rl   ztestNormalize2 -- preparationz$testNormalize2 -- childNodes lengthstxt2x2t3x3z$testNormalize2 -- joined text fieldsz"testNormalize2 -- sibling pointers)r   re   rq   r   r   r5   rt   ru   r  r   r{   rz   rJ   r  s      r   testNormalizeRecursion"MinidomTest.testNormalizeRecursion?  s    # $" ""&&s'9'9"'=>&&s'9'9#'>?%%a(44S5G5G5MN&&s'9'9$'?@++B/0S)Q. L LOO**a/L L*556!;L OOA&1188A=L *556!;	L
 OOA&1188A=L *55a8CCDIL OOA&11!4??FF!K1	3 	S)Q. L LOO**a/L L*556!;L OOA&1188A=L *556!;	L
 OOA&1188A=L *55a8CCDIL OOA&11!4??FF!K8	: 	T__Q'2215::dB DOOA&11!4??BGG6QDOOA&11!499VC8	: 	T__Q'2215AATI < <OOA&11!4DD??1-88;<< < OOA&11!4DDL< < OOA&11!4@@??1-88;<	< OOA&11!4@@DH< OOA&11!4DD??1-88;<< OOA&11!4DDL< OOA&11!4@@??1-88;<6	8 	

r   c                     [        S5      nUR                  R                  S   nU R                  UR                  [
        R                  5        UR                  5         UR                  5         g )Nz<o>text</o>r   )	r   re   rq   r9   ry  r   	TEXT_NODEr  rJ   )r2   r   r   s      r   testBug0777884MinidomTest.testBug0777884~  sM    -(""--a07

r   c                     [        S5      nUR                  nSUR                  S   l        UR	                  5         U R                  UR                  S   R                  S5        g )Nz<o><i/>t</o>r  rm   r   z)Final child's .nextSibling should be None)r   re   rq   r   r  r   r{   r2   r   r:   s      r   testBug1433694MinidomTest.testBug1433694  sU    .)""')$$//"-99@	Br   c                 ~   [        S5      nUR                  nUR                  u  p4nU R                  UR                  UL =(       ab    UR
                  S L =(       aM    UR                  UL =(       a8    UR
                  UL =(       a#    UR                  S L =(       a    UR
                  UL S5        UR                  5         g )Nz<doc><?pi?>text?<elm/></doc>testSiblings)r   re   rq   r5   r{   rz   rJ   )r2   r   r|   r~  r   elms         r   r  MinidomTest.testSiblings  s    89""//3R^^t+ ,""d*,  C', $$*, 4'	,
 ##t+^	= 	

r   c                    [        S5      nUR                  nUR                  S   nUR                  u  pEUR                  S   nU R                  UR                  UL =(       aM    UR                  UL =(       a8    UR                  UL =(       a#    UR                  UL =(       a    UR                  UL S5        UR                  5         g )Nz3<doc><elm1><elm2/><elm2><elm3/></elm2></elm1></doc>r   testParents)r   re   rq   r5   r  rJ   )r2   r   r|   elm1elm2aelm2belm3s          r   r  MinidomTest.testParents  s    AC""q!"T__+ )4')  D()   D() 5(-		9
 	

r   c                    [        S5      nUR                  nUS   nU R                  US   UR                  S5      L =(       a    UR                  S5      S L =(       a    UR                  R                  S5      UR                  S   L =(       ag    UR                  R                  S5      UR                  S   L =(       a6    UR                  R                  S5      R                  R                  S5      S L S5        UR	                  5         g )Nz<doc><e/><e/></doc>r   rm   ztest NodeList.item())r   rq   r5   r)   rJ   )r2   r   childrendocelems       r   testNodeListItemMinidomTest.testNodeListItem  s    /0>>1+Xa[HMM!$44 JMM!$,J&&++A.'2D2DQ2GGJ &&++A.'2D2DQ2GGJ &&++A.99>>qATI&	( 	

r   c                     [        S5      nU R                  UR                  5       S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        U R                  UR                  S	5      S
R                  S	5      5        U R	                  [
        [        45         [        S5        S S S 5        UR                  5         g ! , (       d  f       N= f)N<foo>&#x20ac;</foo>$   <?xml version="1.0" ?><foo>€</foo>r   s4   <?xml version="1.0" encoding="utf-8"?><foo>€</foo>ziso-8859-15s8   <?xml version="1.0" encoding="iso-8859-15"?><foo></foo>r   s;   <?xml version="1.0" encoding="us-ascii"?><foo>&#8364;</foo>zutf-16u5   <?xml version="1.0" encoding="utf-16"?><foo>€</foo>s0   <franais>Comment a va ? Trs bien ?</franais>)r   r9   ry   encoder   UnicodeDecodeErrorr
   rJ   rB   s     r   testEncodingsMinidomTest.testEncodings  s    /0B	D7+L	N=1J	L:.J	L8,  &x 0	2  2J?@O A
 	

 A@s   C??
Dc                 x   [        S5      nU R                  UR                  5       S5        U R                  UR                  S S9S5        U R                  UR                  SS9S5        U R                  UR                  SS9S5        U R                  UR                  SS5      S	5        UR                  5         g )
Nr  r  )
standaloneTu4   <?xml version="1.0" standalone="yes"?><foo>€</foo>Fu3   <?xml version="1.0" standalone="no"?><foo>€</foo>r   sE   <?xml version="1.0" encoding="utf-8" standalone="yes"?><foo>€</foo>)r   r9   ry   rJ   rB   s     r   testStandaloneMinidomTest.testStandalone  s    /0B	Dd3B	Dd3E	Ge4D	F7D1'	( 	

r   c                       \ rS rSrSrS rSrg)MinidomTest.UserDataHandleri  r   c                 b    UR                  X#S-   U 5        UR                  US S 5        SU l        g r$  )rr  calledrg  s         r   rh  "MinidomTest.UserDataHandler.handle  s+    OOC40OOCt,DKr   )r  N)rj  rk  rl  rm  r  rh  rn  r  r   r   rs  r    s    	r   rs  c                    [        5       nUR                  S5      nU R                  UR                  S5      5        UR	                  SS S 5        U R                  UR                  S5      5        UR	                  SSS5        UR	                  SSS5        U R                  UR                  S5      S5        U R                  UR                  S5      S5        UR	                  SS S 5        U R                  UR                  S5      5        U R                  UR                  S5      S5        U R                  5       nUR	                  SSU5        UR                  S5      nU R                  UR                  =(       a.    UR                  S5      S L =(       a    UR                  S5      S:H  5        UR                  5         UR                  5         UR                  5         g )Nr5  r      ro      rm   )r   rr   r   getUserDatarr  r9   rs  r  r5   r  rJ   )r2   r   nry  cs        r   testUserDataMinidomTest.testUserData  so   jc"!--./	eT4(!--./	eR$	eR$u-r2u-r2	eT4(!--./u-r2&&(	eR)KKNW^^ /MM%(D0/MM%(B.	0 	

	


r   c                 &   U R                  [        R                  R                  UR                  USS5        [        S5      nU R                  [        R                  R                  UR                  U[        R                  R                  S5        g )Nhttp://xml.python.org/nsz	xmlns:foor   r   )r   r   r   NamespaceErr
renameNoder   WrongDocumentErrr|  )r2   r   r:   r  s       r    checkRenameNodeSharedConstraints,MinidomTest.checkRenameNodeSharedConstraints  se    #''..4k	C8$#''22DOOT''115	:r   c                    [        S5      nUR                  nUR                  nUR                  S   nUR                  U[        R
                  R                  S5      nU R                  UR                  S:H  =(       Ga    UR                  S:H  =(       Ga    UR                  S L =(       a    UR                  [        R
                  R                  :H  =(       a    UR                  S L =(       a    UR                  S:H  =(       a    UR                  S5      S L =(       a    UR                  S5      R                  U5      =(       aX    US   R                  U5      =(       a=    UR                   R                  U5      =(       a    UR"                  R                  U5      5        UR                  USS5      nU R                  UR                  S:H  =(       Ga     UR                  S:H  =(       Ga	    UR                  S:H  =(       a    UR                  S:H  =(       a    UR                  S L =(       a    UR                  S:H  =(       a    UR                  S5      S L =(       a    UR                  S5      S L =(       a~    UR                  S5      R                  U5      =(       aW    UR%                  SS5      R                  U5      =(       a/    US   R                  U5      =(       a    US   R                  U5      5        UR                  USS	5      nU R                  UR                  S	:H  =(       GaX    UR                  S	:H  =(       GaA    UR                  S
:H  =(       Ga*    UR                  S:H  =(       Ga    UR                  S:H  =(       a    UR                  S:H  =(       a    UR                  S5      S L =(       a    UR                  S5      S L =(       a    UR                  S5      S L =(       a    UR%                  SS5      S L =(       a~    UR                  S	5      R                  U5      =(       aW    UR%                  SS
5      R                  U5      =(       a/    US	   R                  U5      =(       a    US   R                  U5      5        UR                  U[        R
                  R                  S5      nU R                  UR                  S:H  =(       GaD    UR                  S:H  =(       Ga-    UR                  S L =(       Ga    UR                  [        R
                  R                  :H  =(       a    UR                  S L =(       a    UR                  S:H  =(       a    UR                  S5      S L =(       a    UR                  S5      S L =(       a    UR                  S5      S L =(       ap    UR                  S	5      S L =(       aV    UR%                  SS5      S L =(       a;    UR                  S5      R                  U5      =(       a    US   R                  U5      5        U R'                  [        R
                  R(                  UR                  USS5        U R+                  X5        UR-                  5         g )Nz<doc a='v'/>r   r  vr  r  )r  r  http://xml.python.org/ns2zp:dr'  p)r  r'  r5  xmlns)r   re   r   r  r   r   r|  r5   rZ   r   rW   rV   rX   r   r   r  r*   r   r  r   r  r  rJ   )r2   r   r}   attrmapr\   s        r   testRenameAttributeMinidomTest.testRenameAttribute  s   .)""//s# ~~dCGG$;$;SATYY#% 
7 
7MMS(
7 
7NNd*
7 %%)@)@@
7 KK4'	
7
 JJ#%
7 ))#.$6
7 ))#.99$?
7 CL++D1
7 &&11#6
7 %%006
	8 ~~d$>DTYY#% P PMMS(P PNNc)P %%)CCP KK4'	P
 JJ#%P ))#.$6P ))#.$6P ))#.99$?P ++.55?Z5EP CL++D1P =>II$O	Q ~~d$?GTYY%' Q QMMU*Q QNNc)Q Q %%)DDQ Q KK3&	Q
 JJ#%Q ))#.$6Q ))#.$6Q ))#.$6Q ++.58<=Q ))%0;;DAQ ++/66@j6FQ EN--d3Q >?JJ4P	R$ ~~dCGG$;$;SATYY#% 2 2MMS(2 2NNd*2 2 %%)@)@@2 KK4'	2
 JJ#%2 ))#.$62 ))#.$62 ))#.$62 ))%0D82 ++.58<=2 ))#.99$?2 CL++D1	3 	#''..4g	?--c8

r   c                    [        S5      nUR                  nUR                  U[        R                  R
                  S5      nU R                  UR                  S:H  =(       a    UR                  S:H  =(       as    UR                  S L =(       a^    UR                  [        R                  R
                  :H  =(       a0    UR                  S L =(       a    UR                  R                  U5      5        UR                  USS5      nU R                  UR                  S:H  =(       ar    UR                  S:H  =(       a\    UR                  S:H  =(       aF    UR                  S:H  =(       a0    UR                  S L =(       a    UR                  R                  U5      5        UR                  USS5      nU R                  UR                  S:H  =(       as    UR                  S:H  =(       a]    UR                  S:H  =(       aG    UR                  S:H  =(       a1    UR                  S:H  =(       a    UR                  R                  U5      5        UR                  U[        R                  R
                  S	5      nU R                  UR                  S	:H  =(       a    UR                  S	:H  =(       as    UR                  S L =(       a^    UR                  [        R                  R
                  :H  =(       a0    UR                  S L =(       a    UR                  R                  U5      5        U R                  X5        UR                  5         g )
Nr   r   r  r  r  zp:cr  r  r'  )r   re   r  r   r   r|  r5   r&  r   rW   rV   rX   r*   r  r  rJ   r  s      r   testRenameElementMinidomTest.testRenameElementR  s   (#"" ~~dCGG$;$;SAT\\S( 7MMS(7NNd*7 %%)@)@@7 KK4'	7
 &&11#6	8 ~~d$>DT\\S( 7MMS(7NNc)7 %%)CC7 KK4'	7
 &&11#6	8 ~~d$?GT\\U* 7MMU*7NNc)7 %%)DD7 KK3&	7
 &&11#6	8 ~~dCGG$;$;SAT\\S( 7MMS(7NNd*7 %%)@)@@7 KK4'	7
 &&11#6	8 	--c8

r   c                    [         R                  R                  R                  5       R	                  [         R                  R
                  SS 5      nUR                  S5      nU R                  [         R                  R                  UR                  U[         R                  R
                  S5        UR                  5         g )Nr5  commentr   )r   r   r   r	   r   r|  r   r   r1  r  rJ   r  s      r   testRenameOtherMinidomTest.testRenameOther}  s     ggoo224CCGG##S$0  +#''113>>4''115	:

r   c                    [        S5      nUR                  nUR                  S   nU R                  UR                  [
        R                  5        U R                  US5        UR                  UR                  S5      5        U R                  US5        UR                  UR                  S5      U5        U R                  US5        UR                  S5      nUR                  U5        UR                  S	5      nUR                  U5        U R                  US5        U R                  US	5        UR                  S
5      nUR                  Xd5        UnU R                  US5        U R                  US	5        UR                  SS5      nUR                  Xd5        UnU R                  US5        U R                  US	5        UR!                  U5        U R                  US5        U R                  US5        g )Nz<doc>a</doc>r   r   r  abr  cabr  r'  r  yzcabd)r   re   rq   r9   ry  r   r  r=   r   r   rs   createCDATASectionr   rr   r   createProcessingInstructionremoveChild)r2   r   r}   r   splittertext2r  s          r   testWholeTextMinidomTest.testWholeText  s   .)""q!7D#&++C01D$'#005t<D%( $$Y/"""3'D%(E3'c"!&D%(E3'++C5!&D%(E3'"D&)E6*r   c                     [        S5      nUR                  nUR                  nU R                  UR                  US5        UR                  X35        U R                  UR                  US5        g )Nz<doc><e/></doc>zBefore replaceChild()zAfter replaceChild())r   re   rw   rv   r  r   )r2   r   r}   r5  s       r   testPatch1094164MinidomTest.testPatch1094164  sY    +,""OOallD*AB!allD*@Ar   c                 ^   S nU" 5       u  p#pEnUR                  S5      nU R                  US5        U R                  US5        U R                  [        UR                  5      S5        U" 5       u  p#pEnUR                  S5      nU R                  US5        U R                  US5        U R                  [        UR                  5      S5        U" 5       u  p#pEnUR                  S5      nU R                  US5        U R                  US L =(       a    [        UR                  5      S:H  5        g )	Nc                     [        S5      n U R                  nUR                  nUR                  nUR                  nUR                  U R                  S5      U5        UR                  U R                  S5      U5        XX$U4$ )Nz<doc>a<e/>d</doc>r  r  )r   re   rw   rx   r{   rs   r   r  )r   r}   text1r  r  s        r   setup/MinidomTest.testReplaceWholeText.<locals>.setup  sx    12C&&DOOENNE((Hc005x@c44S95Aeu44r   znew contentr'  rn   r  r  r  rl   )replaceWholeTextr=   r9   rt   rq   r5   )r2   r  r   r}   r  r  r  r   s           r   testReplaceWholeText MinidomTest.testReplaceWholeText  s   	5 -2G)5E%%m4D-0E3'T__-q1,1G)5E%%m4D-0E5)T__-q1,1G)5E%%b)E3'TT\ .(A-	/r   c                    [        S5      nUR                  nUR                  nU R                  UR                  S L =(       a'    UR
                  [        R                  R                  :H  5        SR                  5       nU Hi  nUR                  U5      nUR                  nU R                  [        US5      =(       a'    UR
                  [        R                  R                  :H  5        Mk     g )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 nmsrZ   )r   re   
schemaTyper5   rZ   	namespacer   r   r|  splitr   hasattr)r2   r   r}   r<   namesrZ   r   s          r   testSchemaTypeMinidomTest.testSchemaType  s    /0" ""
 OOQVVt^ ;KK377#:#::	<=CCED%%d+AALLF+ ?sww'>'>>@ r   c                 N   [        S5      nUR                  nUR                  S5      nUR                  S5      nU R                  UR	                  S5      S L =(       a)    UR
                  (       + =(       a    UR
                  (       + 5        UR                  S5        U R                  UR                  UR	                  S5      5      =(       a$    UR
                  =(       a    UR
                  (       + 5        UR                  S5        U R                  UR                  UR	                  S5      5      =(       aF    UR                  UR	                  S5      5      =(       a    UR
                  =(       a    UR
                  5        UR                  S5      nSUl	        UR                  U5        U R                  UR	                  S5      S L =(       ac    UR                  UR	                  S5      5      =(       a<    UR
                  (       + =(       a$    UR
                  =(       a    UR
                  (       + 5        UR                  U[        R                  R                  S5        U R                  UR                  UR	                  S5      5      =(       a    UR
                  5        g )Nz<doc a1='v' a2='w'/>r  r  r  wan)r   re   r   r5   getElementByIdr  r  r  createAttributer   setAttributeNoder  r   r   r|  )r2   r   r5  r  r  a3s         r   testSetIdAttributeMinidomTest.testSetIdAttribute  s   01%%S'',4  K K	! 	
Q\\#"4"4S"9:  GG K	! 	
Q\\#"4"4S"9: LL!3!3C!89GG GG	
   &	2S'',4  LL!3!3C!89 K  GG  K		! 	r37722D9Q\\#"4"4S"9: GG	r   c                    SnSn[        SU-   S-   U-   S-   5      nUR                  nUR                  US5      nUR                  US5      nU R                  UR	                  S5      S L =(       a)    UR
                  (       + =(       a    UR
                  (       + 5        UR                  US5        U R                  UR                  UR	                  S5      5      =(       a$    UR
                  =(       a    UR
                  (       + 5        UR                  US5        U R                  UR                  UR	                  S5      5      =(       aF    UR                  UR	                  S	5      5      =(       a    UR
                  =(       a    UR
                  5        UR                  US5      nSUl	        UR                  U5        U R                  UR                  UR	                  S	5      5      5        U R                  UR
                  5        U R                  UR
                  5        U R                  UR
                  5        U R                  UR	                  S5      5        UR                  U[        R                   R"                  S
5        U R                  UR                  UR	                  S	5      5      =(       a    UR
                  5        g Nzhttp://xml.python.org/ns1r  z<doc xmlns:ns1='z' xmlns:ns2='z' ns1:a1='v' ns2:a2='w'/>r  r  r  r	  r
  )r   re   r  r5   r  r  setIdAttributeNSr  createAttributeNSr   r  r1   r@   r   r  r   r   r|  r2   NS1NS2r   r5  r  r  r  s           r   testSetIdAttributeNS MinidomTest.testSetIdAttributeNS  s@   )) )+./2))+./255 6 !!#t,!!#t,S'',4  K K	! 	
3%Q\\#"4"4S"9:  GG K	! 	
3%Q\\#"4"4S"9: LL!3!3C!89GG GG	
 ""3-	2S%7%7%<=>! !#,,S12r37722D9Q\\#"4"4S"9: GG	r   c                    SnSn[        SU-   S-   U-   S-   5      nUR                  nUR                  US5      nUR                  US5      nU R                  UR	                  S5      S L =(       a)    UR
                  (       + =(       a    UR
                  (       + 5        UR                  U5        U R                  UR                  UR	                  S5      5      =(       a$    UR
                  =(       a    UR
                  (       + 5        UR                  U5        U R                  UR                  UR	                  S5      5      =(       aF    UR                  UR	                  S	5      5      =(       a    UR
                  =(       a    UR
                  5        UR                  US5      nSUl	        UR                  U5        U R                  UR                  UR	                  S	5      5      5        U R                  UR
                  5        U R                  UR
                  5        U R                  UR
                  5        U R                  UR	                  S5      5        UR                  U[        R                   R"                  S
5        U R                  UR                  UR	                  S	5      5      =(       a    UR
                  5        g r  )r   re   r  r5   r  r  setIdAttributeNoder  r  r   r  r1   r@   r   r  r   r   r|  r  s           r   testSetIdAttributeNode"MinidomTest.testSetIdAttributeNode5  s<   )) )+./2))+./255 6 !!#t,!!#t,S'',4  K K	! 	
R Q\\#"4"4S"9:  GG K	! 	
R Q\\#"4"4S"9: LL!3!3C!89GG GG	
 ""3-	2S%7%7%<=>! !#,,S12r37722D9Q\\#"4"4S"9: GG	r   c                    X4/nU(       GaF  UR                  5       u  pEU R                  UR                  UR                  5        U R                  [        UR                  5      [        UR                  5      5        U R                  UR
                  UR
                  5        U R                  UR                  U5      5        U R                  UR                  U5      5        UR                  [        R                  :X  Ga  [        UR                  5        [        UR                  5        [        UR                  5        [        UR                  5        U R                  [        UR                  5      [        UR                  5      5        U R                  [        UR                  5      [        UR                  5      5        [        [        UR                  5      5       H  nUR                  R                  U5      nUR                  R                  U5      nU R                  UR                  UR                  5        U R                  UR                  UR                  5        U R                  UR                   UR                   5        UR#                  Xx45        M     [        [        UR                  5      5       H  nUR                  R                  U5      n	UR                  R                  U5      n
U R                  U	R$                  U
R$                  5        U R                  U	R                  U
R                  5        U R                  U	R                   U
R                   5        UR#                  X45        M     UR                  [        R&                  :w  aT  U R)                  UR*                  R                  U5      5        U R)                  UR*                  R                  U5      5        [        [        UR                  5      5       H0  nUR#                  UR                  U   UR                  U   45        M2     U(       a  GME  g g r0   )popr9   ry  rt   rq   r   r@   r  r   r  r   r   r  r)   rZ   r  r  r   r  DOCUMENT_NODEr1   r*   )r2   r   r  stackn1n2r  no1no2r  r  s              r   assert_recursive_equal"MinidomTest.assert_recursive_equalY  s   YY[FBR[["++6S/R]]1CDR[["++6R]]2./R]]2./{{d555BKK BKK BLL!BLL!  R[[!13r{{3CD  R\\!2C4EFs2<<01A,,++A.C,,++A.C$$SXXsxx8$$S\\3<<@$$S\\3<<@LL#, 2 s2;;/0A))!,B))!,B$$R__booF$$R[["++>$$R[["++>LL"* 1 {{d000 0 0 ; ;C @A 0 0 ; ;D AB3r}}-.bmmA.a0@AB /A er   c                     [        [        5      n[        S[        R                  S-   5       H@  n[        R
                  " X5      n[        R                  " U5      nU R                  X5        MB     g )Nrl   rm   )r   sampler  pickleHIGHEST_PROTOCOLdumpsloadsr&  )r2   r   protor;   r  s        r   testPickledDocumentMinidomTest.testPickledDocument~  sQ    &!1f559:ES(A<<?D''2 ;r   c                 p    [        [        5      n[        R                  " U5      nU R	                  X5        g r0   )r   r)  copydeepcopyr&  r  s      r   testDeepcopiedDocument"MinidomTest.testDeepcopiedDocument  s(    &!}}S!##C.r   c                     [        5       nUR                  UR                  S5      5        U R                  [        UR
                  5        g )Nzfoo--bar)r   r   r   r   
ValueErrorry   rB   s     r   (testSerializeCommentNodeWithDoubleHyphen4MinidomTest.testSerializeCommentNodeWithDoubleHyphen  s5    (*))*56*cii0r   c                     [        S5      n[        UR                  5       5      nU R                  UR                  [        R
                  R                  5        g )Nz$<element xmlns=''>
<foo/>
</element>)r   ry   r9   rV   r   r   r|  r  s      r   testEmptyXMLNSValueMinidomTest.testEmptyXMLNSValue  sA     / 0399;'**CGG,C,CDr   c                     U R                  [        [        45         [        S5        S S S 5        g ! , (       d  f       g = f)NzE<element xmlns:abc="http:abc.com/de f g/hi/j k"><abc:foo /></element>)r   r7  r
   r   r   s    r   !testExceptionOnSpacesInXMLNSValue-MinidomTest.testExceptionOnSpacesInXMLNSValue  s.    
J78( 988s   1
?c                    [        [        5      nUR                  R                  S5      S   nU R	                  [
        R                  R                  UR                  U5        [        UR                  5      nUR                  UR                  S   5        [        UR                  5      nU R                  XCS-
  5        g )NTITLEr   rm   )r   rI   re   rd   r   r   r   r   r  rt   rq   r9   )r2   r   	title_tagnum_children_beforenum_children_afters        r   testDocRemoveChildMinidomTest.testDocRemoveChild  s    Gn''<<WEaH	377..K!#..1q)* 0+1-DEr   c                 T    [        [        5      nUR                  SS5      nSUl        g )Nr  r  crash)r   rI   r  r   )r2   r   r~  s      r   "testProcessingInstructionNameError.MinidomTest.testProcessingInstructionNameError  s&     Gn,,S#6r   c                     Sn[        U5      n[        R                  " 5       nUR                  U5        U R	                  UR                  5       U5        g NE<?xml version="1.0" ?><curriculum status="public" company="example"/>)r   ioStringIOwritexmlr9   getvalue)r2   xml_strr   outputs       r   test_minidom_attribute_order(MinidomTest.test_minidom_attribute_order  s?    Y'"V*G4r   c                 ^    Sn[        U5      nU R                  UR                  5       U5        g rL  )r   r9   ry   r2   rR  r   s      r   "test_toxml_with_attributes_ordered.MinidomTest.test_toxml_with_attributes_ordered  s'    Y'"g.r   c                 ^    Sn[        U5      nU R                  UR                  5       S5        g )NrM  zG<?xml version="1.0" ?>
<curriculum status="public" company="example"/>
r   r9   rc  rW  s      r   (test_toprettyxml_with_attributes_ordered4MinidomTest.test_toprettyxml_with_attributes_ordered  s/    Y'"*M	Nr   c                 ^    Sn[        U5      nU R                  UR                  5       S5        g )NC<?xml version="1.0" ?><root><node><![CDATA[</data>]]></node></root>zH<?xml version="1.0" ?>
<root>
	<node><![CDATA[</data>]]></node>
</root>
r[  rW  s      r   test_toprettyxml_with_cdata'MinidomTest.test_toprettyxml_with_cdata  s-    W'"*%	&r   c                    Sn[        U5      nU R                  UR                  S5      S   R                  S5        [        UR	                  5       5      nU R                  UR                  S5      S   R                  S5        g )Nr_  r:   r   z</data>)r   r=   rd   rw   rc  )r2   rR  dom1r   s       r   test_cdata_parsingMinidomTest.test_cdata_parsing  sp    W7#D55f=a@KKYW4++-.D55f=a@KKYWr   r  N)Test)rj  rk  rl  rm  r5   r=   rC   rN   rR   r]   r`   rg   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r!  r)  r/  r6  r?  rC  rF  rI  rN  rZ  r_  re  rk  ro  rs  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r
  r  r  r  r!  r'  r+  r.  r5  r8  r=  rD  rH  rM  rP  rT  rW  rZ  r^  rz  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rs  r  r  r  r  r  r  r  r  r  r  r  r  r&  r/  r4  r8  r;  r>  rE  rI  rT  rX  r\  r`  rd  rn  r  r   r   r-   r-   6   s   (D*
1164&P+"*"))

*		$4%N
-
%< )+
="&+**&<L	EIC>
? "' ()#$%&$&K9 '&++0$'.03""//$

AC2 4D!
0!
P
C@**MC@+52-(^+2*$$(*<~B
.  0:KZ)V"+HB/:@B>"H"H#CJ3/
1EF5/
N&Xr   r-   __main__r0   )r2  r*  rN  r3   r   unittestxml.dom.minidomr   r   r   r   r   r   r	   xml.parsers.expatr
   findfilerI   r)  r   r&   r+   TestCaser-   rj  mainr  r   r   <module>rn     s      	    D D 0 ( 

:m
<7G XX(## XXt4 zMMO r   