Exemplo n.º 1
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)
Exemplo n.º 2
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)
Exemplo n.º 3
0
 def test_xml_meta_parsing_special_character(self):
     """Test that when a SaxParser splits a string containing special
     characters into multiple childNodes there are no issues extracting
     the text.
     """
     meta_xml_str = """
         <metadata>
             <meta key="key3">value&amp;3</meta>
             <meta key="key2">value2</meta>
             <meta key="key1">value1</meta>
         </metadata>
         """.strip()
     meta_expected = {'key1': 'value1', 'key2': 'value2', 'key3': 'value&3'}
     meta_deserializer = wsgi.MetadataXMLDeserializer()
     document = wsgi.utils.safe_minidom_parse_string(meta_xml_str)
     root_node = document.childNodes[0]
     meta_extracted = meta_deserializer.extract_metadata(root_node)
     self.assertEqual(meta_expected, meta_extracted)