diff options
| author | Carl Meyer <carl@oddbird.net> | 2016-06-14 00:41:58 -0700 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2016-06-17 15:55:55 -0400 |
| commit | 69de988f9237fe978c5fca363ca2d2622f8e2ccd (patch) | |
| tree | 85e2b35e3173b62f395d78a018a454d999097606 /tests/middleware_exceptions/middleware.py | |
| parent | 34fbec3cb48f41dda8daecf2e8330233621fa059 (diff) | |
[1.10.x] Refs #26601 -- Improved backwards-compatibility of DEP 5 middleware exception handling.
Backport of 7d1b69dbe7f72ac04d2513f0468fe2146231b286 from master
Diffstat (limited to 'tests/middleware_exceptions/middleware.py')
| -rw-r--r-- | tests/middleware_exceptions/middleware.py | 54 |
1 files changed, 51 insertions, 3 deletions
diff --git a/tests/middleware_exceptions/middleware.py b/tests/middleware_exceptions/middleware.py index 6871d9556e..690660fb53 100644 --- a/tests/middleware_exceptions/middleware.py +++ b/tests/middleware_exceptions/middleware.py @@ -1,10 +1,58 @@ from __future__ import unicode_literals -from django.http import HttpResponse -from django.utils.deprecation import MiddlewareMixin +from django.http import Http404, HttpResponse +from django.template import engines +log = [] -class ProcessExceptionMiddleware(MiddlewareMixin): +class BaseMiddleware(object): + def __init__(self, get_response): + self.get_response = get_response + + def __call__(self, request): + return self.get_response(request) + + +class ProcessExceptionMiddleware(BaseMiddleware): def process_exception(self, request, exception): return HttpResponse('Exception caught') + + +class ProcessExceptionLogMiddleware(BaseMiddleware): + def process_exception(self, request, exception): + log.append('process-exception') + + +class ProcessExceptionExcMiddleware(BaseMiddleware): + def process_exception(self, request, exception): + raise Exception('from process-exception') + + +class ProcessViewMiddleware(BaseMiddleware): + def process_view(self, request, view_func, view_args, view_kwargs): + return HttpResponse('Processed view %s' % view_func.__name__) + + +class ProcessViewNoneMiddleware(BaseMiddleware): + def process_view(self, request, view_func, view_args, view_kwargs): + log.append('processed view %s' % view_func.__name__) + return None + + +class TemplateResponseMiddleware(BaseMiddleware): + def process_template_response(self, request, response): + response.template_name = engines['django'].from_string('template-response middleware') + return response + + +class LogMiddleware(BaseMiddleware): + def __call__(self, request): + response = self.get_response(request) + log.append((response.status_code, response.content)) + return response + + +class NotFoundMiddleware(BaseMiddleware): + def __call__(self, request): + raise Http404('not found') |
