mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-10 05:22:59 +03:00
Summary: Pull Request resolved: https://github.com/facebookincubator/zstrong/pull/723 Reviewed By: grievejia Differential Revision: D54471437 fbshipit-source-id: bc644553e31464ceb632034e4ce3f05ba30fbbcd
51 lines
1.8 KiB
Python
51 lines
1.8 KiB
Python
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
#
|
|
# This source code is licensed under the MIT license found in the
|
|
# LICENSE file in the root directory of this source tree.
|
|
|
|
# pyre-unsafe
|
|
|
|
|
|
import unittest
|
|
|
|
from ..expr import parse_expr
|
|
|
|
|
|
class ExprTest(unittest.TestCase):
|
|
def test_equal(self) -> None:
|
|
valid_variables = {"foo", "some_var", "another_var"}
|
|
e = parse_expr("foo=bar", valid_variables)
|
|
self.assertTrue(e.eval({"foo": "bar"}))
|
|
self.assertFalse(e.eval({"foo": "not-bar"}))
|
|
self.assertFalse(e.eval({"not-foo": "bar"}))
|
|
|
|
def test_not_equal(self) -> None:
|
|
valid_variables = {"foo"}
|
|
e = parse_expr("not(foo=bar)", valid_variables)
|
|
self.assertFalse(e.eval({"foo": "bar"}))
|
|
self.assertTrue(e.eval({"foo": "not-bar"}))
|
|
|
|
def test_bad_not(self) -> None:
|
|
valid_variables = {"foo"}
|
|
with self.assertRaises(Exception):
|
|
parse_expr("foo=not(bar)", valid_variables)
|
|
|
|
def test_bad_variable(self) -> None:
|
|
valid_variables = {"bar"}
|
|
with self.assertRaises(Exception):
|
|
parse_expr("foo=bar", valid_variables)
|
|
|
|
def test_all(self) -> None:
|
|
valid_variables = {"foo", "baz"}
|
|
e = parse_expr("all(foo = bar, baz = qux)", valid_variables)
|
|
self.assertTrue(e.eval({"foo": "bar", "baz": "qux"}))
|
|
self.assertFalse(e.eval({"foo": "bar", "baz": "nope"}))
|
|
self.assertFalse(e.eval({"foo": "nope", "baz": "nope"}))
|
|
|
|
def test_any(self) -> None:
|
|
valid_variables = {"foo", "baz"}
|
|
e = parse_expr("any(foo = bar, baz = qux)", valid_variables)
|
|
self.assertTrue(e.eval({"foo": "bar", "baz": "qux"}))
|
|
self.assertTrue(e.eval({"foo": "bar", "baz": "nope"}))
|
|
self.assertFalse(e.eval({"foo": "nope", "baz": "nope"}))
|