Commit a962bc7c authored by Claude Paroz's avatar Claude Paroz
Browse files

Updated User manager when testing custom AUTH_USER_MODEL

This is giving more real test conditions when AUTH_USER_MODEL is
set with override_settings.
parent 08b4a222
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -14,3 +14,16 @@ from django.contrib.auth.tests.tokens import *
from django.contrib.auth.tests.views import *

# The password for the fixture data users is 'password'

from django.dispatch import receiver
from django.test.signals import setting_changed


@receiver(setting_changed)
def user_model_swapped(**kwargs):
    if kwargs['setting'] == 'AUTH_USER_MODEL':
        from django.db.models.manager import ensure_default_manager
        from django.contrib.auth.models import User
        # Reset User manager
        setattr(User, 'objects', User._default_manager)
        ensure_default_manager(User)
+2 −0
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@ class BasicTestCase(TestCase):
    def test_swappable_user(self):
        "The current user model can be swapped out for another"
        self.assertEqual(get_user_model(), CustomUser)
        with self.assertRaises(AttributeError):
            User.objects.all()

    @override_settings(AUTH_USER_MODEL='badsetting')
    def test_swappable_user_bad_setting(self):