summaryrefslogtreecommitdiff
path: root/tests/template_tests
diff options
context:
space:
mode:
authorBouke Haarsma <bouke@webatoom.nl>2013-10-14 15:14:17 +0200
committerTim Graham <timograham@gmail.com>2013-10-21 11:31:05 -0400
commit3565efaa451db6eb735a085ea6aae3fe86e6d283 (patch)
tree7030dcebfb01ef75bd1d6b308fd21caea3f20034 /tests/template_tests
parent499cd912ca36597df737df73c8f91ffab36c83d9 (diff)
Removed some direct settings manipulations in tests; refs #21230.
Diffstat (limited to 'tests/template_tests')
-rw-r--r--tests/template_tests/test_loaders.py55
-rw-r--r--tests/template_tests/test_response.py35
-rw-r--r--tests/template_tests/tests.py36
3 files changed, 47 insertions, 79 deletions
diff --git a/tests/template_tests/test_loaders.py b/tests/template_tests/test_loaders.py
index ebdac4b9c4..1eef3942a6 100644
--- a/tests/template_tests/test_loaders.py
+++ b/tests/template_tests/test_loaders.py
@@ -23,6 +23,8 @@ except ImportError:
from django.template import TemplateDoesNotExist, Context
from django.template.loaders.eggs import Loader as EggLoader
from django.template import loader
+from django.test import TestCase
+from django.test.utils import override_settings
from django.utils import six
from django.utils._os import upath
from django.utils.six import StringIO
@@ -46,7 +48,8 @@ def create_egg(name, resources):
@unittest.skipUnless(pkg_resources, 'setuptools is not installed')
-class EggLoaderTest(unittest.TestCase):
+@override_settings(INSTALLED_APPS=[])
+class EggLoaderTest(TestCase):
def setUp(self):
# Defined here b/c at module scope we may not have pkg_resources
class MockProvider(pkg_resources.NullProvider):
@@ -73,51 +76,42 @@ class EggLoaderTest(unittest.TestCase):
os.path.normcase('templates/y.html'): StringIO("y"),
os.path.normcase('templates/x.txt'): StringIO("x"),
})
- self._old_installed_apps = settings.INSTALLED_APPS
- settings.INSTALLED_APPS = []
-
- def tearDown(self):
- settings.INSTALLED_APPS = self._old_installed_apps
+ @override_settings(INSTALLED_APPS=['egg_empty'])
def test_empty(self):
"Loading any template on an empty egg should fail"
- settings.INSTALLED_APPS = ['egg_empty']
egg_loader = EggLoader()
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"
- settings.INSTALLED_APPS = ['egg_1']
egg_loader = EggLoader()
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"
- settings.INSTALLED_APPS = ['egg_1']
egg_loader = EggLoader()
contents, template_name = egg_loader.load_template_source("y.html")
self.assertEqual(contents, "y")
self.assertEqual(template_name, "egg:egg_1:templates/y.html")
+ @override_settings(INSTALLED_APPS=[])
def test_not_installed(self):
"Loading an existent template from an egg not included in INSTALLED_APPS should fail"
- settings.INSTALLED_APPS = []
egg_loader = EggLoader()
self.assertRaises(TemplateDoesNotExist, egg_loader.load_template_source, "y.html")
-class CachedLoader(unittest.TestCase):
- def setUp(self):
- self.old_TEMPLATE_LOADERS = settings.TEMPLATE_LOADERS
- settings.TEMPLATE_LOADERS = (
- ('django.template.loaders.cached.Loader', (
- 'django.template.loaders.filesystem.Loader',
- )
- ),
- )
- def tearDown(self):
- settings.TEMPLATE_LOADERS = self.old_TEMPLATE_LOADERS
-
+@override_settings(
+ TEMPLATE_LOADERS = (
+ ('django.template.loaders.cached.Loader', (
+ 'django.template.loaders.filesystem.Loader',
+ )),
+ )
+)
+class CachedLoader(TestCase):
def test_templatedir_caching(self):
"Check that the template directories form part of the template cache key. Refs #13573"
# Retrive a template specifying a template directory to check
@@ -144,17 +138,12 @@ class CachedLoader(unittest.TestCase):
"Cached template loader doesn't cache file lookup misses. It should.")
-class RenderToStringTest(unittest.TestCase):
-
- def setUp(self):
- self._old_TEMPLATE_DIRS = settings.TEMPLATE_DIRS
- settings.TEMPLATE_DIRS = (
- os.path.join(os.path.dirname(upath(__file__)), 'templates'),
- )
-
- def tearDown(self):
- settings.TEMPLATE_DIRS = self._old_TEMPLATE_DIRS
-
+@override_settings(
+ TEMPLATE_DIRS = (
+ os.path.join(os.path.dirname(upath(__file__)), 'templates'),
+ )
+)
+class RenderToStringTest(TestCase):
def test_basic(self):
self.assertEqual(loader.render_to_string('test_context.html'), 'obj:')
diff --git a/tests/template_tests/test_response.py b/tests/template_tests/test_response.py
index e8a9ee8a89..063fba3047 100644
--- a/tests/template_tests/test_response.py
+++ b/tests/template_tests/test_response.py
@@ -296,41 +296,30 @@ class TemplateResponseTest(TestCase):
pickle.dumps(unpickled_response)
+@override_settings(
+ MIDDLEWARE_CLASSES=list(settings.MIDDLEWARE_CLASSES) + [
+ 'template_tests.test_response.CustomURLConfMiddleware'
+ ]
+)
class CustomURLConfTest(TestCase):
urls = 'template_tests.urls'
- def setUp(self):
- self.old_MIDDLEWARE_CLASSES = settings.MIDDLEWARE_CLASSES
- settings.MIDDLEWARE_CLASSES = list(settings.MIDDLEWARE_CLASSES) + [
- 'template_tests.test_response.CustomURLConfMiddleware'
- ]
-
- def tearDown(self):
- settings.MIDDLEWARE_CLASSES = self.old_MIDDLEWARE_CLASSES
-
def test_custom_urlconf(self):
response = self.client.get('/template_response_view/')
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'This is where you can find the snark: /snark/')
+@override_settings(
+ CACHE_MIDDLEWARE_SECONDS=2.0,
+ MIDDLEWARE_CLASSES=list(settings.MIDDLEWARE_CLASSES) + [
+ 'django.middleware.cache.FetchFromCacheMiddleware',
+ 'django.middleware.cache.UpdateCacheMiddleware',
+ ]
+)
class CacheMiddlewareTest(TestCase):
urls = 'template_tests.alternate_urls'
- def setUp(self):
- self.old_MIDDLEWARE_CLASSES = settings.MIDDLEWARE_CLASSES
- self.CACHE_MIDDLEWARE_SECONDS = settings.CACHE_MIDDLEWARE_SECONDS
-
- settings.CACHE_MIDDLEWARE_SECONDS = 2.0
- settings.MIDDLEWARE_CLASSES = list(settings.MIDDLEWARE_CLASSES) + [
- 'django.middleware.cache.FetchFromCacheMiddleware',
- 'django.middleware.cache.UpdateCacheMiddleware',
- ]
-
- def tearDown(self):
- settings.MIDDLEWARE_CLASSES = self.old_MIDDLEWARE_CLASSES
- settings.CACHE_MIDDLEWARE_SECONDS = self.CACHE_MIDDLEWARE_SECONDS
-
def test_middleware_caching(self):
response = self.client.get('/template_response_view/')
self.assertEqual(response.status_code, 200)
diff --git a/tests/template_tests/tests.py b/tests/template_tests/tests.py
index 98ca14ab42..ad6b4433da 100644
--- a/tests/template_tests/tests.py
+++ b/tests/template_tests/tests.py
@@ -201,10 +201,10 @@ class TemplateLoaderTests(TestCase):
test_template_sources('/DIR1/index.HTML', template_dirs,
['/DIR1/index.HTML'])
+ # Turn TEMPLATE_DEBUG on, so that the origin file name will be kept with
+ # the compiled templates.
+ @override_settings(TEMPLATE_DEBUG=True)
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
try:
@@ -237,7 +237,6 @@ class TemplateLoaderTests(TestCase):
'Cached template loaded through cached loader has incorrect name for debug page: %s' % template_name)
finally:
loader.template_source_loaders = old_loaders
- settings.TEMPLATE_DEBUG = old_td
def test_loader_origin(self):
with self.settings(TEMPLATE_DEBUG=True):
@@ -253,15 +252,14 @@ class TemplateLoaderTests(TestCase):
template = loader.get_template('login.html')
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)
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:
@@ -276,13 +274,14 @@ class TemplateLoaderTests(TestCase):
tmpl = loader.select_template([load_name])
r = tmpl.render(template.Context({}))
except template.TemplateDoesNotExist as 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
+ # TEMPLATE_DEBUG must be true, otherwise the exception raised
+ # during {% include %} processing will be suppressed.
+ @override_settings(TEMPLATE_DEBUG=True)
def test_extends_include_missing_baseloader(self):
"""
Tests that the correct template is identified as not existing
@@ -290,10 +289,6 @@ class TemplateLoaderTests(TestCase):
that template has an {% include %} of something that does not
exist. See #12787.
"""
-
- # 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:
@@ -308,20 +303,18 @@ class TemplateLoaderTests(TestCase):
try:
r = tmpl.render(template.Context({}))
except template.TemplateDoesNotExist as 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
+ @override_settings(TEMPLATE_DEBUG=True)
def test_extends_include_missing_cachedloader(self):
"""
Same as test_extends_include_missing_baseloader, only tests
behavior of the cached loader instead of BaseLoader.
"""
- old_td, settings.TEMPLATE_DEBUG = settings.TEMPLATE_DEBUG, True
old_loaders = loader.template_source_loaders
try:
@@ -348,7 +341,6 @@ class TemplateLoaderTests(TestCase):
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_include_template_argument(self):
"""
@@ -1822,17 +1814,15 @@ class TemplateTests(TransRealMixin, TestCase):
return tests
-class TemplateTagLoading(unittest.TestCase):
+class TemplateTagLoading(TestCase):
def setUp(self):
self.old_path = sys.path[:]
- self.old_apps = settings.INSTALLED_APPS
self.egg_dir = '%s/eggs' % os.path.dirname(upath(__file__))
self.old_tag_modules = template_base.templatetags_modules
template_base.templatetags_modules = []
def tearDown(self):
- settings.INSTALLED_APPS = self.old_apps
sys.path = self.old_path
template_base.templatetags_modules = self.old_tag_modules
@@ -1845,11 +1835,11 @@ class TemplateTagLoading(unittest.TestCase):
self.assertTrue('ImportError' in e.args[0])
self.assertTrue('Xtemplate' in e.args[0])
+ @override_settings(INSTALLED_APPS=('tagsegg',))
def test_load_error_egg(self):
ttext = "{% load broken_egg %}"
egg_name = '%s/tagsegg.egg' % self.egg_dir
sys.path.append(egg_name)
- settings.INSTALLED_APPS = ('tagsegg',)
self.assertRaises(template.TemplateSyntaxError, template.Template, ttext)
try:
template.Template(ttext)
@@ -1857,11 +1847,11 @@ class TemplateTagLoading(unittest.TestCase):
self.assertTrue('ImportError' in e.args[0])
self.assertTrue('Xtemplate' in e.args[0])
+ @override_settings(INSTALLED_APPS=('tagsegg',))
def test_load_working_egg(self):
ttext = "{% load working_egg %}"
egg_name = '%s/tagsegg.egg' % self.egg_dir
sys.path.append(egg_name)
- settings.INSTALLED_APPS = ('tagsegg',)
template.Template(ttext)