mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
This commit is contained in:
@@ -4,6 +4,8 @@ from __future__ import absolute_import
|
||||
|
||||
from unittest import skipIf
|
||||
|
||||
from django.template import TemplateSyntaxError
|
||||
|
||||
from .test_dummy import TemplateStringsTests
|
||||
|
||||
try:
|
||||
@@ -22,6 +24,16 @@ class Jinja2Tests(TemplateStringsTests):
|
||||
backend_name = 'jinja2'
|
||||
options = {'keep_trailing_newline': True}
|
||||
|
||||
def test_origin(self):
|
||||
template = self.engine.get_template('template_backends/hello.html')
|
||||
self.assertTrue(template.origin.name.endswith('hello.html'))
|
||||
self.assertEqual(template.origin.template_name, 'template_backends/hello.html')
|
||||
|
||||
def test_origin_from_string(self):
|
||||
template = self.engine.from_string('Hello!\n')
|
||||
self.assertEqual(template.origin.name, '<template>')
|
||||
self.assertEqual(template.origin.template_name, None)
|
||||
|
||||
def test_self_context(self):
|
||||
"""
|
||||
Using 'self' in the context should not throw errors (#24538).
|
||||
@@ -32,3 +44,33 @@ class Jinja2Tests(TemplateStringsTests):
|
||||
template = self.engine.from_string('hello {{ foo }}!')
|
||||
content = template.render(context={'self': 'self', 'foo': 'world'})
|
||||
self.assertEqual(content, 'hello world!')
|
||||
|
||||
def test_exception_debug_info_min_context(self):
|
||||
with self.assertRaises(TemplateSyntaxError) as e:
|
||||
self.engine.get_template('template_backends/syntax_error.html')
|
||||
debug = e.exception.template_debug
|
||||
self.assertEqual(debug['after'], '')
|
||||
self.assertEqual(debug['before'], '')
|
||||
self.assertEqual(debug['during'], '{% block %}')
|
||||
self.assertEqual(debug['bottom'], 1)
|
||||
self.assertEqual(debug['top'], 0)
|
||||
self.assertEqual(debug['line'], 1)
|
||||
self.assertEqual(debug['total'], 1)
|
||||
self.assertEqual(len(debug['source_lines']), 1)
|
||||
self.assertTrue(debug['name'].endswith('syntax_error.html'))
|
||||
self.assertTrue('message' in debug)
|
||||
|
||||
def test_exception_debug_info_max_context(self):
|
||||
with self.assertRaises(TemplateSyntaxError) as e:
|
||||
self.engine.get_template('template_backends/syntax_error2.html')
|
||||
debug = e.exception.template_debug
|
||||
self.assertEqual(debug['after'], '')
|
||||
self.assertEqual(debug['before'], '')
|
||||
self.assertEqual(debug['during'], '{% block %}')
|
||||
self.assertEqual(debug['bottom'], 26)
|
||||
self.assertEqual(debug['top'], 5)
|
||||
self.assertEqual(debug['line'], 16)
|
||||
self.assertEqual(debug['total'], 31)
|
||||
self.assertEqual(len(debug['source_lines']), 21)
|
||||
self.assertTrue(debug['name'].endswith('syntax_error2.html'))
|
||||
self.assertTrue('message' in debug)
|
||||
|
||||
Reference in New Issue
Block a user