mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	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:
		| @@ -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) | ||||
|   | ||||
| @@ -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): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user