From bf5397c8d7d818e1171a3af3dc21fe1841d3efb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Wed, 31 Jan 2024 19:03:36 +0100 Subject: [PATCH] TST: add test --- src/caoscrawler/identifiable_adapters.py | 2 ++ unittests/test_identifiable_adapters.py | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/caoscrawler/identifiable_adapters.py b/src/caoscrawler/identifiable_adapters.py index d0dfd752..80ab1669 100644 --- a/src/caoscrawler/identifiable_adapters.py +++ b/src/caoscrawler/identifiable_adapters.py @@ -221,6 +221,8 @@ identifiabel, identifiable and identified record) for a Record. for givenrt in prop.value: found = False if givenrt == "*": + if id(record) not in referencing_entities: + continue for rt, rec in referencing_entities[id(record)].items(): identifiable_backrefs.extend(rec) found = True diff --git a/unittests/test_identifiable_adapters.py b/unittests/test_identifiable_adapters.py index 268b9800..7759fa55 100644 --- a/unittests/test_identifiable_adapters.py +++ b/unittests/test_identifiable_adapters.py @@ -133,6 +133,22 @@ def test_non_default_name(): assert identifiable.name is None +def test_wildcard_ref(): + ident = CaosDBIdentifiableAdapter() + ident.register_identifiable( + "Person", db.RecordType() + .add_parent(name="Person") + .add_property(name="is_referenced_by", value=["*"])) + rec = (db.Record(name="don't touch it").add_parent("Person") + .add_property(name="last_name", value='Tom')) + identifiable = ident.get_identifiable(rec, + referencing_entities={ + id(rec): + {'A': [db.Record(id=1).add_parent("A")]}} + ) + assert identifiable.backrefs[0].id == 1 + + def test_convert_value(): # test that string representation of objects stay unchanged. No stripping or so. class A(): -- GitLab