From 6a67dce9ccbb2533cbb3fb8d16affdf17dd1f8e7 Mon Sep 17 00:00:00 2001 From: Simon Charette Date: Tue, 10 May 2016 09:57:03 -0400 Subject: [1.9.x] Fixed #26603 -- Forced lazy template names to text when computing cache key. Refs #26536. Thanks Sylvain Fankhauser for the very detailed report. Backport of 207c5b4acd410dd39bac31457dae26a0d15b8b93 from master --- tests/template_tests/test_loaders.py | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'tests') diff --git a/tests/template_tests/test_loaders.py b/tests/template_tests/test_loaders.py index feafeb2b06..8cb366e038 100644 --- a/tests/template_tests/test_loaders.py +++ b/tests/template_tests/test_loaders.py @@ -13,6 +13,7 @@ from django.template.engine import Engine from django.test import SimpleTestCase, ignore_warnings, override_settings from django.utils import six from django.utils.deprecation import RemovedInDjango20Warning +from django.utils.functional import lazystr from .utils import TEMPLATE_DIR @@ -153,6 +154,13 @@ class CachedLoaderTests(SimpleTestCase): """ self.assertEqual(self.engine.template_loaders[0].cache_key('-template.html', []), '-template.html') + def test_template_name_lazy_string(self): + """ + #26603 -- A template name specified as a lazy string should be forced + to text before computing its cache key. + """ + self.assertEqual(self.engine.template_loaders[0].cache_key(lazystr('template.html'), []), 'template.html') + @unittest.skipUnless(pkg_resources, 'setuptools is not installed') class EggLoaderTests(SimpleTestCase): -- cgit v1.3