# HG changeset patch # User Alexandre Richardson <alexandre.richardson@logilab.fr> # Date 1711094041 -3600 # Fri Mar 22 08:54:01 2024 +0100 # Node ID 77c6b264f1c37d244d900a6a631ea2f29e6922bd # Parent ba4990d7978b34c6a10e7275b4327b028d7b8a17 feat: save input data associated to an import process diff --git a/cubicweb_rodolf/import_data.py b/cubicweb_rodolf/import_data.py --- a/cubicweb_rodolf/import_data.py +++ b/cubicweb_rodolf/import_data.py @@ -91,6 +91,16 @@ ) rdf_graph = process_to_apply(import_process, log) log.info(f"Data was successfully downloaded from {dataservice.dc_title()}") + import_process.cw_set( + has_input_dataset=cnx.create_entity( + "File", + title=f"Input dataset for ImportProcess#{import_process_eid}", + data=Binary(rdf_graph.serialize(format="ttl").encode("utf8")), + data_name=f"Input_dataset_{import_process.eid}.ttl", + data_format="text/turtle", + ) + ) + log.info(f"Input data was successfully saved for {dataservice.dc_title()}") valid_rdf, shacl_errors = check_rdf_graph(rdf_graph, import_procedure) if not valid_rdf: diff --git a/test/test_rodolf.py b/test/test_rodolf.py --- a/test/test_rodolf.py +++ b/test/test_rodolf.py @@ -131,6 +131,12 @@ import_process = task.reverse_rq_task[0] wf = import_process.cw_adapt_to("IWorkflowable") self.assertEqual(wf.state, "successful") + self.assertEqual(len(import_process.has_input_dataset), 1) + input_dataset = import_process.has_input_dataset[0] + self.assertEqual( + input_dataset.data_name, + f"Input_dataset_{import_process.eid}.ttl" + ) @requests_mock.mock() def test_shacl_nok(self, mock):