mirror of
https://github.com/django/django.git
synced 2025-08-03 18:38:50 +00:00
Fixed #12992: Adjusted the new template loader code so that the template
file name is correctly reported on the debug page when a template syntax error is raised. git-svn-id: http://code.djangoproject.com/svn/django/trunk@12643 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
973bf6f485
commit
698410ab6f
4 changed files with 50 additions and 7 deletions
|
@ -155,6 +155,43 @@ class Templates(unittest.TestCase):
|
|||
test_template_sources('/DIR1/index.HTML', template_dirs,
|
||||
['/dir1/index.html'])
|
||||
|
||||
def test_loader_debug_origin(self):
|
||||
# Turn TEMPLATE_DEBUG on, so that the origin file name will be kept with
|
||||
# the compiled templates.
|
||||
old_td, settings.TEMPLATE_DEBUG = settings.TEMPLATE_DEBUG, True
|
||||
|
||||
old_loaders = loader.template_source_loaders
|
||||
loader.template_source_loaders = (filesystem.Loader(),)
|
||||
|
||||
# We rely on the fact that runtests.py sets up TEMPLATE_DIRS to
|
||||
# point to a directory containing a 404.html file. Also that
|
||||
# the file system and app directories loaders both inherit the
|
||||
# load_template method from the BaseLoader class, so we only need
|
||||
# to test one of them.
|
||||
load_name = '404.html'
|
||||
template = loader.get_template(load_name)
|
||||
template_name = template.nodelist[0].source[0].name
|
||||
self.assertTrue(template_name.endswith(load_name),
|
||||
'Template loaded by filesystem loader has incorrect name for debug page: %s' % template_name)
|
||||
|
||||
# Aso test the cached loader, since it overrides load_template
|
||||
cache_loader = cached.Loader(('',))
|
||||
cache_loader._cached_loaders = loader.template_source_loaders
|
||||
loader.template_source_loaders = (cache_loader,)
|
||||
|
||||
template = loader.get_template(load_name)
|
||||
template_name = template.nodelist[0].source[0].name
|
||||
self.assertTrue(template_name.endswith(load_name),
|
||||
'Template loaded through cached loader has incorrect name for debug page: %s' % template_name)
|
||||
|
||||
template = loader.get_template(load_name)
|
||||
template_name = template.nodelist[0].source[0].name
|
||||
self.assertTrue(template_name.endswith(load_name),
|
||||
'Cached template loaded through cached loader has incorrect name for debug page: %s' % template_name)
|
||||
|
||||
loader.template_source_loaders = old_loaders
|
||||
settings.TEMPLATE_DEBUG = old_td
|
||||
|
||||
def test_token_smart_split(self):
|
||||
# Regression test for #7027
|
||||
token = template.Token(template.TOKEN_BLOCK, 'sometag _("Page not found") value|yesno:_("yes,no")')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue