Deprecated TEMPLATE_DEBUG setting.
This commit is contained in:
parent
9fbd302f91
commit
15b711b5ee
|
@ -25,8 +25,6 @@ SECRET_KEY = '{{ secret_key }}'
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = True
|
DEBUG = True
|
||||||
|
|
||||||
TEMPLATE_DEBUG = True
|
|
||||||
|
|
||||||
ALLOWED_HOSTS = []
|
ALLOWED_HOSTS = []
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ class DjangoTemplates(BaseEngine):
|
||||||
def __init__(self, params):
|
def __init__(self, params):
|
||||||
params = params.copy()
|
params = params.copy()
|
||||||
options = params.pop('OPTIONS').copy()
|
options = params.pop('OPTIONS').copy()
|
||||||
options.setdefault('debug', settings.TEMPLATE_DEBUG)
|
options.setdefault('debug', settings.DEBUG)
|
||||||
options.setdefault('file_charset', settings.FILE_CHARSET)
|
options.setdefault('file_charset', settings.FILE_CHARSET)
|
||||||
super(DjangoTemplates, self).__init__(params)
|
super(DjangoTemplates, self).__init__(params)
|
||||||
self.engine = Engine(self.dirs, self.app_dirs, **options)
|
self.engine = Engine(self.dirs, self.app_dirs, **options)
|
||||||
|
|
|
@ -209,8 +209,8 @@ class ForNode(Node):
|
||||||
context.update(unpacked_vars)
|
context.update(unpacked_vars)
|
||||||
else:
|
else:
|
||||||
context[self.loopvars[0]] = item
|
context[self.loopvars[0]] = item
|
||||||
# In TEMPLATE_DEBUG mode provide source of the node which
|
# In debug mode provide the source of the node which raised
|
||||||
# actually raised the exception
|
# the exception
|
||||||
if context.engine.debug:
|
if context.engine.debug:
|
||||||
for node in self.nodelist_loop:
|
for node in self.nodelist_loop:
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -42,6 +42,7 @@ class EngineHandler(object):
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
'allowed_include_roots': settings.ALLOWED_INCLUDE_ROOTS,
|
'allowed_include_roots': settings.ALLOWED_INCLUDE_ROOTS,
|
||||||
'context_processors': settings.TEMPLATE_CONTEXT_PROCESSORS,
|
'context_processors': settings.TEMPLATE_CONTEXT_PROCESSORS,
|
||||||
|
'debug': settings.TEMPLATE_DEBUG,
|
||||||
'loaders': settings.TEMPLATE_LOADERS,
|
'loaders': settings.TEMPLATE_LOADERS,
|
||||||
'string_if_invalid': settings.TEMPLATE_STRING_IF_INVALID,
|
'string_if_invalid': settings.TEMPLATE_STRING_IF_INVALID,
|
||||||
},
|
},
|
||||||
|
|
|
@ -93,6 +93,7 @@ def reset_template_engines(**kwargs):
|
||||||
'TEMPLATE_DEBUG',
|
'TEMPLATE_DEBUG',
|
||||||
'TEMPLATE_LOADERS',
|
'TEMPLATE_LOADERS',
|
||||||
'TEMPLATE_STRING_IF_INVALID',
|
'TEMPLATE_STRING_IF_INVALID',
|
||||||
|
'DEBUG',
|
||||||
'FILE_CHARSET',
|
'FILE_CHARSET',
|
||||||
'INSTALLED_APPS',
|
'INSTALLED_APPS',
|
||||||
}:
|
}:
|
||||||
|
|
|
@ -756,10 +756,9 @@ Notes:
|
||||||
* The ``render()`` method is where the work actually happens.
|
* The ``render()`` method is where the work actually happens.
|
||||||
|
|
||||||
* ``render()`` should generally fail silently, particularly in a production
|
* ``render()`` should generally fail silently, particularly in a production
|
||||||
environment where :setting:`DEBUG` and :setting:`TEMPLATE_DEBUG` are
|
environment. In some cases however, particularly if ``context.engine.debug``
|
||||||
``False``. In some cases however, particularly if :setting:`TEMPLATE_DEBUG` is
|
is ``True``, this method may raise an exception to make debugging easier.
|
||||||
``True``, this method may raise an exception to make debugging easier. For
|
For example, several core tags raise ``django.template.TemplateSyntaxError``
|
||||||
example, several core tags raise ``django.template.TemplateSyntaxError``
|
|
||||||
if they receive the wrong number or type of arguments.
|
if they receive the wrong number or type of arguments.
|
||||||
|
|
||||||
Ultimately, this decoupling of compilation and rendering results in an
|
Ultimately, this decoupling of compilation and rendering results in an
|
||||||
|
|
|
@ -116,6 +116,7 @@ details on these changes.
|
||||||
|
|
||||||
* ``ALLOWED_INCLUDE_ROOTS``
|
* ``ALLOWED_INCLUDE_ROOTS``
|
||||||
* ``TEMPLATE_CONTEXT_PROCESSORS``
|
* ``TEMPLATE_CONTEXT_PROCESSORS``
|
||||||
|
* ``TEMPLATE_DEBUG``
|
||||||
* ``TEMPLATE_DIRS``
|
* ``TEMPLATE_DIRS``
|
||||||
* ``TEMPLATE_LOADERS``
|
* ``TEMPLATE_LOADERS``
|
||||||
* ``TEMPLATE_STRING_IF_INVALID``
|
* ``TEMPLATE_STRING_IF_INVALID``
|
||||||
|
|
|
@ -2250,6 +2250,11 @@ TEMPLATE_DEBUG
|
||||||
|
|
||||||
Default: ``False``
|
Default: ``False``
|
||||||
|
|
||||||
|
.. deprecated:: 1.8
|
||||||
|
|
||||||
|
Set the ``'debug'`` option in the :setting:`OPTIONS <TEMPLATES-OPTIONS>`
|
||||||
|
of a ``DjangoTemplates`` backend instead.
|
||||||
|
|
||||||
A boolean that turns on/off template debug mode. If this is ``True``, the fancy
|
A boolean that turns on/off template debug mode. If this is ``True``, the fancy
|
||||||
error page will display a detailed report for any exception raised during
|
error page will display a detailed report for any exception raised during
|
||||||
template rendering. This report contains the relevant snippet of the template,
|
template rendering. This report contains the relevant snippet of the template,
|
||||||
|
|
|
@ -936,7 +936,7 @@ Template origin
|
||||||
When an :class:`~django.template.Engine` is initialized with ``debug=True``,
|
When an :class:`~django.template.Engine` is initialized with ``debug=True``,
|
||||||
its templates have an ``origin`` attribute depending on the source they are
|
its templates have an ``origin`` attribute depending on the source they are
|
||||||
loaded from. For engines initialized by Django, ``debug`` defaults to the
|
loaded from. For engines initialized by Django, ``debug`` defaults to the
|
||||||
value of :setting:`TEMPLATE_DEBUG`.
|
value of :setting:`DEBUG`.
|
||||||
|
|
||||||
.. class:: loader.LoaderOrigin
|
.. class:: loader.LoaderOrigin
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ The :setting:`TEMPLATES` settings
|
||||||
=================================
|
=================================
|
||||||
|
|
||||||
A new setting was introduced in Django 1.8: :setting:`TEMPLATES`. All existing
|
A new setting was introduced in Django 1.8: :setting:`TEMPLATES`. All existing
|
||||||
template-related settings except :setting:`TEMPLATE_DEBUG` were deprecated.
|
template-related settings were deprecated.
|
||||||
|
|
||||||
During the deprecation period, Django will create a backwards-compatible
|
During the deprecation period, Django will create a backwards-compatible
|
||||||
:setting:`TEMPLATES` based on the ``TEMPLATE_*`` settings if you don't define
|
:setting:`TEMPLATES` based on the ``TEMPLATE_*`` settings if you don't define
|
||||||
|
@ -85,9 +85,13 @@ If your settings module defines ``ALLOWED_INCLUDE_ROOTS`` or
|
||||||
``'allowed_include_roots'`` and ``'string_if_invalid'`` keys in the
|
``'allowed_include_roots'`` and ``'string_if_invalid'`` keys in the
|
||||||
``'OPTIONS'`` dictionary.
|
``'OPTIONS'`` dictionary.
|
||||||
|
|
||||||
|
If it sets ``TEMPLATE_DEBUG`` to a value that differs from :setting:`DEBUG`,
|
||||||
|
include that value under the ``'debug'`` key in ``'OPTIONS'``.
|
||||||
|
|
||||||
Once you have defined :setting:`TEMPLATES`, you can safely remove
|
Once you have defined :setting:`TEMPLATES`, you can safely remove
|
||||||
``ALLOWED_INCLUDE_ROOTS``, ``TEMPLATE_CONTEXT_PROCESSORS``, ``TEMPLATE_DIRS``,
|
``ALLOWED_INCLUDE_ROOTS``, ``TEMPLATE_CONTEXT_PROCESSORS``,
|
||||||
``TEMPLATE_LOADERS``, and ``TEMPLATE_STRING_IF_INVALID``.
|
``TEMPLATE_DEBUG``, ``TEMPLATE_DIRS``, ``TEMPLATE_LOADERS``, and
|
||||||
|
``TEMPLATE_STRING_IF_INVALID``.
|
||||||
|
|
||||||
If you are overriding some of these settings in tests, you should override the
|
If you are overriding some of these settings in tests, you should override the
|
||||||
entire :setting:`TEMPLATES` setting instead.
|
entire :setting:`TEMPLATES` setting instead.
|
||||||
|
|
|
@ -437,7 +437,7 @@ For example:
|
||||||
No wrapping of exceptions in ``TEMPLATE_DEBUG`` mode
|
No wrapping of exceptions in ``TEMPLATE_DEBUG`` mode
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
In previous versions of Django, whenever the :setting:`TEMPLATE_DEBUG` setting
|
In previous versions of Django, whenever the ``TEMPLATE_DEBUG`` setting
|
||||||
was ``True``, any exception raised during template rendering (even exceptions
|
was ``True``, any exception raised during template rendering (even exceptions
|
||||||
unrelated to template syntax) were wrapped in ``TemplateSyntaxError`` and
|
unrelated to template syntax) were wrapped in ``TemplateSyntaxError`` and
|
||||||
re-raised. This was done in order to provide detailed template source location
|
re-raised. This was done in order to provide detailed template source location
|
||||||
|
@ -446,7 +446,7 @@ information in the debug 500 page.
|
||||||
In Django 1.4, exceptions are no longer wrapped. Instead, the original
|
In Django 1.4, exceptions are no longer wrapped. Instead, the original
|
||||||
exception is annotated with the source information. This means that catching
|
exception is annotated with the source information. This means that catching
|
||||||
exceptions from template rendering is now consistent regardless of the value of
|
exceptions from template rendering is now consistent regardless of the value of
|
||||||
:setting:`TEMPLATE_DEBUG`, and there's no need to catch and unwrap
|
``TEMPLATE_DEBUG``, and there's no need to catch and unwrap
|
||||||
``TemplateSyntaxError`` in order to catch other errors.
|
``TemplateSyntaxError`` in order to catch other errors.
|
||||||
|
|
||||||
``truncatechars`` template filter
|
``truncatechars`` template filter
|
||||||
|
|
|
@ -845,7 +845,7 @@ Templates
|
||||||
* It is now possible to :ttag:`include` templates recursively.
|
* It is now possible to :ttag:`include` templates recursively.
|
||||||
|
|
||||||
* Template objects now have an origin attribute set when
|
* Template objects now have an origin attribute set when
|
||||||
:setting:`TEMPLATE_DEBUG` is ``True``. This allows template origins to be
|
``TEMPLATE_DEBUG`` is ``True``. This allows template origins to be
|
||||||
inspected and logged outside of the ``django.template`` infrastructure.
|
inspected and logged outside of the ``django.template`` infrastructure.
|
||||||
|
|
||||||
* ``TypeError`` exceptions are no longer silenced when raised during the
|
* ``TypeError`` exceptions are no longer silenced when raised during the
|
||||||
|
|
|
@ -1263,6 +1263,7 @@ are deprecated in favor of :setting:`TEMPLATES`:
|
||||||
|
|
||||||
* ``ALLOWED_INCLUDE_ROOTS``
|
* ``ALLOWED_INCLUDE_ROOTS``
|
||||||
* ``TEMPLATE_CONTEXT_PROCESSORS``
|
* ``TEMPLATE_CONTEXT_PROCESSORS``
|
||||||
|
* ``TEMPLATE_DEBUG``
|
||||||
* ``TEMPLATE_DIRS``
|
* ``TEMPLATE_DIRS``
|
||||||
* ``TEMPLATE_LOADERS``
|
* ``TEMPLATE_LOADERS``
|
||||||
* ``TEMPLATE_STRING_IF_INVALID``
|
* ``TEMPLATE_STRING_IF_INVALID``
|
||||||
|
|
|
@ -188,7 +188,7 @@ Example::
|
||||||
|
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
settings.configure(DEBUG=True, TEMPLATE_DEBUG=True)
|
settings.configure(DEBUG=True)
|
||||||
|
|
||||||
Pass ``configure()`` as many keyword arguments as you'd like, with each keyword
|
Pass ``configure()`` as many keyword arguments as you'd like, with each keyword
|
||||||
argument representing a setting and its value. Each argument name should be all
|
argument representing a setting and its value. Each argument name should be all
|
||||||
|
|
|
@ -356,9 +356,7 @@ applications. This generic name was kept for backwards-compatibility.
|
||||||
exception raised during template rendering. This report contains the
|
exception raised during template rendering. This report contains the
|
||||||
relevant snippet of the template with the appropriate line highlighted.
|
relevant snippet of the template with the appropriate line highlighted.
|
||||||
|
|
||||||
It defaults to the value of the :setting:`TEMPLATE_DEBUG` setting. The
|
It defaults to the value of the :setting:`DEBUG` setting.
|
||||||
setting is convenient for toggling template debug mode globally rather than
|
|
||||||
on a per-engine basis.
|
|
||||||
|
|
||||||
* ``'loaders'``: a list of dotted Python paths to template loader classes.
|
* ``'loaders'``: a list of dotted Python paths to template loader classes.
|
||||||
Each ``Loader`` class knows how to import templates from a particular
|
Each ``Loader`` class knows how to import templates from a particular
|
||||||
|
|
|
@ -15,11 +15,13 @@ from .admin import MediaInline, MediaPermanentInline, site as admin_site
|
||||||
from .models import Category, Episode, EpisodePermanent, Media
|
from .models import Category, Episode, EpisodePermanent, Media
|
||||||
|
|
||||||
|
|
||||||
# Set TEMPLATE_DEBUG to True to ensure {% include %} will raise exceptions.
|
# Set DEBUG to True to ensure {% include %} will raise exceptions.
|
||||||
# That is how inlines are rendered and #9498 will bubble up if it is an issue.
|
# That is how inlines are rendered and #9498 will bubble up if it is an issue.
|
||||||
@override_settings(PASSWORD_HASHERS=['django.contrib.auth.hashers.SHA1PasswordHasher'],
|
@override_settings(
|
||||||
TEMPLATE_DEBUG=True,
|
DEBUG=True,
|
||||||
ROOT_URLCONF="generic_inline_admin.urls")
|
PASSWORD_HASHERS=['django.contrib.auth.hashers.SHA1PasswordHasher'],
|
||||||
|
ROOT_URLCONF="generic_inline_admin.urls",
|
||||||
|
)
|
||||||
class GenericAdminViewTest(TestCase):
|
class GenericAdminViewTest(TestCase):
|
||||||
fixtures = ['users.xml']
|
fixtures = ['users.xml']
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ class ErrorIndexTest(TestCase):
|
||||||
Checks whether index of error is calculated correctly in
|
Checks whether index of error is calculated correctly in
|
||||||
template debugger in for loops. Refs ticket #5831
|
template debugger in for loops. Refs ticket #5831
|
||||||
"""
|
"""
|
||||||
@override_settings(DEBUG=True, TEMPLATE_DEBUG=True)
|
@override_settings(DEBUG=True)
|
||||||
def test_correct_exception_index(self):
|
def test_correct_exception_index(self):
|
||||||
tests = [
|
tests = [
|
||||||
('{% load bad_tag %}{% for i in range %}{% badsimpletag %}{% endfor %}', (38, 56)),
|
('{% load bad_tag %}{% for i in range %}{% badsimpletag %}{% endfor %}', (38, 56)),
|
||||||
|
|
|
@ -89,7 +89,7 @@ class ParserTests(TestCase):
|
||||||
with six.assertRaisesRegex(self, TypeError, "Variable must be a string or number, got <(class|type) 'dict'>"):
|
with six.assertRaisesRegex(self, TypeError, "Variable must be a string or number, got <(class|type) 'dict'>"):
|
||||||
Variable({})
|
Variable({})
|
||||||
|
|
||||||
@override_settings(DEBUG=True, TEMPLATE_DEBUG=True)
|
@override_settings(DEBUG=True)
|
||||||
def test_compile_filter_error(self):
|
def test_compile_filter_error(self):
|
||||||
# regression test for #19819
|
# regression test for #19819
|
||||||
msg = "Could not parse the remainder: '@bar' from 'foo@bar'"
|
msg = "Could not parse the remainder: '@bar' from 'foo@bar'"
|
||||||
|
|
|
@ -85,10 +85,12 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
@override_settings(TEMPLATES=[{
|
@override_settings(TEMPLATES=[{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'DIRS': [TEMPLATES_DIR],
|
'DIRS': [TEMPLATES_DIR],
|
||||||
}])
|
'OPTIONS': {
|
||||||
# Turn TEMPLATE_DEBUG on, so that the origin file name will be kept with
|
# Turn DEBUG on, so that the origin file name will be kept with
|
||||||
# the compiled templates.
|
# the compiled templates.
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
'debug': True,
|
||||||
|
}
|
||||||
|
}])
|
||||||
def test_loader_debug_origin(self):
|
def test_loader_debug_origin(self):
|
||||||
load_name = 'login.html'
|
load_name = 'login.html'
|
||||||
|
|
||||||
|
@ -104,6 +106,7 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'DIRS': [TEMPLATES_DIR],
|
'DIRS': [TEMPLATES_DIR],
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
|
'debug': True,
|
||||||
'loaders': [
|
'loaders': [
|
||||||
('django.template.loaders.cached.Loader', [
|
('django.template.loaders.cached.Loader', [
|
||||||
'django.template.loaders.filesystem.Loader',
|
'django.template.loaders.filesystem.Loader',
|
||||||
|
@ -111,7 +114,6 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}])
|
}])
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
|
||||||
def test_cached_loader_debug_origin(self):
|
def test_cached_loader_debug_origin(self):
|
||||||
load_name = 'login.html'
|
load_name = 'login.html'
|
||||||
|
|
||||||
|
@ -126,12 +128,12 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
self.assertTrue(template_name.endswith(load_name),
|
self.assertTrue(template_name.endswith(load_name),
|
||||||
'Cached template loaded through cached loader has incorrect name for debug page: %s' % template_name)
|
'Cached template loaded through cached loader has incorrect name for debug page: %s' % template_name)
|
||||||
|
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
@override_settings(DEBUG=True)
|
||||||
def test_loader_origin(self):
|
def test_loader_origin(self):
|
||||||
template = loader.get_template('login.html')
|
template = loader.get_template('login.html')
|
||||||
self.assertEqual(template.origin.loadname, 'login.html')
|
self.assertEqual(template.origin.loadname, 'login.html')
|
||||||
|
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
@override_settings(DEBUG=True)
|
||||||
def test_string_origin(self):
|
def test_string_origin(self):
|
||||||
template = Template('string template')
|
template = Template('string template')
|
||||||
self.assertEqual(template.origin.source, 'string template')
|
self.assertEqual(template.origin.source, 'string template')
|
||||||
|
@ -140,15 +142,17 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
template = loader.get_template('login.html')
|
template = loader.get_template('login.html')
|
||||||
self.assertEqual(template.origin, None)
|
self.assertEqual(template.origin, None)
|
||||||
|
|
||||||
# TEMPLATE_DEBUG must be true, otherwise the exception raised
|
|
||||||
# during {% include %} processing will be suppressed.
|
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
|
||||||
# Test the base loader class via the app loader. load_template
|
# Test the base loader class via the app loader. load_template
|
||||||
# from base is used by all shipped loaders excepting cached,
|
# from base is used by all shipped loaders excepting cached,
|
||||||
# which has its own test.
|
# which has its own test.
|
||||||
@override_settings(TEMPLATES=[{
|
@override_settings(TEMPLATES=[{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
|
'OPTIONS': {
|
||||||
|
# Enable debug, otherwise the exception raised during
|
||||||
|
# {% include %} processing will be suppressed.
|
||||||
|
'debug': True,
|
||||||
|
}
|
||||||
}])
|
}])
|
||||||
def test_include_missing_template(self):
|
def test_include_missing_template(self):
|
||||||
"""
|
"""
|
||||||
|
@ -164,15 +168,17 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
self.assertEqual(e.args[0], 'missing.html')
|
self.assertEqual(e.args[0], 'missing.html')
|
||||||
self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
|
self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
|
||||||
|
|
||||||
# TEMPLATE_DEBUG must be true, otherwise the exception raised
|
|
||||||
# during {% include %} processing will be suppressed.
|
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
|
||||||
# Test the base loader class via the app loader. load_template
|
# Test the base loader class via the app loader. load_template
|
||||||
# from base is used by all shipped loaders excepting cached,
|
# from base is used by all shipped loaders excepting cached,
|
||||||
# which has its own test.
|
# which has its own test.
|
||||||
@override_settings(TEMPLATES=[{
|
@override_settings(TEMPLATES=[{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'APP_DIRS': True,
|
'APP_DIRS': True,
|
||||||
|
'OPTIONS': {
|
||||||
|
# Enable debug, otherwise the exception raised during
|
||||||
|
# {% include %} processing will be suppressed.
|
||||||
|
'debug': True,
|
||||||
|
}
|
||||||
}])
|
}])
|
||||||
def test_extends_include_missing_baseloader(self):
|
def test_extends_include_missing_baseloader(self):
|
||||||
"""
|
"""
|
||||||
|
@ -193,6 +199,7 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
@override_settings(TEMPLATES=[{
|
@override_settings(TEMPLATES=[{
|
||||||
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
'OPTIONS': {
|
'OPTIONS': {
|
||||||
|
'debug': True,
|
||||||
'loaders': [
|
'loaders': [
|
||||||
('django.template.loaders.cached.Loader', [
|
('django.template.loaders.cached.Loader', [
|
||||||
'django.template.loaders.app_directories.Loader',
|
'django.template.loaders.app_directories.Loader',
|
||||||
|
@ -200,7 +207,6 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}])
|
}])
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
|
||||||
def test_extends_include_missing_cachedloader(self):
|
def test_extends_include_missing_cachedloader(self):
|
||||||
"""
|
"""
|
||||||
Same as test_extends_include_missing_baseloader, only tests
|
Same as test_extends_include_missing_baseloader, only tests
|
||||||
|
@ -235,19 +241,28 @@ class TemplateLoaderTests(SimpleTestCase):
|
||||||
output = outer_tmpl.render(ctx)
|
output = outer_tmpl.render(ctx)
|
||||||
self.assertEqual(output, 'This worked!')
|
self.assertEqual(output, 'This worked!')
|
||||||
|
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
@override_settings(TEMPLATES=[{
|
||||||
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
|
'OPTIONS': {
|
||||||
|
'debug': True,
|
||||||
|
},
|
||||||
|
}])
|
||||||
def test_include_immediate_missing(self):
|
def test_include_immediate_missing(self):
|
||||||
"""
|
"""
|
||||||
Regression test for #16417 -- {% include %} tag raises TemplateDoesNotExist at compile time if TEMPLATE_DEBUG is True
|
|
||||||
|
|
||||||
Test that an {% include %} tag with a literal string referencing a
|
Test that an {% include %} tag with a literal string referencing a
|
||||||
template that does not exist does not raise an exception at parse
|
template that does not exist does not raise an exception at parse
|
||||||
time.
|
time. Regression test for #16417.
|
||||||
"""
|
"""
|
||||||
tmpl = Template('{% include "this_does_not_exist.html" %}')
|
tmpl = Template('{% include "this_does_not_exist.html" %}')
|
||||||
self.assertIsInstance(tmpl, Template)
|
self.assertIsInstance(tmpl, Template)
|
||||||
|
|
||||||
@override_settings(TEMPLATE_DEBUG=True)
|
@override_settings(TEMPLATES=[{
|
||||||
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
||||||
|
'APP_DIRS': True,
|
||||||
|
'OPTIONS': {
|
||||||
|
'debug': True,
|
||||||
|
},
|
||||||
|
}])
|
||||||
def test_include_recursive(self):
|
def test_include_recursive(self):
|
||||||
comments = [
|
comments = [
|
||||||
{
|
{
|
||||||
|
@ -277,7 +292,7 @@ class TemplateRegressionTests(SimpleTestCase):
|
||||||
split = token.split_contents()
|
split = token.split_contents()
|
||||||
self.assertEqual(split, ["sometag", '_("Page not found")', 'value|yesno:_("yes,no")'])
|
self.assertEqual(split, ["sometag", '_("Page not found")', 'value|yesno:_("yes,no")'])
|
||||||
|
|
||||||
@override_settings(SETTINGS_MODULE=None, TEMPLATE_DEBUG=True)
|
@override_settings(SETTINGS_MODULE=None, DEBUG=True)
|
||||||
def test_url_reverse_no_settings_module(self):
|
def test_url_reverse_no_settings_module(self):
|
||||||
# Regression test for #9005
|
# Regression test for #9005
|
||||||
t = Template('{% url will_not_match %}')
|
t = Template('{% url will_not_match %}')
|
||||||
|
@ -307,7 +322,7 @@ class TemplateRegressionTests(SimpleTestCase):
|
||||||
self.assertGreater(depth, 5,
|
self.assertGreater(depth, 5,
|
||||||
"The traceback context was lost when reraising the traceback. See #19827")
|
"The traceback context was lost when reraising the traceback. See #19827")
|
||||||
|
|
||||||
@override_settings(DEBUG=True, TEMPLATE_DEBUG=True)
|
@override_settings(DEBUG=True)
|
||||||
def test_no_wrapped_exception(self):
|
def test_no_wrapped_exception(self):
|
||||||
"""
|
"""
|
||||||
The template system doesn't wrap exceptions, but annotates them.
|
The template system doesn't wrap exceptions, but annotates them.
|
||||||
|
|
|
@ -44,8 +44,7 @@ class CallableSettingWrapperTests(TestCase):
|
||||||
self.assertEqual(actual, "repr from the wrapped callable")
|
self.assertEqual(actual, "repr from the wrapped callable")
|
||||||
|
|
||||||
|
|
||||||
@override_settings(DEBUG=True, TEMPLATE_DEBUG=True,
|
@override_settings(DEBUG=True, ROOT_URLCONF="view_tests.urls")
|
||||||
ROOT_URLCONF="view_tests.urls")
|
|
||||||
class DebugViewTests(TestCase):
|
class DebugViewTests(TestCase):
|
||||||
|
|
||||||
def test_files(self):
|
def test_files(self):
|
||||||
|
|
Loading…
Reference in New Issue