allow '*-filter' options to be a list of expressions

This commit is contained in:
Mike Fährmann
2022-12-21 20:36:46 +01:00
parent 73ab5d84c0
commit 1800bd7d14
3 changed files with 21 additions and 8 deletions

View File

@@ -116,6 +116,14 @@ class TestPredicate(unittest.TestCase):
with self.assertRaises(exception.FilterError):
util.FilterPredicate("b > 1")(url, {"a": 2})
pred = util.FilterPredicate(["a < 3", "b < 4", "c < 5"])
self.assertTrue(pred(url, {"a": 2, "b": 3, "c": 4}))
self.assertFalse(pred(url, {"a": 3, "b": 3, "c": 4}))
self.assertFalse(pred(url, {"a": 2, "b": 4, "c": 4}))
self.assertFalse(pred(url, {"a": 2, "b": 3, "c": 5}))
with self.assertRaises(exception.FilterError):
pred(url, {"a": 2})
def test_build_predicate(self):
pred = util.build_predicate([])
self.assertIsInstance(pred, type(lambda: True))