From 0dfa5a13052f25985c0e40da6a2d112d949b1623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20tom=20W=C3=B6rden?= <h.tomwoerden@indiscale.com> Date: Fri, 21 Oct 2022 13:32:13 +0200 Subject: [PATCH] MAINT: make create_flat_list a staticmethod and add failing test --- src/caoscrawler/crawl.py | 11 +++++------ unittests/test_tool.py | 6 ++++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/caoscrawler/crawl.py b/src/caoscrawler/crawl.py index 57b2735c..e8302e65 100644 --- a/src/caoscrawler/crawl.py +++ b/src/caoscrawler/crawl.py @@ -500,7 +500,8 @@ class Crawler(object): return True return False - def create_flat_list(self, ent_list: List[db.Entity], flat: List[db.Entity]): + @staticmethod + def create_flat_list(ent_list: List[db.Entity], flat: List[db.Entity]): """ Recursively adds all properties contained in entities from ent_list to the output list flat. Each element will only be added once to the list. @@ -516,13 +517,11 @@ class Crawler(object): if isinstance(el, db.Entity): if el not in flat: flat.append(el) - # TODO: move inside if block? - self.create_flat_list([el], flat) + Crawler.create_flat_list([el], flat) elif isinstance(p.value, db.Entity): if p.value not in flat: flat.append(p.value) - # TODO: move inside if block? - self.create_flat_list([p.value], flat) + Crawler.create_flat_list([p.value], flat) def has_missing_object_in_references(self, record: db.Record): """ @@ -696,7 +695,7 @@ class Crawler(object): to_be_updated: List[db.Entity] = [] flat = list(ent_list) # assure all entities are direct members TODO Can this be removed at some point?Check only? - self.create_flat_list(ent_list, flat) + Crawler.create_flat_list(ent_list, flat) # TODO: can the following be removed at some point for ent in flat: diff --git a/unittests/test_tool.py b/unittests/test_tool.py index f08f8061..85440fc7 100755 --- a/unittests/test_tool.py +++ b/unittests/test_tool.py @@ -713,3 +713,9 @@ def test_security_mode(updateCacheMock, upmock, insmock, ident): reset_mocks([updateCacheMock, insmock, upmock]) # restore original ident ident._records = deepcopy(records_backup) + + +def test_create_flat_list(): + a = db.Record() + a.add_property(name="a", value=a) + Crawler.create_flat_list([a], []) -- GitLab