summaryrefslogtreecommitdiff
path: root/tests/middleware_exceptions/middleware.py
diff options
context:
space:
mode:
authorCarl Meyer <carl@oddbird.net>2016-06-14 00:41:58 -0700
committerTim Graham <timograham@gmail.com>2016-06-17 15:55:55 -0400
commit69de988f9237fe978c5fca363ca2d2622f8e2ccd (patch)
tree85e2b35e3173b62f395d78a018a454d999097606 /tests/middleware_exceptions/middleware.py
parent34fbec3cb48f41dda8daecf2e8330233621fa059 (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.py54
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')