summaryrefslogtreecommitdiff
path: root/tests/regressiontests/templates/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/regressiontests/templates/tests.py')
-rw-r--r--tests/regressiontests/templates/tests.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/regressiontests/templates/tests.py b/tests/regressiontests/templates/tests.py
index 6c19f70b7b..dfbc24d025 100644
--- a/tests/regressiontests/templates/tests.py
+++ b/tests/regressiontests/templates/tests.py
@@ -205,6 +205,38 @@ class Templates(unittest.TestCase):
loader.template_source_loaders = old_loaders
settings.TEMPLATE_DEBUG = old_td
+
+ def test_include_missing_template(self):
+ """
+ Tests that the correct template is identified as not existing
+ when {% include %} specifies a template that does not exist.
+ """
+
+ # TEMPLATE_DEBUG must be true, otherwise the exception raised
+ # during {% include %} processing will be suppressed.
+ old_td, settings.TEMPLATE_DEBUG = settings.TEMPLATE_DEBUG, True
+ old_loaders = loader.template_source_loaders
+
+ try:
+ # Test the base loader class via the app loader. load_template
+ # from base is used by all shipped loaders excepting cached,
+ # which has its own test.
+ loader.template_source_loaders = (app_directories.Loader(),)
+
+ load_name = 'test_include_error.html'
+ r = None
+ try:
+ tmpl = loader.select_template([load_name])
+ r = tmpl.render(template.Context({}))
+ except template.TemplateDoesNotExist, e:
+ settings.TEMPLATE_DEBUG = old_td
+ self.assertEqual(e.args[0], 'missing.html')
+ self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
+ finally:
+ loader.template_source_loaders = old_loaders
+ settings.TEMPLATE_DEBUG = old_td
+
+
def test_extends_include_missing_baseloader(self):
"""
Tests that the correct template is identified as not existing