diff --git a/tests/auth_tests/test_models.py b/tests/auth_tests/test_models.py index 34f411f2f9..983424843c 100644 --- a/tests/auth_tests/test_models.py +++ b/tests/auth_tests/test_models.py @@ -433,6 +433,13 @@ class UserWithPermTestCase(TestCase): backend="invalid.backend.CustomModelBackend", ) + def test_invalid_backend_submodule(self): + with self.assertRaises(ImportError): + User.objects.with_perm( + "auth.test", + backend="json.tool", + ) + @override_settings( AUTHENTICATION_BACKENDS=["auth_tests.test_models.CustomModelBackend"] ) diff --git a/tests/auth_tests/test_validators.py b/tests/auth_tests/test_validators.py index 4da031a793..506c85c0ae 100644 --- a/tests/auth_tests/test_validators.py +++ b/tests/auth_tests/test_validators.py @@ -14,7 +14,7 @@ from django.contrib.auth.password_validation import ( password_validators_help_texts, validate_password, ) -from django.core.exceptions import ValidationError +from django.core.exceptions import ImproperlyConfigured, ValidationError from django.db import models from django.test import SimpleTestCase, TestCase, override_settings from django.test.utils import isolate_apps @@ -50,6 +50,15 @@ class PasswordValidationTest(SimpleTestCase): self.assertEqual(get_password_validators([]), []) + def test_get_password_validators_custom_invalid(self): + validator_config = [{"NAME": "json.tool"}] + msg = ( + "The module in NAME could not be imported: json.tool. " + "Check your AUTH_PASSWORD_VALIDATORS setting." + ) + with self.assertRaisesMessage(ImproperlyConfigured, msg): + get_password_validators(validator_config) + def test_validate_password(self): self.assertIsNone(validate_password("sufficiently-long")) msg_too_short = (