From ab4a98f8b9b02a310b6e70474e9509872b13f89f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com>
Date: Fri, 25 Nov 2022 09:37:21 +0100
Subject: [PATCH] TST: add failing test for
 https://gitlab.com/caosdb/caosdb-crawler/-/issues/47

---
 unittests/test_issues.py | 42 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/unittests/test_issues.py b/unittests/test_issues.py
index ed30f7f6..0e024429 100644
--- a/unittests/test_issues.py
+++ b/unittests/test_issues.py
@@ -110,3 +110,45 @@ def test_issue_39():
 
     # this would result in a merge conflict before
     ins, ups = crawler.split_into_inserts_and_updates(flat_list)
+
+
+@mark.xfail(reason="FIX: https://gitlab.com/caosdb/caosdb-crawler/-/issues/47")
+def test_list_datatypes():
+    crawler_definition = {
+        "DictTest": {
+            "type": "DictElement",
+            "match": "(.*)",
+            "records": {
+                "Dataset": {}
+            },
+            "subtree": {
+                "int_element": {
+                    "type": "IntegerElement",
+                    "match_name": ".*",
+                    "match_value": "(?P<int_value>.*)",
+                    "records": {
+                        "Dataset": {
+                            "Subject": "+$int_value"
+                        }
+                    }
+                }
+            }
+        }
+    }
+
+    crawler = Crawler(debug=True)
+    converter_registry = crawler.load_converters(crawler_definition)
+
+    test_dict = {
+        "v1": 1233,
+        "v2": 1234
+    }
+
+    records = crawler.start_crawling(
+        DictElement("TestDict", test_dict), crawler_definition, converter_registry)
+    assert len(records) == 1
+    assert records[0].parents[0].name == "Dataset"
+    assert records[0].get_property("Subject") is not None
+    assert isinstance(records[0].get_property("Subject").value, list)
+    assert records[0].get_property("Subject").datatype is not None
+    assert records[0].get_property("Subject").datatype.startswith("LIST")
-- 
GitLab