Fixed #131 : Implement ExprToConditions
Fixed #130 : ArithmeticOperatorParser Fixed #129 : python_wrapper : create_namespace Fixed #128 : ExpressionParser: Cannot parse func(x) infixed concept 'xxx'
This commit is contained in:
@@ -96,17 +96,17 @@ class TestSheerkaQueryManager(TestUsingMemoryBasedSheerka):
|
||||
Concept("foo", body="b").auto_init(),
|
||||
B("a31", "a32")]
|
||||
|
||||
assert sheerka.filter_objects(context, lst, "self.prop1 == 'a21'") == [lst[1]]
|
||||
assert sheerka.filter_objects(context, lst, "self.prop2 >= 1") == [lst[0], lst[1], lst[2]]
|
||||
assert sheerka.filter_objects(context, lst, "get_type(self) == 'foo' ") == [lst[4], lst[6]]
|
||||
assert sheerka.filter_objects(context, lst, "self.fake_prop1 == 'a21' ") == [lst[5]]
|
||||
assert sheerka.filter_objects(context, lst, "hasattr(self, 'fake_prop1')") == [lst[5], lst[7]]
|
||||
assert sheerka.filter_objects(context, lst, predicate="self.prop1 == 'a21'") == [lst[1]]
|
||||
assert sheerka.filter_objects(context, lst, predicate="self.prop2 >= 1") == [lst[0], lst[1], lst[2]]
|
||||
assert sheerka.filter_objects(context, lst, predicate="get_type(self) == 'foo' ") == [lst[4], lst[6]]
|
||||
assert sheerka.filter_objects(context, lst, predicate="self.fake_prop1 == 'a21' ") == [lst[5]]
|
||||
assert sheerka.filter_objects(context, lst, predicate="hasattr(self, 'fake_prop1')") == [lst[5], lst[7]]
|
||||
|
||||
def test_i_can_filter_object_using_predicate_and_sheerka_objects(self):
|
||||
sheerka, context, foo, bar = self.init_concepts("foo", "bar")
|
||||
lst = [foo, bar, A("a21", 3.14)]
|
||||
|
||||
assert sheerka.filter_objects(context, lst, "self == bar") == [lst[1]]
|
||||
assert sheerka.filter_objects(context, lst, predicate="self == bar") == [lst[1]]
|
||||
|
||||
def test_i_can_filter_objects_using_concept(self):
|
||||
sheerka, context, foo, bar, isa = self.init_concepts(
|
||||
@@ -116,7 +116,7 @@ class TestSheerkaQueryManager(TestUsingMemoryBasedSheerka):
|
||||
create_new=True)
|
||||
|
||||
lst = [foo, A("a21", 3.14), bar, B("a21", 3.14)]
|
||||
assert sheerka.filter_objects(context, lst, "self is a concept") == [foo, bar]
|
||||
assert sheerka.filter_objects(context, lst, predicate="self is a concept") == [foo, bar]
|
||||
|
||||
def test_i_can_filter_objects_when_no_kwargs_and_no_predicate(self):
|
||||
sheerka, context, foo, bar = self.init_concepts("foo", "bar")
|
||||
@@ -124,6 +124,25 @@ class TestSheerkaQueryManager(TestUsingMemoryBasedSheerka):
|
||||
|
||||
assert sheerka.filter_objects(context, lst) == lst
|
||||
|
||||
def test_i_can_filter_objects_after_applying_a_mapping(self):
|
||||
sheerka, context = self.init_test().unpack()
|
||||
lst = [A("a11", 10),
|
||||
A("a21", 3.14)]
|
||||
|
||||
res = sheerka.filter_objects(context, lst, mapping=lambda o: o.prop1, predicate="self[1] == '1'")
|
||||
assert res == [A("a11", 10)]
|
||||
|
||||
def test_i_can_filter_objects_using_concept_after_applying_a_mapping(self):
|
||||
sheerka, context, foo, bar, isa = self.init_concepts(
|
||||
"foo",
|
||||
"bar",
|
||||
Concept("x is a concept", body="isinstance(x, Concept)", pre="is_question()").def_var("x"),
|
||||
create_new=True)
|
||||
|
||||
lst = [foo, A(foo, 3.14), bar, A(bar, 3.14)]
|
||||
res = sheerka.filter_objects(context, lst, mapping=lambda o: o.prop1, predicate="self is a concept")
|
||||
assert res == [lst[1], lst[3]]
|
||||
|
||||
def test_i_must_select_object_property_using_string(self):
|
||||
sheerka, context = self.init_test().unpack()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user