diff options
| author | Alex Hill <alex@hill.net.au> | 2016-07-19 16:45:32 +0800 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-07-25 13:41:50 -0400 |
| commit | 44a6b4028033890d4a3832875c774db321182de6 (patch) | |
| tree | ae7da1ad06d9b82b4d7b63e554097099fa9e0a69 /tests/middleware_exceptions/tests.py | |
| parent | ec4a6b33a9af7f7c266c92b4ffb9b0a49ee5b1eb (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.py | 32 |
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): |
