def updateMetadata(file, metadata, logger): try: logger.debug('Start updating the metadata in the xml file %s'%file) mdEditor = ChildMetadataBinding(file, logger) mdEditor.updateId(metadata['identifier']) mdEditor.updateTitle(metadata['title']) mdEditor.updateAbstract(metadata['abstract']) mdEditor.updateHierarchyLevelName(metadata['hierarchylevel']) mdEditor.updateBoundingBox(metadata['westBoundLongitude'], metadata['eastBoundLongitude'], metadata['southBoundLatitude'], metadata['northBoundLatitude']) mdEditor.updateDateStamp(metadata['dateStamp']) mdEditor.updateReferenceTime(metadata['temporalExtent_begin'], metadata['temporalExtent_end']) mdEditor.updateReferenceDate(metadata['cite_date']) mdEditor.updateGraphicOverview(metadata['overviews']) mdEditor.updateIdCode(metadata['identifier']) mdEditor.updateOnlineResource(metadata['onlineresource']) print '============================' print mdEditor.tostring() print '============================' mdEditor.saveFile(file) return True except: logger.error('Problems while updating the metadata for the xml file %s'%file) raise
def testUpdateBoundingBox(self): try: updateWestBoundLonValue = 21.49 updateEastBoundLonValue = 21.66 updateSouthBoundLatValue = 55.49 updateNorthBoundLatValue = 55.59 tmpDirectory = tempfile.mkdtemp("", "tmp_", TEMPLATE_FILES["tmp_dir"]) mdFile = createTemporaryCopy(TEMPLATE_FILES["child"], tmpDirectory) mdEditor = ChildMetadataBinding(mdFile, self.logger) response = mdEditor.updateBoundingBox( updateWestBoundLonValue, updateEastBoundLonValue, updateSouthBoundLatValue, updateNorthBoundLatValue ) self.assertTrue(response, "Function: testUpdateBoundingBox - Response is not like expected.") # check if value is correctly set geograhicBoundingBoxElement = mdEditor.__getChildElement__( parentElementId=mdEditor.ns["gmd"] + "identificationInfo", childElementId=mdEditor.ns["gmd"] + "EX_GeographicBoundingBox", ) # test updateWestBoundLonValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns["gmd"] + "westBoundLongitude"): valueElement = element.find(mdEditor.ns["gco"] + "Decimal") self.assertEqual( updateWestBoundLonValue, valueElement.text, "Function: testUpdateBoundingBox - Response is not equal to the expected response.", ) # test updateEastBoundLonValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns["gmd"] + "eastBoundLongitude"): valueElement = element.find(mdEditor.ns["gco"] + "Decimal") self.assertEqual( updateEastBoundLonValue, valueElement.text, "Function: testUpdateBoundingBox - Response is not equal to the expected response.", ) # test updateSouthBoundLatValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns["gmd"] + "southBoundLatitude"): valueElement = element.find(mdEditor.ns["gco"] + "Decimal") self.assertEqual( updateSouthBoundLatValue, valueElement.text, "Function: testUpdateBoundingBox - Response is not equal to the expected response.", ) # test updateNorthBoundLatValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns["gmd"] + "northBoundLatitude"): valueElement = element.find(mdEditor.ns["gco"] + "Decimal") self.assertEqual( updateNorthBoundLatValue, valueElement.text, "Function: testUpdateBoundingBox - Response is not equal to the expected response.", ) except: raise finally: shutil.rmtree(tmpDirectory)
def testUpdateBoundingBox(self): try: updateWestBoundLonValue = 21.49 updateEastBoundLonValue = 21.66 updateSouthBoundLatValue = 55.49 updateNorthBoundLatValue = 55.59 tmpDirectory = tempfile.mkdtemp('', 'tmp_', TEMPLATE_FILES['tmp_dir']) mdFile = createTemporaryCopy(TEMPLATE_FILES['child'], tmpDirectory) mdEditor = ChildMetadataBinding(mdFile, self.logger) response = mdEditor.updateBoundingBox(updateWestBoundLonValue, updateEastBoundLonValue, updateSouthBoundLatValue, updateNorthBoundLatValue) self.assertTrue(response, 'Function: testUpdateBoundingBox - Response is not like expected.') # check if value is correctly set geograhicBoundingBoxElement = mdEditor.__getChildElement__(parentElementId=mdEditor.ns['gmd']+'identificationInfo', childElementId=mdEditor.ns['gmd']+'EX_GeographicBoundingBox') # test updateWestBoundLonValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns['gmd']+'westBoundLongitude'): valueElement = element.find(mdEditor.ns['gco']+'Decimal') self.assertEqual(updateWestBoundLonValue,valueElement.text, 'Function: testUpdateBoundingBox - Response is not equal to the expected response.') # test updateEastBoundLonValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns['gmd']+'eastBoundLongitude'): valueElement = element.find(mdEditor.ns['gco']+'Decimal') self.assertEqual(updateEastBoundLonValue,valueElement.text, 'Function: testUpdateBoundingBox - Response is not equal to the expected response.') # test updateSouthBoundLatValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns['gmd']+'southBoundLatitude'): valueElement = element.find(mdEditor.ns['gco']+'Decimal') self.assertEqual(updateSouthBoundLatValue,valueElement.text, 'Function: testUpdateBoundingBox - Response is not equal to the expected response.') # test updateNorthBoundLatValue for element in geograhicBoundingBoxElement.iter(mdEditor.ns['gmd']+'northBoundLatitude'): valueElement = element.find(mdEditor.ns['gco']+'Decimal') self.assertEqual(updateNorthBoundLatValue,valueElement.text, 'Function: testUpdateBoundingBox - Response is not equal to the expected response.') except: raise finally: shutil.rmtree(tmpDirectory)