1
1
import unittest
2
2
from distutils .version import StrictVersion
3
3
4
- import rest_framework
4
+ import django
5
5
from django .test import TestCase
6
+ from django .test .utils import override_settings
7
+ import rest_framework
6
8
7
9
from rest_framework_jwt .compat import get_user_model
8
10
from rest_framework_jwt .serializers import JSONWebTokenSerializer
@@ -68,6 +70,9 @@ def test_invalid_credentials(self):
68
70
self .assertFalse (is_valid )
69
71
self .assertEqual (serializer .errors , expected_error )
70
72
73
+ @unittest .skipIf (
74
+ django .VERSION [1 ] >= 10 ,
75
+ reason = 'The ModelBackend does not permit login when is_active is False.' )
71
76
def test_disabled_user (self ):
72
77
self .user .is_active = False
73
78
self .user .save ()
@@ -82,6 +87,25 @@ def test_disabled_user(self):
82
87
self .assertFalse (is_valid )
83
88
self .assertEqual (serializer .errors , expected_error )
84
89
90
+ @unittest .skipUnless (
91
+ django .VERSION [1 ] >= 10 ,
92
+ reason = 'The AllowAllUsersModelBackend permits login when is_active is False.' )
93
+ @override_settings (AUTHENTICATION_BACKENDS = [
94
+ 'django.contrib.auth.backends.AllowAllUsersModelBackend' ])
95
+ def test_disabled_user_all_users_backend (self ):
96
+ self .user .is_active = False
97
+ self .user .save ()
98
+
99
+ serializer = JSONWebTokenSerializer (data = self .data )
100
+ is_valid = serializer .is_valid ()
101
+
102
+ expected_error = {
103
+ 'non_field_errors' : ['User account is disabled.' ]
104
+ }
105
+
106
+ self .assertFalse (is_valid )
107
+ self .assertEqual (serializer .errors , expected_error )
108
+
85
109
def test_required_fields (self ):
86
110
serializer = JSONWebTokenSerializer (data = {})
87
111
is_valid = serializer .is_valid ()
0 commit comments