aboutsummaryrefslogtreecommitdiffstats
path: root/test/test_util.py
diff options
context:
space:
mode:
authorLibravatarUnit 193 <unit193@unit193.net>2021-06-22 22:30:36 -0400
committerLibravatarUnit 193 <unit193@unit193.net>2021-06-22 22:30:36 -0400
commit32de2b06db501c7de81678bce8e3e0c3e63d340c (patch)
treefd58a26618a73de0faaf3e9c435a806aed7eced3 /test/test_util.py
parent8a644b7a06c504263a478d3681eed10b4161b5be (diff)
New upstream version 1.18.0.upstream/1.18.0
Diffstat (limited to 'test/test_util.py')
-rw-r--r--test/test_util.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/test_util.py b/test/test_util.py
index e2f5084..d90d5ad 100644
--- a/test/test_util.py
+++ b/test/test_util.py
@@ -493,6 +493,30 @@ class TestOther(unittest.TestCase):
def test_noop(self):
self.assertEqual(util.noop(), None)
+ def test_compile_expression(self):
+ expr = util.compile_expression("1 + 2 * 3")
+ self.assertEqual(expr(), 7)
+ self.assertEqual(expr({"a": 1, "b": 2, "c": 3}), 7)
+ self.assertEqual(expr({"a": 9, "b": 9, "c": 9}), 7)
+
+ expr = util.compile_expression("a + b * c")
+ self.assertEqual(expr({"a": 1, "b": 2, "c": 3}), 7)
+ self.assertEqual(expr({"a": 9, "b": 9, "c": 9}), 90)
+
+ with self.assertRaises(NameError):
+ expr()
+ with self.assertRaises(NameError):
+ expr({"a": 2})
+
+ with self.assertRaises(SyntaxError):
+ util.compile_expression("")
+ with self.assertRaises(SyntaxError):
+ util.compile_expression("x++")
+
+ expr = util.compile_expression("1 and abort()")
+ with self.assertRaises(exception.StopExtraction):
+ expr()
+
def test_generate_token(self):
tokens = set()
for _ in range(100):