11import unittest
22from distutils .version import StrictVersion
33
4- import rest_framework
4+ import django
55from django .test import TestCase
6+ from django .test .utils import override_settings
7+ import rest_framework
68
79from rest_framework_jwt .compat import get_user_model
810from rest_framework_jwt .serializers import JSONWebTokenSerializer
@@ -68,6 +70,9 @@ def test_invalid_credentials(self):
6870 self .assertFalse (is_valid )
6971 self .assertEqual (serializer .errors , expected_error )
7072
73+ @unittest .skipIf (
74+ django .VERSION [1 ] >= 10 ,
75+ reason = 'The ModelBackend does not permit login when is_active is False.' )
7176 def test_disabled_user (self ):
7277 self .user .is_active = False
7378 self .user .save ()
@@ -82,6 +87,25 @@ def test_disabled_user(self):
8287 self .assertFalse (is_valid )
8388 self .assertEqual (serializer .errors , expected_error )
8489
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+
85109 def test_required_fields (self ):
86110 serializer = JSONWebTokenSerializer (data = {})
87111 is_valid = serializer .is_valid ()
0 commit comments