debug.py (1713B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\lib\jinja2\testsuite\debug.py 2 import sys 3 import unittest 4 from jinja2.testsuite import JinjaTestCase, filesystem_loader 5 from jinja2 import Environment, TemplateSyntaxError 6 env = Environment(loader=filesystem_loader) 7 8 class DebugTestCase(JinjaTestCase): 9 if sys.version_info[:2] != (2, 4): 10 11 def test_runtime_error(self): 12 13 def test(): 14 tmpl.render(fail=lambda : 1 / 0) 15 16 tmpl = env.get_template('broken.html') 17 self.assert_traceback_matches(test, '\n File ".*?broken.html", line 2, in (top-level template code|<module>)\n \\{\\{ fail\\(\\) \\}\\}\n File ".*?debug.pyc?", line \\d+, in <lambda>\n tmpl\\.render\\(fail=lambda: 1 / 0\\)\nZeroDivisionError: (int(eger)? )?division (or modulo )?by zero\n') 18 19 def test_syntax_error(self): 20 self.assert_traceback_matches(lambda : env.get_template('syntaxerror.html'), '(?sm)\n File ".*?syntaxerror.html", line 4, in (template|<module>)\n \\{% endif %\\}.*?\n(jinja2\\.exceptions\\.)?TemplateSyntaxError: Encountered unknown tag \'endif\'. Jinja was looking for the following tags: \'endfor\' or \'else\'. The innermost block that needs to be closed is \'for\'.\n ') 21 22 def test_regular_syntax_error(self): 23 24 def test(): 25 raise TemplateSyntaxError('wtf', 42) 26 27 self.assert_traceback_matches(test, '\n File ".*debug.pyc?", line \\d+, in test\n raise TemplateSyntaxError\\(\'wtf\', 42\\)\n(jinja2\\.exceptions\\.)?TemplateSyntaxError: wtf\n line 42') 28 29 30 def suite(): 31 suite = unittest.TestSuite() 32 suite.addTest(unittest.makeSuite(DebugTestCase)) 33 return suite