Skip to content

Commit 74434fc

Browse files
committed
Added Django 1.10 middleware support
This commit is from previous work.
1 parent 7012eb0 commit 74434fc

3 files changed

Lines changed: 34 additions & 15 deletions

File tree

account/middleware.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
except ImportError: # python 2
66
from urlparse import urlparse, urlunparse
77

8+
import django
9+
810
from django.contrib import messages
911
from django.contrib.auth import REDIRECT_FIELD_NAME
1012
from django.core.urlresolvers import resolve, reverse
@@ -19,7 +21,13 @@
1921
from account.utils import check_password_expired
2022

2123

22-
class LocaleMiddleware(object):
24+
if django.VERSION >= (1, 10):
25+
from django.utils.deprecation import MiddlewareMixin as BaseMiddleware
26+
else:
27+
BaseMiddleware = object
28+
29+
30+
class LocaleMiddleware(BaseMiddleware):
2331
"""
2432
This is a very simple middleware that parses a request
2533
and decides what translation object to install in the current
@@ -48,7 +56,7 @@ def process_response(self, request, response):
4856
return response
4957

5058

51-
class TimezoneMiddleware(object):
59+
class TimezoneMiddleware(BaseMiddleware):
5260
"""
5361
This middleware sets the timezone used to display dates in
5462
templates to the user's timezone.
@@ -65,7 +73,7 @@ def process_request(self, request):
6573
timezone.activate(tz)
6674

6775

68-
class ExpiredPasswordMiddleware(object):
76+
class ExpiredPasswordMiddleware(BaseMiddleware):
6977

7078
def process_request(self, request):
7179
if request.user.is_authenticated() and not request.user.is_staff:

account/tests/test_password.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import datetime
22
import pytz
33

4+
import django
5+
46
from django.contrib.auth.hashers import (
57
check_password,
68
make_password,
@@ -20,13 +22,21 @@
2022
from ..utils import check_password_expired
2123

2224

25+
def middleware_kwarg(value):
26+
if django.VERSION >= (1, 10):
27+
kwarg = "MIDDLEWARE"
28+
else:
29+
kwarg = "MIDDLEWARE_CLASSES"
30+
return {kwarg: value}
31+
32+
2333
@override_settings(
2434
ACCOUNT_PASSWORD_USE_HISTORY=True
2535
)
2636
@modify_settings(
27-
MIDDLEWARE_CLASSES={
28-
'append': 'account.middleware.ExpiredPasswordMiddleware'
29-
}
37+
**middleware_kwarg({
38+
"append": "account.middleware.ExpiredPasswordMiddleware"
39+
})
3040
)
3141
class PasswordExpirationTestCase(TestCase):
3242

@@ -133,9 +143,9 @@ def test_password_expiration_reset(self):
133143

134144

135145
@modify_settings(
136-
MIDDLEWARE_CLASSES={
137-
'append': 'account.middleware.ExpiredPasswordMiddleware'
138-
}
146+
**middleware_kwarg({
147+
"append": "account.middleware.ExpiredPasswordMiddleware"
148+
})
139149
)
140150
class ExistingUserNoHistoryTestCase(TestCase):
141151
"""

runtests.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,6 @@
1919
"account",
2020
"account.tests",
2121
],
22-
MIDDLEWARE_CLASSES=[
23-
"django.contrib.sessions.middleware.SessionMiddleware",
24-
"django.contrib.auth.middleware.AuthenticationMiddleware",
25-
"django.contrib.auth.middleware.SessionAuthenticationMiddleware",
26-
"django.contrib.messages.middleware.MessageMiddleware",
27-
],
2822
DATABASES={
2923
"default": {
3024
"ENGINE": "django.db.backends.sqlite3",
@@ -58,6 +52,13 @@
5852
]
5953
)
6054

55+
DEFAULT_SETTINGS["MIDDLEWARE" if django.VERSION >= (1, 10) else "MIDDLEWARE_CLASSES"] = [
56+
"django.contrib.sessions.middleware.SessionMiddleware",
57+
"django.contrib.auth.middleware.AuthenticationMiddleware",
58+
"django.contrib.auth.middleware.SessionAuthenticationMiddleware",
59+
"django.contrib.messages.middleware.MessageMiddleware",
60+
]
61+
6162

6263
def runtests(*test_args):
6364
if not settings.configured:

0 commit comments

Comments
 (0)