[1.5.x] 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.
Backport of a962bc7c4
from master.
This commit is contained in:
parent
0d3ec8d0fb
commit
fc570b1415
|
@ -14,3 +14,16 @@ from django.contrib.auth.tests.tokens import *
|
||||||
from django.contrib.auth.tests.views import *
|
from django.contrib.auth.tests.views import *
|
||||||
|
|
||||||
# The password for the fixture data users is 'password'
|
# 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)
|
||||||
|
|
|
@ -162,6 +162,8 @@ class BasicTestCase(TestCase):
|
||||||
def test_swappable_user(self):
|
def test_swappable_user(self):
|
||||||
"The current user model can be swapped out for another"
|
"The current user model can be swapped out for another"
|
||||||
self.assertEqual(get_user_model(), CustomUser)
|
self.assertEqual(get_user_model(), CustomUser)
|
||||||
|
with self.assertRaises(AttributeError):
|
||||||
|
User.objects.all()
|
||||||
|
|
||||||
@override_settings(AUTH_USER_MODEL='badsetting')
|
@override_settings(AUTH_USER_MODEL='badsetting')
|
||||||
def test_swappable_user_bad_setting(self):
|
def test_swappable_user_bad_setting(self):
|
||||||
|
|
Loading…
Reference in New Issue