mirror of
https://github.com/django/django.git
synced 2025-10-24 22:26:08 +00:00
Fixed #26915 -- Fixed regression handling responses returned from view middleware.
This commit is contained in:
@@ -56,12 +56,25 @@ class ViewMiddleware(TestMiddleware):
|
||||
return HttpResponse('View Middleware')
|
||||
|
||||
|
||||
class TemplateResponseViewMiddleware(TestMiddleware):
|
||||
def process_view(self, request, view_func, view_args, view_kwargs):
|
||||
super(TemplateResponseViewMiddleware, self).process_view(request, view_func, view_args, view_kwargs)
|
||||
template = engines['django'].from_string('TemplateResponse View Middleware')
|
||||
return TemplateResponse(request, template)
|
||||
|
||||
|
||||
class ResponseMiddleware(TestMiddleware):
|
||||
def process_response(self, request, response):
|
||||
super(ResponseMiddleware, self).process_response(request, response)
|
||||
return HttpResponse('Response Middleware')
|
||||
|
||||
|
||||
class ContentAccessingResponseMiddleware(TestMiddleware):
|
||||
def process_response(self, request, response):
|
||||
super(ContentAccessingResponseMiddleware, self).process_response(request, response)
|
||||
return HttpResponse('Content-accessing Response Middleware: %d' % len(response.content))
|
||||
|
||||
|
||||
class TemplateResponseMiddleware(TestMiddleware):
|
||||
def process_template_response(self, request, response):
|
||||
super(TemplateResponseMiddleware, self).process_template_response(request, response)
|
||||
@@ -512,6 +525,30 @@ class MiddlewareTests(BaseMiddlewareExceptionTest):
|
||||
# Check that the right middleware methods have been invoked
|
||||
self.assert_middleware_usage(middleware, True, True, True, True, False)
|
||||
|
||||
def test_templateresponse_from_process_view_rendered(self):
|
||||
view_middleware = TemplateResponseViewMiddleware()
|
||||
# ContentAccessingResponseMiddleware tries to access response.content
|
||||
# in its process_response().
|
||||
post_middleware = ContentAccessingResponseMiddleware()
|
||||
self._add_middleware(view_middleware)
|
||||
self._add_middleware(post_middleware)
|
||||
self.assert_exceptions_handled('/middleware_exceptions/view/', [])
|
||||
self.assert_middleware_usage(view_middleware, True, True, True, True, False)
|
||||
self.assert_middleware_usage(post_middleware, True, True, True, True, False)
|
||||
|
||||
def test_templateresponse_from_process_view_passed_to_template_response_middleware(self):
|
||||
"""
|
||||
TemplateResponses returned from process_view() should be passed to any
|
||||
process_template_response().
|
||||
"""
|
||||
view_middleware = TemplateResponseViewMiddleware()
|
||||
resp_middleware = TemplateResponseMiddleware()
|
||||
self._add_middleware(view_middleware)
|
||||
self._add_middleware(resp_middleware)
|
||||
self.assert_exceptions_handled('/middleware_exceptions/view/', [])
|
||||
self.assert_middleware_usage(view_middleware, True, True, True, True, False)
|
||||
self.assert_middleware_usage(resp_middleware, True, True, True, True, False)
|
||||
|
||||
|
||||
class BadMiddlewareTests(BaseMiddlewareExceptionTest):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user