utils: mention expression on condition validation error (#50016)
This commit is contained in:
parent
9a4ab69f22
commit
2089b889da
|
@ -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')
|
||||
|
||||
|
|
|
@ -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')
|
||||
|
|
Loading…
Reference in New Issue