From 2cc517ee59f7d48af45b490b598c6e90e85e2ee3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Thu, 5 May 2022 15:13:00 +0200
Subject: [PATCH] move

---
 integrationtests/README.md                    |  5 +-
 .../realworld_example/test_dataset_crawler.py | 51 +++++++++++++++----
 .../realworld_example/data/35/.dataspace.json |  0
 .../03_raw_data/001_dataset1/demo-dataset.csv |  0
 .../35/03_raw_data/001_dataset1/metadata.json |  0
 .../data/35/03_raw_data/README_RawData.md     |  0
 .../35/03_raw_data/metadata-template.json     |  0
 .../README_ProcessedData.md                   |  0
 .../04_data_processing/metadata-template.json |  0
 .../data/35/05_results/README_Results.md      |  0
 .../realworld_example/data/35/README.md       |  0
 .../realworld_example/dataset_cfoods.yml      |  0
 .../schema/dataset-inheritance.yml            |  0
 .../schema/dataset.schema.json                |  0
 .../schema/dataspace.schema.json              |  0
 .../schema/zmt-organisation.yml               |  0
 16 files changed, 42 insertions(+), 14 deletions(-)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/.dataspace.json (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/03_raw_data/001_dataset1/demo-dataset.csv (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/03_raw_data/README_RawData.md (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/03_raw_data/metadata-template.json (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/04_data_processing/README_ProcessedData.md (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/04_data_processing/metadata-template.json (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/05_results/README_Results.md (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/data/35/README.md (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/dataset_cfoods.yml (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/schema/dataset-inheritance.yml (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/schema/dataset.schema.json (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/schema/dataspace.schema.json (100%)
 rename integrationtests/test_data/{ => extroot}/realworld_example/schema/zmt-organisation.yml (100%)

diff --git a/integrationtests/README.md b/integrationtests/README.md
index 5c308f51..96789ed9 100644
--- a/integrationtests/README.md
+++ b/integrationtests/README.md
@@ -1,3 +1,2 @@
-1. Clear database (see clear_database.py)
-2. Insert model (see insert_model.py)
-3. Run test.py
+1. Mount test_data/extroot as extroot folder in the CaosDB server
+2. use an empty server
diff --git a/integrationtests/realworld_example/test_dataset_crawler.py b/integrationtests/realworld_example/test_dataset_crawler.py
index 3c8e486a..51f67330 100644
--- a/integrationtests/realworld_example/test_dataset_crawler.py
+++ b/integrationtests/realworld_example/test_dataset_crawler.py
@@ -34,10 +34,44 @@ from newcrawler.converters import JSONFileConverter, DictConverter
 from newcrawler.identifiable_adapters import CaosDBIdentifiableAdapter
 from newcrawler.structure_elements import File, JSONFile, Directory
 
+from caosadvancedtools.testutils import clear_database, set_test_key
+import sys
 
-def test_dataset():
-    crawler_definition_path = "./dataset_cfoods.yml"
-    #json_file_path = rfp("test_directories", "single_file_test_data", "testjson.json")
+from caosadvancedtools.models.parser import parse_model_from_json_schema, parse_model_from_yaml
+set_test_key("10b128cf8a1372f30aa3697466bb55e76974e0c16a599bb44ace88f19c8f61e2")
+
+
+def rfp(*pathcomponents):
+    """
+    Return full path.
+    Shorthand convenience function.
+    """
+    return os.path.join(os.path.dirname(__file__), *pathcomponents)
+
+
+DATADIR = rfp("..", "test_data", "extroot", "realworld_example")
+
+
+@pytest.fixture
+def usemodel():
+    # First load dataspace data model
+    dataspace_definitions = parse_model_from_json_schema(
+        os.path.join(DATADIR, "schema", "dataspace.schema.json"))
+    dataspace_definitions.sync_data_model(noquestion=True)
+
+    # Then general dataset definitions
+    dataset_definitions = parse_model_from_json_schema(
+        os.path.join(DATADIR, "schema", "dataset.schema.json"))
+    dataset_definitions.sync_data_model(noquestion=True)
+
+    # Finally, add inheritances as defined in yaml
+    dataset_inherits = parse_model_from_yaml(
+        os.path.join(DATADIR, "schema", "dataset-inheritance.yml"))
+    dataset_inherits.sync_data_model(noquestion=True)
+
+
+def test_dataset(clear_database, usemodel):
+    # json_file_path = rfp("test_directories", "single_file_test_data", "testjson.json")
 
     ident = CaosDBIdentifiableAdapter()
     ident.register_identifiable(
@@ -48,15 +82,14 @@ def test_dataset():
     ).add_parent("Person").add_property("full_name"))
 
     crawler = Crawler(debug=True, identifiableAdapter=ident)
-    crawler_definition = crawler.load_definition(crawler_definition_path)
-    #print(json.dumps(crawler_definition, indent=3))
+    crawler_definition = crawler.load_definition(os.path.join(DATADIR, "dataset_cfoods.yml"))
+    # print(json.dumps(crawler_definition, indent=3))
     # Load and register converter packages:
     converter_registry = crawler.load_converters(crawler_definition)
     # print("DictIntegerElement" in converter_registry)
 
     records = crawler.start_crawling(
-        Directory('data',
-                  "data"),
+        Directory(os.path.join(DATADIR, 'data'), "data"),
         crawler_definition,
         converter_registry
     )
@@ -67,7 +100,3 @@ def test_dataset():
     # print(subc)
     # print(records)
     ins, ups = crawler.synchronize()
-
-
-if __name__ == "__main__":
-    test_dataset()
diff --git a/integrationtests/test_data/realworld_example/data/35/.dataspace.json b/integrationtests/test_data/extroot/realworld_example/data/35/.dataspace.json
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/.dataspace.json
rename to integrationtests/test_data/extroot/realworld_example/data/35/.dataspace.json
diff --git a/integrationtests/test_data/realworld_example/data/35/03_raw_data/001_dataset1/demo-dataset.csv b/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/demo-dataset.csv
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/03_raw_data/001_dataset1/demo-dataset.csv
rename to integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/demo-dataset.csv
diff --git a/integrationtests/test_data/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json b/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json
rename to integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/001_dataset1/metadata.json
diff --git a/integrationtests/test_data/realworld_example/data/35/03_raw_data/README_RawData.md b/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/README_RawData.md
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/03_raw_data/README_RawData.md
rename to integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/README_RawData.md
diff --git a/integrationtests/test_data/realworld_example/data/35/03_raw_data/metadata-template.json b/integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/metadata-template.json
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/03_raw_data/metadata-template.json
rename to integrationtests/test_data/extroot/realworld_example/data/35/03_raw_data/metadata-template.json
diff --git a/integrationtests/test_data/realworld_example/data/35/04_data_processing/README_ProcessedData.md b/integrationtests/test_data/extroot/realworld_example/data/35/04_data_processing/README_ProcessedData.md
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/04_data_processing/README_ProcessedData.md
rename to integrationtests/test_data/extroot/realworld_example/data/35/04_data_processing/README_ProcessedData.md
diff --git a/integrationtests/test_data/realworld_example/data/35/04_data_processing/metadata-template.json b/integrationtests/test_data/extroot/realworld_example/data/35/04_data_processing/metadata-template.json
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/04_data_processing/metadata-template.json
rename to integrationtests/test_data/extroot/realworld_example/data/35/04_data_processing/metadata-template.json
diff --git a/integrationtests/test_data/realworld_example/data/35/05_results/README_Results.md b/integrationtests/test_data/extroot/realworld_example/data/35/05_results/README_Results.md
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/05_results/README_Results.md
rename to integrationtests/test_data/extroot/realworld_example/data/35/05_results/README_Results.md
diff --git a/integrationtests/test_data/realworld_example/data/35/README.md b/integrationtests/test_data/extroot/realworld_example/data/35/README.md
similarity index 100%
rename from integrationtests/test_data/realworld_example/data/35/README.md
rename to integrationtests/test_data/extroot/realworld_example/data/35/README.md
diff --git a/integrationtests/test_data/realworld_example/dataset_cfoods.yml b/integrationtests/test_data/extroot/realworld_example/dataset_cfoods.yml
similarity index 100%
rename from integrationtests/test_data/realworld_example/dataset_cfoods.yml
rename to integrationtests/test_data/extroot/realworld_example/dataset_cfoods.yml
diff --git a/integrationtests/test_data/realworld_example/schema/dataset-inheritance.yml b/integrationtests/test_data/extroot/realworld_example/schema/dataset-inheritance.yml
similarity index 100%
rename from integrationtests/test_data/realworld_example/schema/dataset-inheritance.yml
rename to integrationtests/test_data/extroot/realworld_example/schema/dataset-inheritance.yml
diff --git a/integrationtests/test_data/realworld_example/schema/dataset.schema.json b/integrationtests/test_data/extroot/realworld_example/schema/dataset.schema.json
similarity index 100%
rename from integrationtests/test_data/realworld_example/schema/dataset.schema.json
rename to integrationtests/test_data/extroot/realworld_example/schema/dataset.schema.json
diff --git a/integrationtests/test_data/realworld_example/schema/dataspace.schema.json b/integrationtests/test_data/extroot/realworld_example/schema/dataspace.schema.json
similarity index 100%
rename from integrationtests/test_data/realworld_example/schema/dataspace.schema.json
rename to integrationtests/test_data/extroot/realworld_example/schema/dataspace.schema.json
diff --git a/integrationtests/test_data/realworld_example/schema/zmt-organisation.yml b/integrationtests/test_data/extroot/realworld_example/schema/zmt-organisation.yml
similarity index 100%
rename from integrationtests/test_data/realworld_example/schema/zmt-organisation.yml
rename to integrationtests/test_data/extroot/realworld_example/schema/zmt-organisation.yml
-- 
GitLab