From e62921cca457fe49c35e33769d10073631f8ad02 Mon Sep 17 00:00:00 2001
From: Alexander Schlemmer <alexander@mail-schlemmer.de>
Date: Thu, 3 Feb 2022 14:32:36 +0100
Subject: [PATCH] ENH: added support for referencing files

---
 integrationtests/model.yml       |  2 ++
 integrationtests/test.py         | 26 +++++++++++++++++++++++++-
 unittests/scifolder_extended.yml |  2 ++
 3 files changed, 29 insertions(+), 1 deletion(-)

diff --git a/integrationtests/model.yml b/integrationtests/model.yml
index 055c4fb5..8d6d7fa7 100644
--- a/integrationtests/model.yml
+++ b/integrationtests/model.yml
@@ -83,3 +83,5 @@ hdf5File:
 Measurement:
   recommended_properties:
     date:
+ReadmeFile:
+  datatype: REFERENCE
diff --git a/integrationtests/test.py b/integrationtests/test.py
index af73c44f..f615f82c 100755
--- a/integrationtests/test.py
+++ b/integrationtests/test.py
@@ -208,6 +208,30 @@ def test_identifiable_update(clear_database, usemodel, ident, crawler):
     assert len(ups) == 0
 
 
+def test_file_insertion_dry(clear_database, usemodel, ident, crawler_extended):
+    updateList = crawler_extended.updateList
+    fileList = [r for r in updateList if r.role == "File"]
+    assert len(fileList) == 11
+
+    for f in fileList:
+        assert f.path.endswith("README.md")
+        assert f.path == f.file
+
+    ins, ups = crawler_extended.synchronize(commit_changes=False)
+    assert len(ups) == 0
+    fileList_ins = [r for r in ins if r.role == "File"]
+    assert len(fileList_ins) == 11
+
+
 def test_file_insertion(clear_database, usemodel, ident, crawler_extended):
-    updateList = cr.updateList
+    # correct paths for current working directory
+    updateList = crawler_extended.updateList
+    fileList = [r for r in updateList if r.role == "File"]
+    for f in fileList:
+        f.file = rfp("..", "unittests", "test_directories", "examples_article", f.file)
+    ins, ups = crawler_extended.synchronize(commit_changes=True)
+    fileList_ins = [r for r in ins if r.role == "File"]
+    assert len(fileList_ins) == 11
+
+    assert db.execute_query("COUNT File") > 0
     
diff --git a/unittests/scifolder_extended.yml b/unittests/scifolder_extended.yml
index c78f6598..f0405c9d 100644
--- a/unittests/scifolder_extended.yml
+++ b/unittests/scifolder_extended.yml
@@ -47,6 +47,8 @@ DataAnalysis:  # name of the converter
                   file: $README  # this is automatically the relative path
                                  # starting from the top level structure element
                                  # of this element
+                Measurement:
+                  ReadmeFile: $ReadmeFile
                       
               subtree:
                 description:
-- 
GitLab