aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJuan Catalano2014-04-15 14:33:38 +0000
committerJuan Catalano2014-04-15 11:34:20 -0400
commit15b1304e74c67d78f400cf63e9ffe06d3f4318dd (patch)
treee4b35af392b8b9e3d5dcb87b4dfa8e1a00eca684
parentda95140ec391cd162dedb587bdff5d6e596c1015 (diff)
downloaddjango-debug-toolbar-15b1304e74c67d78f400cf63e9ffe06d3f4318dd.tar.bz2
Added unit test for broken context processors due to use of `render`
This adds the regression test for the case when a custom context processor breaks cause of the use of `render` in the redirects panel.
-rw-r--r--tests/context_processors.py3
-rw-r--r--tests/middlewares.py5
-rw-r--r--tests/panels/test_redirects.py15
3 files changed, 23 insertions, 0 deletions
diff --git a/tests/context_processors.py b/tests/context_processors.py
new file mode 100644
index 0000000..3514639
--- /dev/null
+++ b/tests/context_processors.py
@@ -0,0 +1,3 @@
+
+def custom(req):
+ msg = req.myattr
diff --git a/tests/middlewares.py b/tests/middlewares.py
new file mode 100644
index 0000000..44a3ef1
--- /dev/null
+++ b/tests/middlewares.py
@@ -0,0 +1,5 @@
+
+
+class CustomMiddleware(object):
+ def process_request(request):
+ request.myattr = 'test attribute'
diff --git a/tests/panels/test_redirects.py b/tests/panels/test_redirects.py
index 7e94e77..8e63ff0 100644
--- a/tests/panels/test_redirects.py
+++ b/tests/panels/test_redirects.py
@@ -1,6 +1,7 @@
from __future__ import absolute_import, unicode_literals
import django
+from django.conf import settings
from django.http import HttpResponse
from django.test.utils import override_settings
from django.utils import unittest
@@ -32,6 +33,20 @@ class RedirectsPanelTestCase(BaseTestCase):
self.assertContains(response, '302 FOUND')
self.assertContains(response, 'http://somewhere/else/')
+ def test_redirect_breaks_procesor(self):
+ middlewares = settings.MIDDLEWARE_CLASSES + ['tests.middlewares.CustomMiddleware']
+ context_processors = settings.TEMPLATE_CONTEXT_PROCESSORS + \
+ ('tests.context_processors.custom',)
+
+ with self.settings(MIDDLEWARE_CLASSES=middlewares,
+ TEMPLATE_CONTEXT_PROCESSORS=context_processors):
+ redirect = HttpResponse(status=302)
+ redirect['Location'] = 'http://somewhere/else/'
+ response = self.panel.process_response(self.request, redirect)
+ self.assertFalse(response is redirect)
+ self.assertContains(response, '302 FOUND')
+ self.assertContains(response, 'http://somewhere/else/')
+
def test_unknown_status_code(self):
redirect = HttpResponse(status=369)
redirect['Location'] = 'http://somewhere/else/'