Fixes https://github.com/pallets/jinja/issues/1526
Before:
File ".../broken.html", line 2, in <module>
{{ fail() }}
File ".../test_debug.py", line 32, in <lambda>
tmpl.render(fail=lambda: 1 / 0)
ZeroDivisionError: division by zero
After:
File ".../broken.html", line 2, in <module>
{{ fail() }}
^^^^^^^^^^^^
File ".../test_debug.py", line 32, in <lambda>
tmpl.render(fail=lambda: 1 / 0)
~~^~~
ZeroDivisionError: division by zero
test,
r"""
File ".*?broken.html", line 2, in (top-level template code|<module>)
- \{\{ fail\(\) \}\}
+ \{\{ fail\(\) \}\}(
+ \^{12})?
File ".*debug?.pyc?", line \d+, in <lambda>
- tmpl\.render\(fail=lambda: 1 / 0\)
+ tmpl\.render\(fail=lambda: 1 / 0\)(
+ ~~\^~~)?
ZeroDivisionError: (int(eger)? )?division (or modulo )?by zero
""",
)
test,
r"""
File ".*debug.pyc?", line \d+, in test
- raise TemplateSyntaxError\("wtf", 42\)
+ raise TemplateSyntaxError\("wtf", 42\)(
+ \^{36})?
(jinja2\.exceptions\.)?TemplateSyntaxError: wtf
line 42""",
)