def test_processing_history(self): """ Test processing history metadata """ projectDir = "/tmp" step1 = "mkdir foo; cd foo" step2 = "touch README.txt" step3 = "git init" GenericMetadata.appendProcessingHistoryItem(self.context, step1) GenericMetadata.appendProcessingHistoryItem(self.context, step2) GenericMetadata.appendProcessingHistoryItem(self.context, step3) history = GenericMetadata.getProcessingHistoryList(self.context) self.assertTrue(len(history) == 3, "Expected history length to be 3, but it is %d" % (len(history),) ) self.assertTrue(history[0] == step1) self.assertTrue(history[1] == step2) self.assertTrue(history[2] == step3)
context = Context(args.projectDir, None) # Make sure there's no trailing PATH_SEP_IRODS on the collection collection = args.collection.rstrip(PATH_SEP_IRODS) outfilePath = os.path.join(context.projectDir, OUTFILE_NAME) outfile = codecs.getwriter('utf-8')(open(outfilePath, 'w')) outfile.write('<?xml version="1.0" encoding="UTF-8" ?>\n') outfile.write('<metadata>\n') # Write study area metadata to collection root writeDictToXMLFile(outfile, collection, GenericMetadata.readStudyAreaEntries(context)) # Write processing history to collection root history = GenericMetadata.getProcessingHistoryList(context) i = 1 for entry in history: attribute = "processing_step_%d" % (i, ) i += 1 writeAVUToXMLFile(outfile, collection, attribute, entry) # Write provenance to each item in the manifest provenance = GenericMetadata.readAssetProvenanceObjects(context) for entry in provenance: target = collection + PATH_SEP_IRODS + entry.dcIdentifier writeAVUToXMLFile(outfile, target, 'name', entry.name) writeAVUToXMLFile(outfile, target, 'dc.source', entry.dcSource) writeAVUToXMLFile(outfile, target, 'dc.title', entry.dcTitle) writeAVUToXMLFile(outfile, target, 'dc.date', entry.dcDate.strftime(AssetProvenance.FMT_DATE))
context = Context(args.projectDir, None) # Make sure there's no trailing PATH_SEP_IRODS on the collection collection = args.collection.rstrip(PATH_SEP_IRODS) outfilePath = os.path.join(context.projectDir, OUTFILE_NAME) outfile = codecs.getwriter('utf-8')(open(outfilePath, 'w')) outfile.write('<?xml version="1.0" encoding="UTF-8" ?>\n') outfile.write('<metadata>\n') # Write study area metadata to collection root writeDictToXMLFile(outfile, collection, GenericMetadata.readStudyAreaEntries(context)) # Write processing history to collection root history = GenericMetadata.getProcessingHistoryList(context) i = 1 for entry in history: attribute = "processing_step_%d" % (i,); i += 1 writeAVUToXMLFile(outfile, collection, attribute, entry) # Write provenance to each item in the manifest provenance = GenericMetadata.readAssetProvenanceObjects(context) for entry in provenance: target = collection + PATH_SEP_IRODS + entry.dcIdentifier writeAVUToXMLFile(outfile, target, 'name', entry.name) writeAVUToXMLFile(outfile, target, 'dc.source', entry.dcSource) writeAVUToXMLFile(outfile, target, 'dc.title', entry.dcTitle) writeAVUToXMLFile(outfile, target, 'dc.date', entry.dcDate.strftime(AssetProvenance.FMT_DATE)) writeAVUToXMLFile(outfile, target, 'dc.publisher', entry.dcPublisher) writeAVUToXMLFile(outfile, target, 'dc.description', entry.dcDescription)