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