diff options
| author | Juan Catalano | 2014-04-15 14:33:38 +0000 |
|---|---|---|
| committer | Juan Catalano | 2014-04-15 11:34:20 -0400 |
| commit | 15b1304e74c67d78f400cf63e9ffe06d3f4318dd (patch) | |
| tree | e4b35af392b8b9e3d5dcb87b4dfa8e1a00eca684 | |
| parent | da95140ec391cd162dedb587bdff5d6e596c1015 (diff) | |
| download | django-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.py | 3 | ||||
| -rw-r--r-- | tests/middlewares.py | 5 | ||||
| -rw-r--r-- | tests/panels/test_redirects.py | 15 |
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/' |
