From 89ebc765233a4015ce2858106118417faff07407 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Sun, 24 Sep 2023 14:21:20 +0200 Subject: [PATCH] TST: add test for setting parents on multiple levels of a cfood --- unittests/test_parent_cfood.yml | 35 +++++++++++++++++++++++++++++++++ unittests/test_scanner.py | 25 +++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 unittests/test_parent_cfood.yml diff --git a/unittests/test_parent_cfood.yml b/unittests/test_parent_cfood.yml new file mode 100644 index 00000000..809b5e5f --- /dev/null +++ b/unittests/test_parent_cfood.yml @@ -0,0 +1,35 @@ +--- +metadata: + crawler-version: 0.6.1 +--- +Definitions: + type: Definitions + +data: + type: Dict + match_name: '.*' + records: + Experiment: + name: "e" + Projekt: + parents: ["project"] + name: "p" + Campaign: + name: "c" + subtree: + Experiment: + type: DictElement + match: '.*' + records: + Experiment: + parents: ["Exp"] + Projekt: + parents: ["Projekt"] + Campaign: + parents: ["Cap"] + Experiment2: + type: DictElement + match: '.*' + records: + Campaign: + parents: ["Cap2"] diff --git a/unittests/test_scanner.py b/unittests/test_scanner.py index 1a1c8c18..64b27380 100644 --- a/unittests/test_scanner.py +++ b/unittests/test_scanner.py @@ -276,3 +276,28 @@ def test_variable_deletion_problems(): assert record.get_property("var2").value == "test" else: raise RuntimeError("Wrong name") + +def test_record_parents(): + """ Test the correct list of returned records by the scanner """ + + data = { + 'Experiments': {} + } + + crawler_definition = load_definition(UNITTESTDIR / "test_parent_cfood.yml") + converter_registry = create_converter_registry(crawler_definition) + + records = scan_structure_elements(DictElement(name="", value=data), crawler_definition, + converter_registry) + assert len(records)==3 + for rec in records: + if rec.name == 'e': + assert rec.parents[0].name == 'Exp' # default parent was overwritten + assert len(rec.parents)==1 + elif rec.name == 'c': + assert rec.parents[0].name == 'Cap2' # default parent was overwritten by second + # converter + assert len(rec.parents)==1 + elif rec.name == 'p': + assert rec.parents[0].name == 'Projekt' # top level set parent was overwritten + assert len(rec.parents)==1 -- GitLab