class MetaDataWriteXMLTest(unittest.TestCase): """ Tests for XMLWriter. """ WRITABLE_METADATA = MetaDataReadXMLTest.EXPECTED_DICTIONARY def setUp(self): """ Sets up necessary files for the tests. """ meta_data_entity = GenericMetaData(self.WRITABLE_METADATA) self.meta_writer = XMLWriter(meta_data_entity) self.result_path = os.path.join(os.path.dirname(__file__), "Operation.xml") def tearDown(self): """ Remove created XML file. """ unittest.TestCase.tearDown(self) os.remove(self.result_path) def test_write_metadata(self): """ Test that an XML file is created and correct data is written in it. """ self.assertFalse(os.path.exists(self.result_path)) self.meta_writer.write(self.result_path) self.assertTrue(os.path.exists(self.result_path)) reader = XMLReader(self.result_path) meta_data = reader.read_metadata() for key, value in MetaDataReadXMLTest.EXPECTED_DICTIONARY.iteritems(): found_value = meta_data[key] self.assertEqual(value, found_value)
def setUp(self): """ Sets up necessary files for the tests. """ meta_data_entity = GenericMetaData(self.WRITABLE_METADATA) self.meta_writer = XMLWriter(meta_data_entity) self.result_path = os.path.join(os.path.dirname(__file__), "Operation.xml")
def write_image_metadata(self, figure): """ Writes figure meta-data into XML file """ _, dict_data = figure.to_dict() meta_entity = GenericMetaData(dict_data) XMLWriter(meta_entity).write(self._compute_image_metadata_file(figure))
def update_operation_metadata(self, project_name, new_group_name, operation_id, is_group=False): """ Update operation meta data. :param is_group: when FALSE, use parameter 'new_group_name' for direct assignment on operation.user_group when TRUE, update operation.operation_group.name = parameter 'new_group_name' """ op_path = self.get_operation_meta_file_path(project_name, operation_id) if not os.path.exists(op_path): self.logger.warning( "Trying to update an operation-meta file which does not exist." " It could happen in a group where partial entities have errors!" ) return op_meta_data = XMLReader(op_path).read_metadata() if is_group: group_meta_str = op_meta_data[ DataTypeMetaData.KEY_FK_OPERATION_GROUP] group_meta = json.loads(group_meta_str) group_meta[ DataTypeMetaData.KEY_OPERATION_GROUP_NAME] = new_group_name op_meta_data[DataTypeMetaData.KEY_FK_OPERATION_GROUP] = json.dumps( group_meta) else: op_meta_data[DataTypeMetaData.KEY_OPERATION_TAG] = new_group_name XMLWriter(op_meta_data).write(op_path)
def write_project_metadata(self, project): """ :param project: Project instance, to get metadata from it. """ proj_path = self.get_project_meta_file_path(project.name) _, meta_dictionary = project.to_dict() meta_entity = GenericMetaData(meta_dictionary) XMLWriter(meta_entity).write(proj_path) os.chmod(proj_path, TVBSettings.ACCESS_MODE_TVB_FILES)
def write_operation_metadata(self, operation): """ :param operation: DB stored operation instance. """ project_name = operation.project.name op_path = self.get_operation_meta_file_path(project_name, operation.id) _, equivalent_dict = operation.to_dict() meta_entity = GenericMetaData(equivalent_dict) XMLWriter(meta_entity).write(op_path) os.chmod(op_path, TVBSettings.ACCESS_MODE_TVB_FILES)