From 5b472be0ed3a2cf6d27811a9ffd1b2cf8b3d36ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Thu, 24 Nov 2022 13:57:25 +0100
Subject: [PATCH] MAINT: allow to set is_referenced_by via yaml

---
 src/caoscrawler/identifiable_adapters.py                 | 9 ++++++++-
 .../single_file_test_data/identifiables.yml              | 4 ++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py
index acbc1952..35f56126 100644
--- a/src/caoscrawler/identifiable_adapters.py
+++ b/src/caoscrawler/identifiable_adapters.py
@@ -420,7 +420,14 @@ class CaosDBIdentifiableAdapter(IdentifiableAdapter):
         for key, value in identifiable_data.items():
             rt = db.RecordType().add_parent(key)
             for prop_name in value:
-                rt.add_property(name=prop_name)
+                if isinstance(prop_name, str):
+                    rt.add_property(name=prop_name)
+                elif isinstance(prop_name, dict):
+                    for k, v in prop_name.items():
+                        rt.add_property(name=k, value=v)
+                else:
+                    NotImplementedError("YAML is not structured correctly")
+
             self.register_identifiable(key, rt)
 
     def register_identifiable(self, name: str, definition: db.RecordType):
diff --git a/unittests/test_directories/single_file_test_data/identifiables.yml b/unittests/test_directories/single_file_test_data/identifiables.yml
index e32746d5..c6f82be3 100644
--- a/unittests/test_directories/single_file_test_data/identifiables.yml
+++ b/unittests/test_directories/single_file_test_data/identifiables.yml
@@ -5,3 +5,7 @@ Keyword:
 Project:
   - project_id
   - title
+Unknown:
+  - propa
+  - is_referenced_by: [Some]
+
-- 
GitLab