1
0
mirror of https://github.com/django/django.git synced 2025-10-24 14:16:09 +00:00

Moved template loaders management in Engine.

Passed the engine instance to loaders. This is a prerequisite for
looking up configuration on the engine instance instead of global
settings.

This is backwards incompatible for custom template loaders that override
__init__. However the documentation doesn't talk about __init__ and the
way to pass arguments to custom template loaders isn't specified. I'm
considering it a private API.
This commit is contained in:
Aymeric Augustin
2014-11-19 23:23:58 +01:00
parent 544a716da8
commit 29a977ab14
10 changed files with 70 additions and 72 deletions

View File

@@ -22,7 +22,7 @@ except ImportError:
from django.template import TemplateDoesNotExist, Context
from django.template.loaders.eggs import Loader as EggLoader
from django.template.loaders.utils import find_template_loader
from django.template.engine import Engine
from django.template import loader
from django.test import TestCase, override_settings
from django.test.utils import IgnorePendingDeprecationWarningsMixin
@@ -86,26 +86,26 @@ class EggLoaderTest(TestCase):
@override_settings(INSTALLED_APPS=['egg_empty'])
def test_empty(self):
"Loading any template on an empty egg should fail"
egg_loader = EggLoader()
egg_loader = EggLoader(Engine.get_default())
self.assertRaises(TemplateDoesNotExist, egg_loader.load_template_source, "not-existing.html")
@override_settings(INSTALLED_APPS=['egg_1'])
def test_non_existing(self):
"Template loading fails if the template is not in the egg"
egg_loader = EggLoader()
egg_loader = EggLoader(Engine.get_default())
self.assertRaises(TemplateDoesNotExist, egg_loader.load_template_source, "not-existing.html")
@override_settings(INSTALLED_APPS=['egg_1'])
def test_existing(self):
"A template can be loaded from an egg"
egg_loader = EggLoader()
egg_loader = EggLoader(Engine.get_default())
contents, template_name = egg_loader.load_template_source("y.html")
self.assertEqual(contents, "y")
self.assertEqual(template_name, "egg:egg_1:templates/y.html")
def test_not_installed(self):
"Loading an existent template from an egg not included in any app should fail"
egg_loader = EggLoader()
egg_loader = EggLoader(Engine.get_default())
self.assertRaises(TemplateDoesNotExist, egg_loader.load_template_source, "y.html")
@@ -129,7 +129,7 @@ class CachedLoader(TestCase):
def test_missing_template_is_cached(self):
"#19949 -- Check that the missing template is cached."
template_loader = find_template_loader(settings.TEMPLATE_LOADERS[0])
template_loader = Engine.get_default().template_loaders[0]
# Empty cache, which may be filled from previous tests.
template_loader.reset()
# Check that 'missing.html' isn't already in cache before 'missing.html' is loaded