From 0e6af72ece9591c95ed11d4f88800dd79e619e3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Wed, 22 Feb 2023 09:09:42 +0100 Subject: [PATCH] FIX: set retrieve false; has_parent now by default retrieves parents --- unittests/test_json_schema_model_parser.py | 8 ++++---- unittests/test_yaml_model_parser.py | 18 +++++------------- 2 files changed, 9 insertions(+), 17 deletions(-) diff --git a/unittests/test_json_schema_model_parser.py b/unittests/test_json_schema_model_parser.py index 7f47890f..a136f9ba 100644 --- a/unittests/test_json_schema_model_parser.py +++ b/unittests/test_json_schema_model_parser.py @@ -164,7 +164,7 @@ def test_enum(): assert isinstance(model[name], db.Record) assert model[name].name == name assert len(model[name].parents) == 1 - assert model[name].has_parent(model["license"]) + assert model[name].has_parent(model["license"], retrieve=False) # Also allow enums with non-string types number_enums = ["1.1", "2.2", "3.3"] @@ -181,7 +181,7 @@ def test_enum(): assert isinstance(model[name], db.Record) assert model[name].name == name assert len(model[name].parents) == 1 - assert model[name].has_parent(model["number_enum"]) + assert model[name].has_parent(model["number_enum"], retrieve=False) @pytest.mark.xfail(reason="Don't allow integer enums until https://gitlab.indiscale.com/caosdb/src/caosdb-server/-/issues/224 has been fixed") @@ -207,7 +207,7 @@ def test_int_enum(): assert isinstance(model[name], db.Record) assert model[name].name == name assert len(model[name].parents) == 1 - assert model[name].has_parent(model["int_enum"]) + assert model[name].has_parent(model["int_enum"], retrieve=False) def test_references(): @@ -339,7 +339,7 @@ def test_list(): assert isinstance(model[name], db.Record) assert model[name].name == name assert len(model[name].parents) == 1 - assert model[name].has_parent(model["license"]) + assert model[name].has_parent(model["license"], retrieve=False) def test_name_property(): diff --git a/unittests/test_yaml_model_parser.py b/unittests/test_yaml_model_parser.py index 6cdea792..17c38228 100644 --- a/unittests/test_yaml_model_parser.py +++ b/unittests/test_yaml_model_parser.py @@ -32,14 +32,6 @@ def has_property(el, name): return False -def has_parent(el, name): - for p in el.get_parents(): - if p.name == name: - return True - - return False - - class TwiceTest(unittest.TestCase): def test_defined_once(self): string = """ @@ -148,16 +140,16 @@ RT4: RT5: """ model = parse_model_from_yaml(to_file(string)) - assert has_parent(model["RT1"], "RT2") + assert model["RT1"].has_parent("RT2", retrieve=False) assert (model["RT1"].get_parent( "RT2")._flags["inheritance"] == db.SUGGESTED) - assert has_parent(model["RT1"], "RT3") + assert model["RT1"].has_parent("RT3", retrieve=False) assert (model["RT1"].get_parent( "RT3")._flags["inheritance"] == db.RECOMMENDED) - assert has_parent(model["RT1"], "RT4") + assert model["RT1"].has_parent("RT4", retrieve=False) assert (model["RT1"].get_parent( "RT4")._flags["inheritance"] == db.OBLIGATORY) - assert has_parent(model["RT1"], "RT5") + assert model["RT1"].has_parent("RT5", retrieve=False) assert (model["RT1"].get_parent( "RT5")._flags["inheritance"] == db.OBLIGATORY) @@ -509,5 +501,5 @@ R3: assert isinstance(r3, db.RecordType) for par in ["R1", "R2"]: # Until removal, both do the same - assert has_parent(r3, par) + assert r3.has_parent(par, retrieve=False) assert r3.get_parent(par)._flags["inheritance"] == db.OBLIGATORY -- GitLab