diff options
| author | Jannis Leidel | 2014-04-15 13:14:45 -0400 |
|---|---|---|
| committer | Jannis Leidel | 2014-04-15 13:14:45 -0400 |
| commit | 9ca821ad6b5f2523275682c10adba3d1f2e09edc (patch) | |
| tree | e4b35af392b8b9e3d5dcb87b4dfa8e1a00eca684 | |
| parent | f8fa4a56c01d12b75db977510c29826379be720d (diff) | |
| parent | 15b1304e74c67d78f400cf63e9ffe06d3f4318dd (diff) | |
| download | django-debug-toolbar-9ca821ad6b5f2523275682c10adba3d1f2e09edc.tar.bz2 | |
Merge pull request #578 from catalanojuan/fix-dont-run-context-processor-for-redirects
Fix dont run context processor for redirects
| -rw-r--r-- | debug_toolbar/panels/redirects.py | 4 | ||||
| -rw-r--r-- | tests/context_processors.py | 3 | ||||
| -rw-r--r-- | tests/middlewares.py | 5 | ||||
| -rw-r--r-- | tests/panels/test_redirects.py | 15 |
4 files changed, 25 insertions, 2 deletions
diff --git a/debug_toolbar/panels/redirects.py b/debug_toolbar/panels/redirects.py index 757c65c..4e5858b 100644 --- a/debug_toolbar/panels/redirects.py +++ b/debug_toolbar/panels/redirects.py @@ -1,7 +1,7 @@ from __future__ import absolute_import, unicode_literals from django.core.handlers.wsgi import STATUS_CODE_TEXT -from django.shortcuts import render +from django.shortcuts import render_to_response from django.utils.translation import ugettext_lazy as _ from debug_toolbar.panels import Panel @@ -28,6 +28,6 @@ class RedirectsPanel(Panel): status_line = '%s %s' % (response.status_code, reason_phrase) cookies = response.cookies context = {'redirect_to': redirect_to, 'status_line': status_line} - response = render(request, 'debug_toolbar/redirect.html', context) + response = render_to_response('debug_toolbar/redirect.html', context) response.cookies = cookies return response 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/' |
