def test_and_single_depth(self):
     cs = ConditionSet({
         'and': [
             {'attr': 'a', 'value': 1, 'op': 'eq'},
             {'attr': 'b', 'value': 1, 'op': 'eq', 'negate': True},
         ]
     })
     self.assertTrue(cs.eval({'a': 1, 'b': 2}))
     self.assertFalse(cs.eval({'a': 1, 'b': 1}))
 def test_mixed_and(self):
     cs = ConditionSet({
         'and': [
             {'attr': 'a', 'value': 1, 'op': 'eq'},
             {'or': [
                 {'attr': 'b', 'value': 2, 'op': 'eq'},
                 {'attr': 'c', 'value': 3, 'op': 'eq'},
             ]}
         ]
     })
     self.assertTrue(cs.eval({'a': 1, 'b': 2, 'c': 9}))
     self.assertTrue(cs.eval({'a': 1, 'b': 9, 'c': 3}))
     self.assertFalse(cs.eval({'a': 1, 'b': 9, 'c': 9}))
     self.assertFalse(cs.eval({'a': 9, 'b': 2, 'c': 3}))