def overwriteDestination(self): from comoonics import XmlTools self.enterprisecopy=EnterpriseCopy(XmlTools.overwrite_attributes_with_xpaths(self.enterprisecopy.getElement(), self.getOverwriteMap()), self.enterprisecopy.getDocument()) for setname in self.sets: for myset in self.enterprisecopy.allsets: if myset.hasAttribute("name") and myset.getAttribute("name"): self.sets[setname]=myset return self.enterprisecopy.getElement()
def test_overwrite_attributes_with_xpaths(self): for doc in self.docs: if len(doc) > 1: (doc, xpathtest)=doc (xpath, expectedresult, newvalue) = xpathtest xml2=XmlTools.overwrite_attributes_with_xpaths(doc.documentElement, { xpath: newvalue }) buf=XmlTools.toPrettyXML(xml2) self.assertEquals(buf.replace("\n", "").replace(" ", "").replace('<?xmlversion="1.0"?>', ""), XmlTools.toPrettyXML(doc).replace("\n", "").replace(" ", "").replace('<?xmlversion="1.0"?>', "").replace("lilr629", "myname").replace("/dev/sda1", "mydisk"))
def test_overwrite_attributes_with_xpaths2(self): doc="""<a> <b name="hallo"/> <b name="hallo2"/> <c name="hallo3"/> <c name2="hallo4"/> <c name="hallo5"/> </a> """ edoc="""<a> <b name="marc"/> <b name="marc"/> <c name="marc"/> <c name2="hallo4"/> <c name="marc"/> </a> """ rdoc=XmlTools.overwrite_attributes_with_xpaths(XmlTools.parseXMLString(doc), {"//b/@name": "marc", "/a/c/@name": "marc"}) self.failUnlessEqual(XmlTools.toPrettyXML(rdoc).replace("\n", "").replace(" ", "").replace("\t", "").replace('<?xmlversion="1.0"?>', ""), edoc.replace("\n", "").replace(" ", "").replace("\t", ""))