m %UIc@s dkZdkZdkZdkZdklZdklZdkZdk Zdk Zdk l Z l Z l Z lZdk lZedjoeidZneZeiieiiedeidZ[d d Zd Zd Zd ZdZdZdZdZ dZ!dZ"dZ#dZ$dZ%dZ&dZ'dZ(dZ)dZ*dZ+dZ,dZ-dZ.d Z/d!Z0d"Z1d#Z2d$Z3d%Z4d&Z5d'Z6d(Z7d)Z8d*Z9d+Z:d,Z;d-Z<d.Z=d/Z>d0Z?d1Z@d2ZAd3ZBd4ZCd5ZDd6ZEd7ZFd8ZGd9ZHd:ZId;ZJd<ZKd=ZLd>ZMd?ZNd@ZOdAZPdBZQdCZRdDZSdEZTdFZUdGZVdHZWdIZXdJZYdKZZdLZ[dMZ\dNZ]dOZ^dPZ_dQZ`dRZadSZbdTZcdUZddVZedWZfdXZgdYZhdZZid[Zjdd\Zld]Zmd^Znd_Zod`ZpdaZqdbZrdcZsddZtdeZudfZvdgZwdhZxdiZydjZzdkZ{dlZ|dmfdnYZ}doZ~dpZdqZdrZdsZdtZduZdvZdwZdxZdyZdzZd{Zd|ZeiZeigZy e iWnej od}Zn Xd~ZxeD]ZeidoeeZyeeWqeiedGeGHeiieieieeidGHhe _qXqCqCWeo#dGHxeD]ZdeGHqWndS(N(sStringIO(sverbose(sparsesNodesDocuments parseString(sgetDOMImplementationt__main__ittesttxmltTestcCs|pd|GHtndS(NsFailed (Rttestnamet Exception(RR((t./data/zmath/lib/python2.4/test/test_minidom.pytconfirms cCs?tttti}|itt|t dS(N( tparsetStringIOtopenttstfiletreadtdomtunlinkRt isinstancetDocument(R ((RttestParseFromFiles cCs?tt}t|id|iidj|idS(NtLI(RR R RtgetElementsByTagNametdocumentElementR(R ((RttestGetElementsByTagName#s %cCstd}|i}|id}|id}|i||t t |idjo|ii djo|id|jov|ii d|jo]|id|joI|ii d|jo0|i |jo |i|jo|idjd|id}|i|dt t |idjo|ii djo|id|jov|ii d|jo]|id|joI|ii d|jo0|i|jo |i|jo|id jd|id }|i||t t |id jo|ii d jo|id|jov|ii d|jo]|id|joI|ii d|jo0|i|jo |i|jo|id jd|idS( Nsitelementiiss0testInsertBefore -- node properly placed in treeis%tbaris+(t parseStringR Rtroott childNodestelemt createElementtnelemt insertBeforeRtlentlengthtitemt firstChildt lastChildttoxmltNonetpreviousSiblingtnelem2t nextSiblingR(R'R RRR((RttestInsertBefore)s       cCstd}|id}|id}|id}|id}|ii||i }|i||i||i|||||||fS(NstoriginaltfooRtbat( RR tcreateTextNodetorigtc1tc2tc3Rt appendChildtcreateDocumentFragmenttfrag(R4R R1R0R/R.((Rt_create_fragment_test_nodesSs     cCst\}}}}}}|ii|dt t |ii ||||fjd|i |i t\}}}}}}|ii||t t |ii ||||fjd|i |i dS(NsinsertBefore(, None)sinsertBefore(, orig)(R5R R.R/R0R1R4RRR%RttupleRR(R4R R1R0R/R.((RttestInsertBeforeFragment`s$  $ cCsmtt}|ii|idt|iididjt|iidi dj|i dS(NuHellois#commenttHello( RR R RR2t createCommentRRtnodeNametdataR(R ((RttestAppendChildos  cCsnt\}}}}}}|ii|t t |ii ||||fjd|i |i dS(NsappendChild()( R5R R.R/R0R1R4RR2RR6RR(R4R R1R0R/R.((RttestAppendChildFragmentvs $ cCsxt\}}}}}}|ii|||i t t |ii |||fjd|i |i dS(NsreplaceChild()( R5R R.R/R0R1R4Rt replaceChildRRR6R(R4R R1R0R/R.((RttestReplaceChildFragment~s ! cCsXt}|id}|id}y|i|Wntiij onXdGH|i|y|i ||Wntiij onXdGHy|i ||Wntiij onXdGH|i }y|i |Wntiij onXdGHy|i|Wntiij onXdGH|i||idS(NRttexts0dom.appendChild didn't raise HierarchyRequestErrs:NamedNodeMap.setNamedItem didn't raise HierarchyRequestErrs<NamedNodeMap.setNamedItemNS didn't raise HierarchyRequestErr(RR RRR-R@R2RtHierarchyRequestErrRR>t attributestnodemapt setNamedItemtsetNamedItemNSR(R R@RRC((RttestLegalChildrens@    cCst}|id}|i}d|d<|id}t|i |jdt|i |jdt|i djdt|i djd|i |i dS( NRRR+is-NamedNodeMap.__setitem__() sets ownerDocuments,NamedNodeMap.__setitem__() sets ownerElements%NamedNodeMap.__setitem__() sets values)NamedNodeMap.__setitem__() sets nodeValue(RR RRRBtattrsR!taRt ownerDocumentt ownerElementtvaluet nodeValueR(RHR RRG((RttestNamedNodeMapSetItems    cCsOtt}t||i|idt|idi |idS(NR+i(RR R RR2R9RR(R ((Rt testNonZeros   cCstt}|idS(N(RR R R(R ((Rt testUnlinks cCs:t}|i|idt|i|idS(Ntabc(RR R2RRRR(R ((Rt testElements  cCstd}|i}|iddt|idjd|id}t|i |jdt|i |ijd|i dS(Nstspamtjam2sttestAAAs!setAttribute() sets ownerDocuments setAttribute() sets ownerElement( RR Rtelt setAttributeRR$tgetAttributeNodeRHRIRJR(RHRUR ((RRTs  cCs\td}|i}|idd|iddt|idjd|idS(NsRRtjamRSsttestAAB(RR RRURVRR$R(RUR ((RRYs   cCs*t}|i|id}|iddt|iddjt|idi dj|iddt|iddjt|idi djtt |idj|iddt|iddjt|idi djtt |idj|i dS(NRPtdeftghitjkltmnoitnewval( RR R2RtchildRVRt getAttributeRBRKRR(R_R ((Rt testAddAttrs cCst}|i|id}tt|idj|iddtt|idj|id=tt|idj|i dS(NRPiRZR[i( RR R2RR_RRRBRVR(R_R ((RttestDeleteAttrs  cCs~t}|i|id}|iddtt|idj|i dtt|idj|i dS(NRPRZR[ii( RR R2RR_RVRRRBtremoveAttributeR(R_R ((RttestRemoveAttrs  cCst}|i|idd}|iddd|idddtt|idj|i ddtt|id j|i dS( Nshttp://www.python.orgs python:abcshttp://www.w3.orgs xmlns:pythonspython:abcattrR+itabcattri( RR R2tcreateElementNSR_tsetAttributeNSRRRBtremoveAttributeNSR(R_R ((RttestRemoveAttrNS s  cCst}|i|id}|iddtt|idj|i d}|i |tt|idjo|i ddj|i dS(NR+RRRXii(RR R2RR_RVRRRBRWtnodetremoveAttributeNodeR%R(RjR R_((RttestRemoveAttributeNodes  /cCstd}|i}|iddtt|idj|idd|idtt|idjoT|idi djo=|idi djo&|i ddjo|i di d|idRRRXitbamthamtspam2itbam2(RR RRURVRRRBtsetIdAttributeRKRLR`RWtisIdR(RUR ((RttestChangeAttr$s   p n cCsdS(N((((RttestGetAttrListJscCsdS(N((((RttestGetAttrValuesMscCsdS(N((((RttestGetAttrLengthOscCsdS(N((((RttestGetAttributeQscCsdS(N((((RttestGetAttributeNSSscCsdS(N((((RttestGetAttributeNodeUscCsd}t|}|idd}tt|djoa|didjoM|didjo9|di djo%|di djo|di dj|i dS(NsR shttp://pyxml.sf.net/minidomtmyelemiitminidomsminidom:myelem( tdRR tgetElementsByTagNameNStelemsRRt namespaceURIt localNametprefixttagNameR:R(R R~R|((RttestGetElementsByTagNameNSWs  zcCs,|i||}tt|djdS(Ni(tdocR}tnsuritlnametnodelistRR(RRRR((Rt5get_empty_nodelist_from_elements_by_tagName_ns_helperescCs|td}t|ddt|ddt|ddtd}t|ddt|ddt|d d dS( Nss"http://xml.python.org/namespaces/at localnamet*tsplats3shttp://xml.python.org/splats not-theres#http://somewhere.else.net/not-therete(RRR(R((Rt+testGetEmptyNodeListFromElementsByTagNameNSis  cCsWt}|i|id}t|}t|}t ||j|i dS(NRP( RR R2RRUtreprtstring1tstrtstring2RR(RUR RR((RttestElementReprAndStrzs    cCsWt}|i|id}t|}t|}t ||j|i dS(Nuabc( RR R2RRURRRRRR(RUR RR((Rt_testElementReprAndStrUnicodes    cCsst}|i|idd}t|}t|}t ||jt |i ddj|i dS(Nuhttp://www.slashdot.orgu slash:abcs slash:abci( RR R2RfRURRRRRtfindR(RUR RR((Rt_testElementReprAndStrUnicodeNSs   cCs]t}|i|id}|idd}tt|t |j|i dS(NuabcRPRZ( RR R2RRURVRjRRRR(RjRUR ((RttestAttributeReprs  cCsdS(N((((RttestTextNodeReprscCs<d}t|}|i}|it||jdS(Ns (RRR R$tdomstrRR(RRR ((Rt testWriteXMLs    cCsNd}t|}|idd}|it||iddjdS(Ns" tnewls s (RRR t toprettyxmlRRRtreplace(RRR ((RttestAltNewlines   cCstd}|ii}t|idjo|idjo|idjo|i t i jow|i djog|i oYt|idjoC|idjo3|idjo#|idjo|itiijdS(Nstmypisdata i(RR RR"tpiRttargetR;R:tnodeTypetNodetPROCESSING_INSTRUCTION_NODERBR%t hasChildNodesRRR#RRRtEMPTY_NAMESPACE(R R((RttestProcessingInstructions  cCsdS(N((((RttestProcessingInstructionReprscCsdS(N((((Rt testTextReprscCsdS(N((((Rt testWriteTextscCsdS(N((((RttestDocumentElementscCsetd}|id}y|i|Wntiij onXdGH|i|idS(NstextrasFFailed to catch expected exception when adding extra document element.( RRRRR2RR RAR(RR((RttestTooManyDocumentElementss  cCsdS(N((((RttestCreateElementNSscCsdS(N((((RttestCreateAttributeNSscCsdS(N((((Rt testParsescCsdS(N((((RttestParseStringscCsdS(N((((Rt testCommentscCsdS(N((((RttestAttrListItemscCsdS(N((((RttestAttrListItemsscCsdS(N((((RttestAttrListItemNSscCsdS(N((((RttestAttrListKeysscCsdS(N((((RttestAttrListKeysNSscCstd}|i}|i}|id}|id}t |i |y|idWnt i ij onXdS(Ns RH(RRRRRBRGRWta1tremoveNamedItemta2Rt isSameNodeRR t NotFoundErr(RRRRRG((RttestRemoveNamedItems   cCstd}|i}|i}|idd}|idd}t |i |y|iddWnt i ij onXdS(Ns.shttp://xml.python.org/tb(RRRRRBRGtgetAttributeNodeNSRtremoveNamedItemNSRRRRR R(RRRRRG((RttestRemoveNamedItemNSs   cCsdS(N((((RttestAttrListValuesscCsdS(N((((RttestAttrListLengthscCsdS(N((((RttestAttrList__getitem__scCsdS(N((((RttestAttrList__setitem__scCsdS(N((((RttestSetAttrValueandNodeValuescCsdS(N((((RttestParseElementscCsdS(N((((RttestParseAttributes scCsdS(N((((RttestParseElementNamespaces scCsdS(N((((RttestParseAttributeNamespaces scCsdS(N((((RttestParseProcessingInstructionsscCsdS(N((((RttestChildNodesscCsdS(N((((RttestFirstChildscCsdS(N((((RttestHasChildNodesscCsrtd\}}tt|idjo3|iidjo |idjo|i djd|i dS(NisttestCloneElementShallow( t_setupCloneElementR tcloneRRRR t parentNodeR%R$R(RR ((RRsKcCsrtd\}}tt|idjo3|iidjo |idjo|i djd|i dS(NisttestCloneElementDeep( RR RRRRR RR%R$R(RR ((RR sKcCstd}|i}|i|}t||d|odpdd|_|_ |i dd|i dd ||fS( NsttestCloneElementtDeeptShallowtMODIFIEDtattrs NEW VALUEtaddedtVALUE( RR RRt cloneNodetdeepRt!_testCloneElementCopiesAttributesRR:RV(RR RR((RR)s  "c Cs|i}|i}|i}|i}|i|it ||jdxt t |D]}|i |}|i |} t || j oI|i| ijo6|i| ijo#|i| ijo|i| ijdt | i|jdqdWdS(Ns(clone of element has same attribute keyss3clone of attribute node has proper attribute valuess'clone of attribute node correctly owned(te1RBtattrs1te2tattrs2tkeystkeys1tkeys2tsortRtrangeRtiR!RRRKRLRRRJ( RRRRRRRRRR((RR5s      XcCs2td}|id}t|djddS(Ns ]> isFtestCloneDocumentShallow: shallow cloning of documents makes no sense!(RRRtdoc2RR%(RR((RttestCloneDocumentShallowIs  cCs#td}|id}t|i|p |i| dtt|it|ijdt|ii t i jdt|ii i|dt|ii|i d|i dj oSt|i i t ijdt|i i i|t|i i|i  ndS( Ns ]> is4testCloneDocumentDeep: document objects not distincts8testCloneDocumentDeep: wrong number of Document childrens:testCloneDocumentDeep: documentElement not an ELEMENT_NODEs@testCloneDocumentDeep: documentElement owner is not new documents;testCloneDocumentDeep: documentElement should not be shareds7testCloneDocumentDeep: doctype not a DOCUMENT_TYPE_NODE(RRRRRRRRRRRt ELEMENT_NODERItdoctypeR%tDOCUMENT_TYPE_NODE(RR((RttestCloneDocumentDeepUs"  cCst}|id}t|dj o|i|ijo|i|ijo|i|ijo|i |i jot |i t |i jov|i i t |i djoTt |i t |i jo5|i i t |i djot |idjxtt |i D]}|i i |}|i i |}t|i| o|i| o|i|ijoo|i|ijo\|i|ijoI|i |i jo6|i|ijo#|i|ijo|i|ijq"Wxtt |i D]}|i i |}|i i |}t|i| oG|i| o6|i|ijo#|i|ijo|i |i jqWdS(Nii(tcreate_nonempty_doctypeRRRRR%R:tnametpublicIdtsystemIdRtentitiesR!t notationsRRRtsetceRt notationNametencodingtactualEncodingtversiontsntcn(RRRRRRR((RttestCloneDocumentTypeDeepOkns   cCs2t}|iid}t|djddS(NittestCloneDocumentTypeDeepNotOk(tcreate_doc_with_doctypeRRRRRR%(RR((RRs cCst}|id}t|dj o|i|ijo|i|ijo|i|ijo|i |i joqt |i djo[|i i ddjoBt |i djo,|i i ddjot |idjdS(Ni(RRRRRR%R:RRRRRR!RR(RR((RttestCloneDocumentTypeShallowOks cCs2t}|iid}t|djddS(Nit!testCloneDocumentTypeShallowNotOk(RRRRRRR%(RR((RRs cCs\td}td}y|i||Wntiij onXt|ddS(Nss4: expected NotSupportedErr when importing a document( Rtdoc1Rt importNodeRRR tNotSupportedErrRttestName(RRRR((Rtcheck_import_documents  cCstdddS(NittestImportDocumentShallow(R(((RRscCstdddS(NittestImportDocumentDeep(R(((RRscCstidd|S(NR(tgetDOMImplementationtcreateDocumentR%R(R((Rtcreate_doc_without_doctypescCstiddd}g|i_g|i_tii i ddd}|iii |tii i dddd}d|_d|_d|_|iii ||S( NRs my-notations"http://xml.python.org/notations/mys my-entitys!http://xml.python.org/entities/mys1.0sutf-8sus-ascii(RtcreateDocumentTypeR%RRt_seqRRR R{tNotationtnotationtappendtEntitytentityRRR(R RR((RRs       cCsCt}t|}||iid_||iid_|S(Ni(RRR RRR!RIR(RR((RRs   cCsWt}t}y|i|id}Wntii j onXt ddS(Nis7testImportDocumentTypeShallow: expected NotSupportedErr( RtsrcR RRRtimportedRR RR(RRR((RttestImportDocumentTypeShallows  cCsWt}t}y|i|id}Wntii j onXt ddS(Nis4testImportDocumentTypeDeep: expected NotSupportedErr( RRR RRRRRR RR(RRR((RttestImportDocumentTypeDeeps  cCstd}|iid}|i|}t|i | t|i | t|i dj|dt|i i |i |dt|i|ddS(NsRs: ownerElement should be Nones: ownerDocument does not matchs.: cloned attribute must have specified == True(RRRRWRRRRRRRJR%RRIt specified(RRRRR((Rtcheck_clone_attributes    cCstdddS(NittestCloneAttributeShallow(R(((RRscCstdddS(NittestCloneAttributeDeep(R(((RRscCsQtd}|i}|i|}t|i|ijo|i |i jdS(Ns( RRR"RRRRRRR;(RRRRR((Rtcheck_clone_pis   cCstdddS(NittestClonePIShallow(R(((RR scCstdddS(NittestClonePIDeep(R(((RRscCsKtd}|i}|i|id|i|idtt|idjo|ii djd|i tt|idjo6|ii djo#|i |i jo|i i djd|itd}|i}|i|id |i tt|id jo|ii d jd |idS( NstfirsttsecondistestNormalize -- preparationit firstsecondstestNormalize -- resulttis*testNormalize -- single empty node removed(RRRRR2R-RRRR t normalizeR"R#R;R(RR((Rt testNormalizes"  ( N    (cCstd}|i}|i\}}}t|i |joM|i djo=|i |jo-|i |jo|i djo |i |jd|i dS(Nstext?t testSiblings( RRRRRRR@telmRR(R&R%R(R#RR@RR((RR")s   _cCstd}|i}|id}|i\}}|id}t |i |jo=|i |jo-|i |jo|i |jo |i |jd|i dS(Ns3it testParents( RRRRRtelm1telm2atelm2btelm3RRR(RR%R(RR'R&((RR$7s    OcCstd}|i}|d}t|d|idjox|iddjob|iid|idjoB|iid|idjo"|iidiiddjd|idS(Nsiistest NodeList.item()( RRRtchildrentdocelemRR!R%R(RR*R)((RttestNodeListItemFs    cCsdkl}|i}|i|idh|id|idh|id|id|id|id|i|i }|i }|i \}}}|i d}t|idjom|i|jo]|i|joM|i|jo=|i|jo-|idjo|idjo |idjdt|i|jo=|i|jo-|i|jo|i|jo |i|jd|idS(N(spulldomRR@tsubelmistestSAX2DOM - siblingsstestSAX2DOM - parents(txml.domtpulldomtSAX2DOMtsax2domt startDocumentt startElementt characterst endElementt endDocumenttdocumentRRRRttext1R%ttext2ttext3RR&R%R(RR(R.R9RR8R0R7R%R((Rt testSAX2DOMRs(            OcCstd}t|idjo)|iddjo|iddjdytd}Wntj onXd GH|idS( Nsu$sutf-8s4s iso-8859-15s8s"testEncodings - encoding EURO SIGNs0Comment a va ? Trs bien ?s;parsing with bad encoding should raise a UnicodeDecodeError(RRRR$tUnicodeDecodeErrorR(R((Rt testEncodingsvs >tUserDataHandlercBstZdZdZRS(NicCs7|i||d||i|ddd|_dS(Ni(tdstt setUserDatatkeyR;tselfRR%tcalled(RAt operationR@R;RR>((Rthandles(t__name__t __module__RBRD(((RR=scCst}|id}t|iddj|idddt|iddj|iddd|idddt|iddjt|iddj|idddt|iddjt|iddjt}|idd||i d}t|i o)|iddjo|iddj|i |i |i dS(NRR+i Ri i(RR RtnRt getUserDataR%R?R=thandlerRtcRBR(R RJRGRI((Rt testUserDatas&  9  cCstd}|i}|i}|id}|i|ti i d}t |i djo|i djo|itjo|iti i jo|itjov|idjof|idtjoP|idi|o7|di|o#|ii|o|ii||i|dd}t |i djo|i djo|idjo|idjo|itjo|idjo|idtjov|idtjo`|idi|oG|iddi|o+|di|o|ddfi||i|dd}t |i djo |i djo|id jo|idjo|id jo|idjo|idtjo|idtjo|idtjoy|iddtjo`|idi|oG|idd i|o+|di|o|dd fi||i|ti i d }t |i d jo|i d jo|itjo|iti i jo|itjo|idjo|idtjo|idtjoo|idtjoY|idtjoC|iddtjo*|id i|o|d i|y|i|dd Wnti ij onXd GHt|||idS(Ns RHRtvshttp://xml.python.org/nsRJshttp://xml.python.org/ns2sp:dR|tpRtxmlnssexpected NamespaceErr(RRRRRBtattrmapRt renameNodeRR RRRR:RR%RRRKRWRRIRJRt NamespaceErrt checkRenameNodeSharedConstraintsR(RRRRO((RttestRenameAttributes*     " cCs4td}|i}|i|tiid}t|i djoV|i djoF|i djo6|i tiijo |idjo|ii||i|dd}t|i djoP|i djo@|i djo0|i djo |idjo|ii||i|dd}t|i djoP|i djo@|i djo0|i djo |idjo|ii||i|tiid }t|i d joV|i d joF|i djo6|i tiijo |idjo|ii|t|||idS( NsRHshttp://xml.python.org/nsRshttp://xml.python.org/ns2sp:cRJRMR|(RRRRRPRR RRRR:RR%RRRIRRRR(RR((RttestRenameElements  lffl cCsy|i|ddWntiij onXdGHtd}y|i|tiidWntii j onXdGHdS(Nshttp://xml.python.org/nss xmlns:foosexpected NamespaceErrsR+sexpected WrongDocumentErr( RRPRjRR RQRRRtWrongDocumentErr(RRjR((RRR#s cCstiiiitiidd}|id}y|i |tiidWntii j onXdGH|i dS(NRtcommentR+s3expected NotSupportedErr when renaming comment node( RR R{RRRR%RR9RjRPRR(RRj((RttestRenameOther4s'cCs6|i}t||jdt|t|fdS(Nslooking for %s, found %s(Rjt wholeTextttRtsR(RjRZRY((RtcheckWholeTextBs cCsvtd}|i}|id}t|d|i|idt|d|i |i d|t|d|i d}|i||id }|i|t|dt|d |id }|i|||}t|dt|d |id d }|i|||}t|dt|d |i|t|d t|d dS(Ns aiRHRtabRJtcabRVR|txtytztcabd(RRRRRR@R[R2R-RtcreateCDATASectionR9tsplitterR8RR^R>tcreateProcessingInstructiont removeChild(RcRRR8R@R^((Rt testWholeTextFs8                cCs^td}|i}|i}t|i|jd|i||t|i|jddS(NssBefore replaceChild()sAfter replaceChild()( RRRRR"RRRR>(RRR((RttestPatch1094164js    cCsd}|\}}}}}|id}t|dt|dt t |i dj|\}}}}}|id}t|dt|dt t |i dj|\}}}}}|id}t|dt |djot |i djdS( NcCsutd}|i}|i}|i}|i}|i |i d||i |i d||||||fS(NsadRRJ( RRRRR"R7R#R8R(RcRR-Rb(RcRRR8R7((Rtsetupvs     s new contentR|iR]iRi( RhRRR7RcR8treplaceWholeTextR@R[RRRR%(RcRRhRR8R7R@((RttestReplaceWholeTextus      cCstd}|i}|i}t|idjo|i t i i jdi }xO|D]G}|i|}|i}tt|do|i t i i jqZWdS(Nsl ]>s+id notid text enum ref refs ent ents nm nmsR(RRRRt schemaTypeRYRRR%t namespaceRR RtsplittnamesRWRHthasattr(RHRRRRYRn((RttestSchemaTypes   )  cCstd}|i}|id}|id}t|iddjo|i o|i |i dt|i |ido|i o|i |i dt|i |ido*|i |ido|i o|i |i d}d|_|i|t|iddjo6|i |ido|i o|i o|i |i|tiidt|i |ido|i dS(NsRRRLtwtan(RRRRRWRRRtgetElementByIdR%RrRqRtcreateAttributeta3RKtsetAttributeNodeRPRR R(RRRRuR((RttestSetIdAttributes  / 1 I  RcCsd}d}td|d|d}|i}|i|d}|i|d}t |i ddjo|i o|i |i |dt |i|i do|i o|i |i |dt |i|i do*|i|i d o|i o|i |i|d}d|_|i|t |i|i d t |i t |i t |i t |i ddj|i|tiid t |i|i d o|i dS( Nshttp://xml.python.org/ns1shttp://xml.python.org/ns2sRRRLRqRr(tNS1tNS2RRRRRRRRRsR%RrtsetIdAttributeNSRtcreateAttributeNSRuRKRvRPRR R(RRRRuRRxRy((RttestSetIdAttributeNSs* /1I   cCsd}d}td|d|d}|i}|i|d}|i|d}t |i ddjo|i o|i |i |t |i|i do|i o|i |i |t |i|i do*|i|i d o|i o|i |i|d}d|_|i|t |i|i d t |i t |i t |i t |i ddj|i|tiid t |i|i d o|i dS( Nshttp://xml.python.org/ns1shttp://xml.python.org/ns2sRRRLRqRr(RxRyRRRRRRRRRsR%RrtsetIdAttributeNodeRR{RuRKRvRPRR R(RRRRuRRxRy((RttestSetIdAttributeNodes* / 1 I   c Cstd}ti|}ti|}||fg}x|o|i\}}t |i |i joQt |it |ijo2|i|ijo|i| o|i| |i tijot |it |it |it |it t |it |ijot |it |ijxtt |iD]y}|ii|}|ii|} t |i| ijo#|i| ijo|i| ijti|| fq]Wxtt |iD]y}|ii|}|ii|} t |i!| i!jo#|i| ijo|i| ij|i|| fqWn|i ti"jo-t |i#i|o|i#i|nx>tt |iD]'}|i|i||i|fqWq<WdS(Ns ]> text ($RRtpickletdumpsRZtloadsRtstacktpoptn1tn2RRRRR:RRRRRRRR!tno1tno2RRRtstatckRRRRt DOCUMENT_NODERI( RRRRRRZRRRRR((RttestPickledDocuments> j    A<<-cCsdS(N((((Rtcheck_allnodesTscCsptttidjdttio7dGHtotiidd!GHqcttiGHnht_dS(Nis"assertion: len(Node.allnodes) == 0sGarbage left over:i (RRRtallnodestverbosetitems(((RRWss Test Failed: is* **** Check for failures in these tests:s (tostsysRt tracebackR ttest.test_supportRR-Rtxml.dom.minidomtxml.parsers.expatRRRRRREtargvtbaset__file__tpathtjointdirnametextsepR RRRR)R5R7R<R=R?RFRMRNRORQRTRYRaRbRdRiRlRsRtRuRvRwRxRyRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR%R RRRRRRRRRRR!R"R$R+R:R<R=RKRSRTRRRWR[RfRgRjRpRwR|R~RtglobalsRRnRtfailedRtAttributeErrorRRt startswithtfuncRtstdouttflushtprint_exceptiontexc_infoR(R$RNRRR=RRRdRlRTRRR R"RRRvRRRRaRRRRRRYRRRRR~RRpR!R<RRRR=RRbRiRRRRRRRKRMRRRRRRR7RRRR RRR)RRRRRORRtRRxRjRfRRnR:RgRRRRTR5RRRQR RRRRuRwRRRyRRRRRRFRRRRR?RRRRR[RR<R|RRSRRRRsRRRRRWRRwRRRRR+((Rt?s8           ,    *    #       &                                            "                  $   R +    $  !  $ $ 0