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.
This commit is contained in:
Claude Paroz 2012-11-24 15:56:31 +01:00
parent 08b4a22293
commit a962bc7c45
2 changed files with 15 additions and 0 deletions

View File

@ -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)

View File

@ -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):