def test_xml(self): xml = """ <a a1="1" a2="2"> <bs><b>1</b><b>2</b><b>3</b><b><c c1="1"/></b></bs> <d><e>1</e></d> <f>1</f> </a> """.strip() as_dict = { 'body': { 'a': { 'a1': '1', 'a2': '2', 'bs': ['1', '2', '3', { 'c': { 'c1': '1' } }], 'd': { 'e': '1' }, 'f': '1', }, }, } metadata = {'plurals': {'bs': 'b', 'ts': 't'}} deserializer = wsgi.XMLDeserializer(metadata=metadata) self.assertEqual(deserializer.deserialize(xml), as_dict)
def _get_image_metadata(self, body): deserializer = wsgi.XMLDeserializer() volume = deserializer.find_first_child_named(minidom.parseString(body), 'volume') image_metadata = deserializer.find_first_child_named( volume, 'volume_image_metadata') return wsgi.MetadataXMLDeserializer().extract_metadata(image_metadata)
def _get_image_metadata_list(self, body): deserializer = wsgi.XMLDeserializer() volumes = deserializer.find_first_child_named( minidom.parseString(body), 'volumes') volume_list = deserializer.find_children_named(volumes, 'volume') image_metadata_list = [ deserializer.find_first_child_named(volume, 'volume_image_metadata') for volume in volume_list ] return map(wsgi.MetadataXMLDeserializer().extract_metadata, image_metadata_list)
def test_xml_empty(self): xml = """<a></a>""" as_dict = {"body": {"a": {}}} deserializer = wsgi.XMLDeserializer() self.assertEqual(deserializer.deserialize(xml), as_dict)