def test_supports(self): class Foo(object): pass assert ObjectsBackend.supports(1) assert ObjectsBackend.supports(True) assert ObjectsBackend.supports(Foo())
def test_eval_op_groups(self): ob = ObjectsBackend() class Foo(object): a = 1 b = 2 assert ob.eval_op(ConditionGroup( OrOperator(EqualsCondition('a', 1), EqualsCondition('b', 2)) ), Foo())
def test_eval_op_operator(self): ob = ObjectsBackend() class Foo(object): a = 1 assert ob.eval_op(AndOperator(EqualsCondition('a', 1), GreaterThanCondition('a', 0)), Foo()) assert ob.eval_op(OrOperator(EqualsCondition('a', 1), GreaterThanCondition('a', 0)), Foo()) with pytest.raises(Exception): ob.eval_op(True, Foo())
def test_eval_op_groups(self): ob = ObjectsBackend() class Foo(object): a = 1 b = 2 assert ob.eval_op( ConditionGroup( OrOperator(EqualsCondition('a', 1), EqualsCondition('b', 2))), Foo())
def test_apply(self): ob = ObjectsBackend() class Foo(object): a = 1 def __eq__(self, other): return isinstance(other, Foo) and self.a == other.a query = Query([EqualsCondition('a', 1)]) assert list(ob.apply(query, [Foo()])) == [Foo()] assert list(query.apply([Foo()])) == [Foo()]
def test_eval_op_condition(self): ob = ObjectsBackend() class Foo(object): a = 1 assert ob.eval_op(EqualsCondition('a', 1), Foo()) assert ob.eval_op(GreaterThanCondition('a', 0), Foo()) assert ob.eval_op(GreaterThanOrEqualCondition('a', 1), Foo()) assert ob.eval_op(LessThanCondition('a', 2), Foo()) assert ob.eval_op(LessThanOrEqualCondition('a', 1), Foo())
def test_eval_op_operator(self): ob = ObjectsBackend() class Foo(object): a = 1 assert ob.eval_op( AndOperator(EqualsCondition('a', 1), GreaterThanCondition('a', 0)), Foo()) assert ob.eval_op( OrOperator(EqualsCondition('a', 1), GreaterThanCondition('a', 0)), Foo()) with pytest.raises(Exception): ob.eval_op(True, Foo())