summaryrefslogtreecommitdiff
path: root/tests/middleware_exceptions/tests.py
diff options
context:
space:
mode:
authorAlex Hill <alex@hill.net.au>2016-07-19 16:45:32 +0800
committerTim Graham <timograham@gmail.com>2016-07-25 13:41:50 -0400
commit44a6b4028033890d4a3832875c774db321182de6 (patch)
treeae7da1ad06d9b82b4d7b63e554097099fa9e0a69 /tests/middleware_exceptions/tests.py
parentec4a6b33a9af7f7c266c92b4ffb9b0a49ee5b1eb (diff)
Fixed #26915 -- Fixed regression handling responses returned from view middleware.
Diffstat (limited to 'tests/middleware_exceptions/tests.py')
-rw-r--r--tests/middleware_exceptions/tests.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/tests/middleware_exceptions/tests.py b/tests/middleware_exceptions/tests.py
index f6a7e24e59..230d062c88 100644
--- a/tests/middleware_exceptions/tests.py
+++ b/tests/middleware_exceptions/tests.py
@@ -22,10 +22,40 @@ class MiddlewareTests(SimpleTestCase):
response = self.client.get('/middleware_exceptions/view/')
self.assertEqual(response.content, b'Processed view normal_view')
+ @override_settings(MIDDLEWARE=[
+ 'middleware_exceptions.middleware.ProcessViewTemplateResponseMiddleware',
+ 'middleware_exceptions.middleware.LogMiddleware',
+ ])
+ def test_templateresponse_from_process_view_rendered(self):
+ """
+ TemplateResponses returned from process_view() must be rendered before
+ being passed to any middleware that tries to access response.content,
+ such as middleware_exceptions.middleware.LogMiddleware.
+ """
+ response = self.client.get('/middleware_exceptions/view/')
+ self.assertEqual(response.content, b'Processed view normal_view\nProcessViewTemplateResponseMiddleware')
+
+ @override_settings(MIDDLEWARE=[
+ 'middleware_exceptions.middleware.ProcessViewTemplateResponseMiddleware',
+ 'middleware_exceptions.middleware.TemplateResponseMiddleware',
+ ])
+ def test_templateresponse_from_process_view_passed_to_process_template_response(self):
+ """
+ TemplateResponses returned from process_view() should be passed to any
+ template response middleware.
+ """
+ response = self.client.get('/middleware_exceptions/view/')
+ expected_lines = [
+ b'Processed view normal_view',
+ b'ProcessViewTemplateResponseMiddleware',
+ b'TemplateResponseMiddleware',
+ ]
+ self.assertEqual(response.content, b'\n'.join(expected_lines))
+
@override_settings(MIDDLEWARE=['middleware_exceptions.middleware.TemplateResponseMiddleware'])
def test_process_template_response(self):
response = self.client.get('/middleware_exceptions/template_response/')
- self.assertEqual(response.content, b'template-response middleware')
+ self.assertEqual(response.content, b'template_response OK\nTemplateResponseMiddleware')
@override_settings(MIDDLEWARE=['middleware_exceptions.middleware.LogMiddleware'])
def test_view_exception_converted_before_middleware(self):