Beispiel #1
0
 def test_invalid_values(self) -> None:
     with assert_raises(ValueError):
         parse_filter("foo=bar")
     with assert_raises(ValueError):
         parse_filter("foo='bar")
     with assert_raises(ValueError):
         parse_filter("foo='")
     with assert_raises(ValueError):
         parse_filter("foo=2000-12-32")
Beispiel #2
0
 def _parse_event_args(self, query: str) -> Tuple[str, List[Filter]]:
     args = parse_qs(query)
     if "subsystem" not in args:
         raise CGIArgumentError("subsystem", "missing argument")
     try:
         filters = [parse_filter(f) for f in args.get("filter", [])]
     except ValueError:
         raise CGIArgumentError("filter", "could not parse filter")
     return args["subsystem"][0], filters
Beispiel #3
0
 def test_nested_value(self) -> None:
     f = parse_filter("foo.bar<=10")
     assert_true(f({"foo": {"bar": 10}}))
Beispiel #4
0
 def test_eq_date(self) -> None:
     f = parse_filter("foo=2016-03-24")
     assert_false(f({"foo": "2000-01-01"}))
     assert_true(f({"foo": "2016-03-24"}))
Beispiel #5
0
 def test_eq_str(self) -> None:
     f = parse_filter("foo='bar'")
     assert_false(f({"foo": "baz"}))
     assert_true(f({"foo": "bar"}))
Beispiel #6
0
 def test_str(self) -> None:
     filter_ = parse_filter("foo.bar<='ABC'")
     assert_equal("foo.bar<='ABC'", str(filter_))
Beispiel #7
0
 def test_ge_int(self) -> None:
     f = parse_filter("foo>=10")
     assert_false(f({"foo": 9}))
     assert_true(f({"foo": 10}))
     assert_true(f({"foo": 11}))
Beispiel #8
0
 def test_wrong_type(self) -> None:
     f = parse_filter("foo<=10")
     assert_false(f({"foo": ""}))
Beispiel #9
0
 def test_no_such_field(self) -> None:
     f = parse_filter("foo<=10")
     assert_false(f({}))
Beispiel #10
0
 def test_invalid_filter(self) -> None:
     with assert_raises(ValueError):
         parse_filter("INVALID")
Beispiel #11
0
 def test_string_filter__gt(self) -> None:
     filter_ = parse_filter("foo.bar>'ABC'")
     assert_false(filter_({"foo": {"bar": "AAA"}}))
     assert_false(filter_({"foo": {"bar": "ABC"}}))
     assert_true(filter_({"foo": {"bar": "CAA"}}))
Beispiel #12
0
 def test_string_filter__wrong_type(self) -> None:
     filter_ = parse_filter("foo.bar<='50'")
     assert_false(filter_({"foo": {"bar": 13}}))
Beispiel #13
0
 def test_string_filter__path_not_found(self) -> None:
     filter_ = parse_filter("foo.bar<='ABC'")
     assert_false(filter_({"foo": {}}))