mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-08 18:02:05 +03:00
fail if unknown variables are used in a manifest
Summary: Check that all variable names are valid when loading manifest files. This ensures that getdeps.py will error out if someone makes a typo in a variable name, rather than treating it as never equal to anything. Reviewed By: pkaush Differential Revision: D16477397 fbshipit-source-id: 030e0642ff4a08db8eb74a0a0223e03d53e4880f
This commit is contained in:
committed by
Facebook Github Bot
parent
55fb767d25
commit
7844e79b03
@@ -15,28 +15,38 @@ from ..expr import parse_expr
|
||||
|
||||
class ExprTest(unittest.TestCase):
|
||||
def test_equal(self):
|
||||
e = parse_expr("foo=bar")
|
||||
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):
|
||||
e = parse_expr("not(foo=bar)")
|
||||
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):
|
||||
valid_variables = {"foo"}
|
||||
with self.assertRaises(Exception):
|
||||
parse_expr("foo=not(bar)")
|
||||
parse_expr("foo=not(bar)", valid_variables)
|
||||
|
||||
def test_bad_variable(self):
|
||||
valid_variables = {"bar"}
|
||||
with self.assertRaises(Exception):
|
||||
parse_expr("foo=bar", valid_variables)
|
||||
|
||||
def test_all(self):
|
||||
e = parse_expr("all(foo = bar, baz = qux)")
|
||||
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):
|
||||
e = parse_expr("any(foo = bar, baz = qux)")
|
||||
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"}))
|
||||
|
Reference in New Issue
Block a user