|
21 | 21 | from django.core.exceptions import ImproperlyConfigured
|
22 | 22 | from django.test import TestCase, override_settings
|
23 | 23 |
|
24 |
| -from djangosaml2.backends import (Saml2Backend, get_model, set_attribute) |
| 24 | +from djangosaml2.backends import Saml2Backend, set_attribute |
25 | 25 |
|
26 | 26 | from .models import TestUser
|
27 | 27 |
|
28 |
| -User = get_user_model() # = TestUser |
29 |
| - |
30 | 28 |
|
31 | 29 | class BackendUtilMethodsTests(TestCase):
|
32 |
| - def test_get_model_ok(self): |
33 |
| - user_model = get_model('testprofiles.TestUser') |
34 |
| - self.assertEqual(user_model, TestUser) |
35 |
| - |
36 |
| - def test_get_model_nonexisting(self): |
37 |
| - nonexisting_model = 'testprofiles.NonExisting' |
38 |
| - |
39 |
| - with self.assertRaisesMessage(ImproperlyConfigured, f"SAML_USER_MODEL refers to model '{nonexisting_model}' that has not been installed"): |
40 |
| - get_model(nonexisting_model) |
41 |
| - |
42 |
| - def test_get_model_invalid_specifier(self): |
43 |
| - nonexisting_model = 'random_package.specifier.testprofiles.NonExisting' |
44 |
| - |
45 |
| - with self.assertRaisesMessage(ImproperlyConfigured, "SAML_USER_MODEL is random_package.specifier.testprofiles.NonExisting, but must be of the form 'app_label.model_name'"): |
46 |
| - get_model(nonexisting_model) |
47 | 30 |
|
48 | 31 | def test_set_attribute(self):
|
49 | 32 | u = TestUser()
|
@@ -74,6 +57,19 @@ def setUp(self):
|
74 | 57 | self.backend = self.backend_cls()
|
75 | 58 | self.user = TestUser.objects.create(username='john')
|
76 | 59 |
|
| 60 | + def test_get_model_ok(self): |
| 61 | + self.assertEqual(self.backend._user_model, TestUser) |
| 62 | + |
| 63 | + def test_get_model_nonexisting(self): |
| 64 | + with override_settings(SAML_USER_MODEL='testprofiles.NonExisting'): |
| 65 | + with self.assertRaisesMessage(ImproperlyConfigured, "Model 'testprofiles.NonExisting' could not be loaded"): |
| 66 | + self.assertEqual(self.backend._user_model, None) |
| 67 | + |
| 68 | + def test_get_model_invalid_specifier(self): |
| 69 | + with override_settings(SAML_USER_MODEL='random_package.specifier.testprofiles.NonExisting'): |
| 70 | + with self.assertRaisesMessage(ImproperlyConfigured, "Model was specified as 'random_package.specifier.testprofiles.NonExisting', but it must be of the form 'app_label.model_name'"): |
| 71 | + self.assertEqual(self.backend._user_model, None) |
| 72 | + |
77 | 73 | def test_user_model_specified(self):
|
78 | 74 | with override_settings(AUTH_USER_MODEL='auth.User'):
|
79 | 75 | with override_settings(SAML_USER_MODEL='testprofiles.TestUser'):
|
@@ -209,10 +205,10 @@ def test_create_user_with_required_fields(self):
|
209 | 205 | self.assertIs(user.email_verified, True)
|
210 | 206 |
|
211 | 207 | def test_django_user_main_attribute(self):
|
212 |
| - old_username_field = User.USERNAME_FIELD |
213 |
| - User.USERNAME_FIELD = 'slug' |
| 208 | + old_username_field = get_user_model().USERNAME_FIELD |
| 209 | + get_user_model().USERNAME_FIELD = 'slug' |
214 | 210 | self.assertEqual(self.backend._user_lookup_attribute, 'slug')
|
215 |
| - User.USERNAME_FIELD = old_username_field |
| 211 | + get_user_model().USERNAME_FIELD = old_username_field |
216 | 212 |
|
217 | 213 | with override_settings(AUTH_USER_MODEL='auth.User'):
|
218 | 214 | self.assertEqual(
|
|
0 commit comments