summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2015-01-08 15:03:43 +0100
committerAymeric Augustin <aymeric.augustin@m4x.org>2015-01-12 21:01:34 +0100
commita3e783fe11dd25bbf84bfb6201186566ed473506 (patch)
tree1fe6a54ab582e54f6b1f065f2236bfe2185ce254 /tests
parent71b7668b75d10589bbbdc7c5ca9ee7a125f91c90 (diff)
Deprecated passing a Context to a generic Template.render.
A deprecation path is required because the return type of django.template.loader.get_template changed during the multiple template engines refactor. test_csrf_token_in_404 was incorrect: it tested the case when the hardcoded template was rendered, and that template doesn't depend on the CSRF token. This commit makes it test the case when a custom template is rendered.
Diffstat (limited to 'tests')
-rw-r--r--tests/template_backends/test_django.py21
-rw-r--r--tests/template_tests/test_loaders.py8
-rw-r--r--tests/template_tests/tests.py12
-rw-r--r--tests/view_tests/tests/test_defaults.py15
4 files changed, 42 insertions, 14 deletions
diff --git a/tests/template_backends/test_django.py b/tests/template_backends/test_django.py
index f332abbf24..2aaf6b57d8 100644
--- a/tests/template_backends/test_django.py
+++ b/tests/template_backends/test_django.py
@@ -1,5 +1,7 @@
+from django.template import RequestContext
from django.template.backends.django import DjangoTemplates
-from django.test import RequestFactory
+from django.test import ignore_warnings, RequestFactory
+from django.utils.deprecation import RemovedInDjango20Warning
from template_tests.test_response import test_processor_name
@@ -32,3 +34,20 @@ class DjangoTemplatesTests(TemplateStringsTests):
# Check that context overrides context processors
content = template.render({'processors': 'no'}, request)
self.assertEqual(content, 'no')
+
+ @ignore_warnings(category=RemovedInDjango20Warning)
+ def test_request_context_conflicts_with_request(self):
+ template = self.engine.from_string('hello')
+
+ request = RequestFactory().get('/')
+ request_context = RequestContext(request)
+ # This doesn't raise an exception.
+ template.render(request_context, request)
+
+ other_request = RequestFactory().get('/')
+ msg = ("render() was called with a RequestContext and a request "
+ "argument which refer to different requests. Make sure "
+ "that the context argument is a dict or at least that "
+ "the two arguments refer to the same request.")
+ with self.assertRaisesMessage(ValueError, msg):
+ template.render(request_context, other_request)
diff --git a/tests/template_tests/test_loaders.py b/tests/template_tests/test_loaders.py
index 073e57bf67..735dbac87a 100644
--- a/tests/template_tests/test_loaders.py
+++ b/tests/template_tests/test_loaders.py
@@ -210,12 +210,12 @@ class TemplateDirsOverrideTest(SimpleTestCase):
def test_get_template(self):
for dirs in self.dirs_iter:
template = loader.get_template('test_dirs.html', dirs=dirs)
- self.assertEqual(template.render(Context({})), 'spam eggs\n')
+ self.assertEqual(template.render(), 'spam eggs\n')
def test_select_template(self):
for dirs in self.dirs_iter:
template = loader.select_template(['test_dirs.html'], dirs=dirs)
- self.assertEqual(template.render(Context({})), 'spam eggs\n')
+ self.assertEqual(template.render(), 'spam eggs\n')
@override_settings(TEMPLATES=[{
@@ -236,7 +236,7 @@ class PriorityCacheLoader(SimpleTestCase):
Check that the order of template loader works. Refs #21460.
"""
t1 = loader.get_template('priority/foo.html')
- self.assertEqual(t1.render(Context({})), 'priority\n')
+ self.assertEqual(t1.render(), 'priority\n')
@override_settings(TEMPLATES=[{
@@ -255,4 +255,4 @@ class PriorityLoader(SimpleTestCase):
Check that the order of template loader works. Refs #21460.
"""
t1 = loader.get_template('priority/foo.html')
- self.assertEqual(t1.render(Context({})), 'priority\n')
+ self.assertEqual(t1.render(), 'priority\n')
diff --git a/tests/template_tests/tests.py b/tests/template_tests/tests.py
index b404a83098..8b93039dca 100644
--- a/tests/template_tests/tests.py
+++ b/tests/template_tests/tests.py
@@ -156,7 +156,7 @@ class TemplateLoaderTests(SimpleTestCase):
r = None
try:
tmpl = loader.select_template([load_name])
- r = tmpl.render(template.Context({}))
+ r = tmpl.render()
except template.TemplateDoesNotExist as e:
self.assertEqual(e.args[0], 'missing.html')
self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
@@ -182,7 +182,7 @@ class TemplateLoaderTests(SimpleTestCase):
tmpl = loader.get_template(load_name)
r = None
try:
- r = tmpl.render(template.Context({}))
+ r = tmpl.render()
except template.TemplateDoesNotExist as e:
self.assertEqual(e.args[0], 'missing.html')
self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
@@ -207,7 +207,7 @@ class TemplateLoaderTests(SimpleTestCase):
tmpl = loader.get_template(load_name)
r = None
try:
- r = tmpl.render(template.Context({}))
+ r = tmpl.render()
except template.TemplateDoesNotExist as e:
self.assertEqual(e.args[0], 'missing.html')
self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
@@ -216,7 +216,7 @@ class TemplateLoaderTests(SimpleTestCase):
# result that behaves incorrectly on subsequent attempts.
tmpl = loader.get_template(load_name)
try:
- tmpl.render(template.Context({}))
+ tmpl.render()
except template.TemplateDoesNotExist as e:
self.assertEqual(e.args[0], 'missing.html')
self.assertEqual(r, None, 'Template rendering unexpectedly succeeded, produced: ->%r<-' % r)
@@ -262,7 +262,7 @@ class TemplateLoaderTests(SimpleTestCase):
t = loader.get_template('recursive_include.html')
self.assertEqual(
"Recursion! A1 Recursion! B1 B2 B3 Recursion! C1",
- t.render(Context({'comments': comments})).replace(' ', '').replace('\n', ' ').strip(),
+ t.render({'comments': comments}).replace(' ', '').replace('\n', ' ').strip(),
)
@@ -400,7 +400,7 @@ class TemplateRegressionTests(SimpleTestCase):
"""
t = loader.get_template('included_content.html')
with self.assertRaises(urlresolvers.NoReverseMatch):
- t.render(Context({}))
+ t.render()
def test_debug_tag_non_ascii(self):
"""
diff --git a/tests/view_tests/tests/test_defaults.py b/tests/view_tests/tests/test_defaults.py
index 7b95211a5a..491e1bd562 100644
--- a/tests/view_tests/tests/test_defaults.py
+++ b/tests/view_tests/tests/test_defaults.py
@@ -19,6 +19,16 @@ class DefaultsTests(TestCase):
response = self.client.get(url)
self.assertEqual(response.status_code, 404)
+ @override_settings(TEMPLATES=[{
+ 'BACKEND': 'django.template.backends.django.DjangoTemplates',
+ 'OPTIONS': {
+ 'loaders': [
+ ('django.template.loaders.locmem.Loader', {
+ '404.html': '{{ csrf_token }}',
+ }),
+ ],
+ },
+ }])
def test_csrf_token_in_404(self):
"""
The 404 page should have the csrf_token available in the context
@@ -26,9 +36,8 @@ class DefaultsTests(TestCase):
# See ticket #14565
for url in self.non_existing_urls:
response = self.client.get(url)
- csrf_token = response.context['csrf_token']
- self.assertNotEqual(str(csrf_token), 'NOTPROVIDED')
- self.assertNotEqual(str(csrf_token), '')
+ self.assertNotEqual(response.content, 'NOTPROVIDED')
+ self.assertNotEqual(response.content, '')
def test_server_error(self):
"The server_error view raises a 500 status"