summaryrefslogtreecommitdiff
path: root/tests/template_tests
diff options
context:
space:
mode:
authorDavid Sanders <shang.xiao.sanders@gmail.com>2023-03-29 17:54:04 +1100
committerGitHub <noreply@github.com>2023-03-29 08:54:04 +0200
commit5dba5fda551afe169dce7620b08a99c3455ebb00 (patch)
tree10b1156a8e519ed3d10a4108e5f6ca11aa10df86 /tests/template_tests
parent996c802229b93fe83c39842e56c6b8668464deaf (diff)
downloaddjango-5dba5fda551afe169dce7620b08a99c3455ebb00.tar.gz
Fixed #34427 -- Improved error message when context processor does not return a dict.
Diffstat (limited to 'tests/template_tests')
-rw-r--r--tests/template_tests/test_context.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/tests/template_tests/test_context.py b/tests/template_tests/test_context.py
index 4feb9e57d6..7420bb4c36 100644
--- a/tests/template_tests/test_context.py
+++ b/tests/template_tests/test_context.py
@@ -10,7 +10,7 @@ from django.template import (
VariableDoesNotExist,
)
from django.template.context import RenderContext
-from django.test import RequestFactory, SimpleTestCase
+from django.test import RequestFactory, SimpleTestCase, override_settings
class ContextTests(SimpleTestCase):
@@ -222,6 +222,10 @@ class ContextTests(SimpleTestCase):
self.assertEqual(c.dicts[-1]["a"], 2)
+def context_process_returning_none(request):
+ return None
+
+
class RequestContextTests(SimpleTestCase):
request_factory = RequestFactory()
@@ -276,3 +280,26 @@ class RequestContextTests(SimpleTestCase):
context = RequestContext(request, {})
context["foo"] = "foo"
self.assertEqual(template.render(context), "foo")
+
+ @override_settings(
+ TEMPLATES=[
+ {
+ "BACKEND": "django.template.backends.django.DjangoTemplates",
+ "OPTIONS": {
+ "context_processors": [
+ "django.template.context_processors.request",
+ "template_tests.test_context.context_process_returning_none",
+ ],
+ },
+ }
+ ],
+ )
+ def test_template_context_processor_returning_none(self):
+ request_context = RequestContext(HttpRequest())
+ msg = (
+ "Context processor context_process_returning_none didn't return a "
+ "dictionary."
+ )
+ with self.assertRaisesMessage(TypeError, msg):
+ with request_context.bind_template(Template("")):
+ pass