utils: mention expression on condition validation error (#50016)

This commit is contained in:
Valentin Deniaud 2021-02-24 15:02:55 +01:00
parent 9a4ab69f22
commit 2089b889da
2 changed files with 3 additions and 1 deletions

View File

@ -91,7 +91,7 @@ class BaseExpressionValidator(ast.NodeVisitor):
else:
ok = True
if not ok:
raise ExpressionError(_('expression is forbidden'), node=node, code='forbidden-expression')
raise ExpressionError(_('expression "%(expression)s" is forbidden'), node=node, code='forbidden-expression')
# specific node class check
node_name = node.__class__.__name__
@ -123,6 +123,7 @@ class BaseExpressionValidator(ast.NodeVisitor):
except ExpressionError as e:
if e.text is None:
e.text = expression
e.params = {'expression': expression}
six.reraise(*sys.exc_info())
return compile(tree, expression, mode='eval')

View File

@ -53,6 +53,7 @@ def test_condition_validator():
with pytest.raises(ExpressionError) as raised:
v('a + b')
assert str(raised.value) == '[\'expression "a + b" is forbidden\']'
with pytest.raises(ExpressionError) as raised:
v('1 + 2')