# 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):