示例#1
0
 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)
示例#2
0
 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)
示例#3
0
 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)
示例#4
0
 def test_xml_empty(self):
     xml = """<a></a>"""
     as_dict = {"body": {"a": {}}}
     deserializer = wsgi.XMLDeserializer()
     self.assertEqual(deserializer.deserialize(xml), as_dict)