From 48ab72fd9cd497ad8957e0debf322ab7dc6f2531 Mon Sep 17 00:00:00 2001 From: Kodjo Sossouvi Date: Wed, 13 Oct 2021 17:03:55 +0200 Subject: [PATCH] Fixed #134 : Regression on objects filtering using 'where' --- src/core/sheerka/services/SheerkaQueryManager.py | 6 +++++- tests/non_reg/test_sheerka_non_reg_pipe_functions.py | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/core/sheerka/services/SheerkaQueryManager.py b/src/core/sheerka/services/SheerkaQueryManager.py index 0265153..62a0b04 100644 --- a/src/core/sheerka/services/SheerkaQueryManager.py +++ b/src/core/sheerka/services/SheerkaQueryManager.py @@ -31,9 +31,10 @@ class SheerkaQueryManager(BaseService): self.sheerka.bind_service_method(self.NAME, self.select_objects, False) self.sheerka.bind_service_method(self.NAME, self.collect_attributes, False) - self.sheerka.bind_service_method(self.NAME, self.filter_objects, False, as_name="pipe_where") + self.sheerka.bind_service_method(self.NAME, self.filter_objects, False) self.sheerka.bind_service_method(self.NAME, self.select_objects, False, as_name="pipe_select") self.sheerka.bind_service_method(self.NAME, self.collect_attributes, False, as_name="pipe_props") + self.sheerka.bind_service_method(self.NAME, self.where_on_objects, False, as_name="pipe_where") self.sheerka.register_debug_vars(SheerkaQueryManager.NAME, "filter_objects", "query") @@ -267,3 +268,6 @@ class SheerkaQueryManager(BaseService): results.append(obj) return results + + def where_on_objects(self, context, objects, predicate=None, **kwargs): + return self.filter_objects(context, objects, predicate=predicate, **kwargs) diff --git a/tests/non_reg/test_sheerka_non_reg_pipe_functions.py b/tests/non_reg/test_sheerka_non_reg_pipe_functions.py index 20725ce..00db23d 100644 --- a/tests/non_reg/test_sheerka_non_reg_pipe_functions.py +++ b/tests/non_reg/test_sheerka_non_reg_pipe_functions.py @@ -30,9 +30,10 @@ class TestSheerkaNonRegPipeFunctions(TestUsingMemoryBasedSheerka): def test_i_can_filter_using_sheerka_methods(self): init = [ "def concept one as 1", + "def concept foo", "def concept number", "set_isa(one, number)", - "add_to_memory('x', [one])" + "add_to_memory('x', [one, foo])" ] sheerka = self.init_scenario(init, global_truth=True)