NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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