def test_insert_xml_element(self): """Check we can't insert custom nested elements""" root = ElementTree.Element('root') b = ElementTree.SubElement(root, 'b') ElementTree.SubElement(b, 'c') new_element_path = 'd/e/f' expected_xml = '<root><b><c /></b><d><e><f>TESTtext</f></e></d></root>' element = insert_xml_element(root, new_element_path) element.text = 'TESTtext' result_xml = ElementTree.tostring(root) self.assertEquals(expected_xml, result_xml)
def test_insert_xml_element(self): """Check we can't insert custom nested elements""" root = ElementTree.Element("root") b = ElementTree.SubElement(root, "b") ElementTree.SubElement(b, "c") new_element_path = "d/e/f" expected_xml = "<root><b><c /></b><d><e><f>TESTtext</f></e></d></root>" element = insert_xml_element(root, new_element_path) element.text = "TESTtext" result_xml = ElementTree.tostring(root) self.assertEquals(expected_xml, result_xml)
def xml(self): """ xml representation of the metadata. :return: xml representation of the metadata :rtype: ElementTree.Element """ tree = ElementTree.parse(METADATA_XML_TEMPLATE) root = tree.getroot() for name, prop in self.properties.iteritems(): path = prop.xml_path elem = root.find(path, XML_NS) if elem is None: # create elem elem = insert_xml_element(root, path) elem.text = self.get_xml_value(name) return root