diff options
author | Florian Apolloner <florian@apolloner.eu> | 2015-11-07 16:12:37 +0100 |
---|---|---|
committer | Tim Graham <timograham@gmail.com> | 2016-05-17 07:22:22 -0400 |
commit | 9baf692a58de78dba13aa582098781675367c329 (patch) | |
tree | 1926555441d0c3b13185782dce193b839d616a4a /tests/middleware_exceptions | |
parent | 05c888ffb843ba3eff06cd07b3cef5bbb513a54f (diff) | |
download | django-9baf692a58de78dba13aa582098781675367c329.tar.gz |
Fixed #26601 -- Improved middleware per DEP 0005.
Thanks Tim Graham for polishing the patch, updating the tests, and
writing documentation. Thanks Carl Meyer for shepherding the DEP.
Diffstat (limited to 'tests/middleware_exceptions')
-rw-r--r-- | tests/middleware_exceptions/middleware.py | 4 | ||||
-rw-r--r-- | tests/middleware_exceptions/tests.py | 39 |
2 files changed, 27 insertions, 16 deletions
diff --git a/tests/middleware_exceptions/middleware.py b/tests/middleware_exceptions/middleware.py index 944dd8910d..6871d9556e 100644 --- a/tests/middleware_exceptions/middleware.py +++ b/tests/middleware_exceptions/middleware.py @@ -1,8 +1,10 @@ from __future__ import unicode_literals from django.http import HttpResponse +from django.utils.deprecation import MiddlewareMixin -class ProcessExceptionMiddleware(object): +class ProcessExceptionMiddleware(MiddlewareMixin): + def process_exception(self, request, exception): return HttpResponse('Exception caught') diff --git a/tests/middleware_exceptions/tests.py b/tests/middleware_exceptions/tests.py index ef9d19fe21..13b33632f8 100644 --- a/tests/middleware_exceptions/tests.py +++ b/tests/middleware_exceptions/tests.py @@ -8,6 +8,7 @@ from django.template import engines from django.template.response import TemplateResponse from django.test import RequestFactory, SimpleTestCase, override_settings from django.test.utils import patch_logger +from django.utils.deprecation import MiddlewareMixin class TestException(Exception): @@ -15,13 +16,14 @@ class TestException(Exception): # A middleware base class that tracks which methods have been called -class TestMiddleware(object): - def __init__(self): +class TestMiddleware(MiddlewareMixin): + def __init__(self, get_response=None): self.process_request_called = False self.process_view_called = False self.process_response_called = False self.process_template_response_called = False self.process_exception_called = False + self.get_response = get_response def process_request(self, request): self.process_request_called = True @@ -115,7 +117,11 @@ class NoResponseMiddleware(TestMiddleware): super(NoResponseMiddleware, self).process_response(request, response) -@override_settings(ROOT_URLCONF='middleware_exceptions.urls') +@override_settings( + ROOT_URLCONF='middleware_exceptions.urls', + MIDDLEWARE_CLASSES=['django.middleware.common.CommonMiddleware'], + MIDDLEWARE=None, +) class BaseMiddlewareExceptionTest(SimpleTestCase): def setUp(self): @@ -492,12 +498,10 @@ class MiddlewareTests(BaseMiddlewareExceptionTest): # Check that the right middleware methods have been invoked self.assert_middleware_usage(middleware, True, True, True, True, False) - @override_settings( - MIDDLEWARE_CLASSES=['middleware_exceptions.middleware.ProcessExceptionMiddleware'], - ) + @override_settings(MIDDLEWARE=['middleware_exceptions.middleware.ProcessExceptionMiddleware']) def test_exception_in_render_passed_to_process_exception(self): # Repopulate the list of middlewares since it's already been populated - # by setUp() before the MIDDLEWARE_CLASSES setting got overridden + # by setUp() before the MIDDLEWARE setting got overridden. self.client.handler.load_middleware() response = self.client.get('/middleware_exceptions/exception_in_render/') self.assertEqual(response.content, b'Exception caught') @@ -868,7 +872,7 @@ class RootUrlconfTests(SimpleTestCase): class MyMiddleware(object): - def __init__(self): + def __init__(self, get_response=None): raise MiddlewareNotUsed def process_request(self, request): @@ -877,7 +881,7 @@ class MyMiddleware(object): class MyMiddlewareWithExceptionMessage(object): - def __init__(self): + def __init__(self, get_response=None): raise MiddlewareNotUsed('spam eggs') def process_request(self, request): @@ -887,6 +891,7 @@ class MyMiddlewareWithExceptionMessage(object): @override_settings( DEBUG=True, ROOT_URLCONF='middleware_exceptions.urls', + MIDDLEWARE=['django.middleware.common.CommonMiddleware'], ) class MiddlewareNotUsedTests(SimpleTestCase): @@ -897,9 +902,7 @@ class MiddlewareNotUsedTests(SimpleTestCase): with self.assertRaises(MiddlewareNotUsed): MyMiddleware().process_request(request) - @override_settings(MIDDLEWARE_CLASSES=[ - 'middleware_exceptions.tests.MyMiddleware', - ]) + @override_settings(MIDDLEWARE=['middleware_exceptions.tests.MyMiddleware']) def test_log(self): with patch_logger('django.request', 'debug') as calls: self.client.get('/middleware_exceptions/view/') @@ -909,9 +912,7 @@ class MiddlewareNotUsedTests(SimpleTestCase): "MiddlewareNotUsed: 'middleware_exceptions.tests.MyMiddleware'" ) - @override_settings(MIDDLEWARE_CLASSES=[ - 'middleware_exceptions.tests.MyMiddlewareWithExceptionMessage', - ]) + @override_settings(MIDDLEWARE=['middleware_exceptions.tests.MyMiddlewareWithExceptionMessage']) def test_log_custom_message(self): with patch_logger('django.request', 'debug') as calls: self.client.get('/middleware_exceptions/view/') @@ -926,3 +927,11 @@ class MiddlewareNotUsedTests(SimpleTestCase): with patch_logger('django.request', 'debug') as calls: self.client.get('/middleware_exceptions/view/') self.assertEqual(len(calls), 0) + + +@override_settings( + MIDDLEWARE_CLASSES=['django.middleware.common.CommonMiddleware'], + MIDDLEWARE=None, +) +class MiddlewareNotUsedMiddlewareClassesTests(MiddlewareNotUsedTests): + pass |