Пример #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")
Пример #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
Пример #3
0
 def test_nested_value(self) -> None:
     f = parse_filter("foo.bar<=10")
     assert_true(f({"foo": {"bar": 10}}))
Пример #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"}))
Пример #5
0
 def test_eq_str(self) -> None:
     f = parse_filter("foo='bar'")
     assert_false(f({"foo": "baz"}))
     assert_true(f({"foo": "bar"}))
Пример #6
0
 def test_str(self) -> None:
     filter_ = parse_filter("foo.bar<='ABC'")
     assert_equal("foo.bar<='ABC'", str(filter_))
Пример #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}))
Пример #8
0
 def test_wrong_type(self) -> None:
     f = parse_filter("foo<=10")
     assert_false(f({"foo": ""}))
Пример #9
0
 def test_no_such_field(self) -> None:
     f = parse_filter("foo<=10")
     assert_false(f({}))
Пример #10
0
 def test_invalid_filter(self) -> None:
     with assert_raises(ValueError):
         parse_filter("INVALID")
Пример #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"}}))
Пример #12
0
 def test_string_filter__wrong_type(self) -> None:
     filter_ = parse_filter("foo.bar<='50'")
     assert_false(filter_({"foo": {"bar": 13}}))
Пример #13
0
 def test_string_filter__path_not_found(self) -> None:
     filter_ = parse_filter("foo.bar<='ABC'")
     assert_false(filter_({"foo": {}}))