diff options
| author | Loïc Bistuer <loic.bistuer@gmail.com> | 2016-02-19 02:27:55 +0700 |
|---|---|---|
| committer | Loïc Bistuer <loic.bistuer@gmail.com> | 2016-05-17 02:29:22 +0700 |
| commit | 3a47d42fa33012b2156bf04058d933df6b3082d2 (patch) | |
| tree | ed1ab104835ed71551eaccd7253e7b520c5e8d0c /tests | |
| parent | 9935f97cd203bdcc722bc3d4e96858e221d96ff8 (diff) | |
Fixed #20932, #25897 -- Streamlined manager inheritance.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/auth_tests/test_basic.py | 13 | ||||
| -rw-r--r-- | tests/managers_regress/models.py | 4 | ||||
| -rw-r--r-- | tests/managers_regress/tests.py | 2 | ||||
| -rw-r--r-- | tests/many_to_one/tests.py | 4 | ||||
| -rw-r--r-- | tests/migrations/test_state.py | 8 | ||||
| -rw-r--r-- | tests/one_to_one/tests.py | 8 |
6 files changed, 11 insertions, 28 deletions
diff --git a/tests/auth_tests/test_basic.py b/tests/auth_tests/test_basic.py index 87122d9229..caefa9c7a0 100644 --- a/tests/auth_tests/test_basic.py +++ b/tests/auth_tests/test_basic.py @@ -3,29 +3,16 @@ from __future__ import unicode_literals import warnings -from django.apps import apps from django.contrib.auth import get_user_model from django.contrib.auth.models import AnonymousUser, User from django.core.exceptions import ImproperlyConfigured from django.db import IntegrityError -from django.dispatch import receiver from django.test import TestCase, override_settings -from django.test.signals import setting_changed from django.utils import translation from .models import CustomUser -@receiver(setting_changed) -def user_model_swapped(**kwargs): - if kwargs['setting'] == 'AUTH_USER_MODEL': - from django.db.models.manager import ensure_default_manager - # Reset User manager - setattr(User, 'objects', User._default_manager) - ensure_default_manager(User) - apps.clear_cache() - - class BasicTestCase(TestCase): def test_user(self): "Check that users can be created and can set their password" diff --git a/tests/managers_regress/models.py b/tests/managers_regress/models.py index bc2fa91c6a..b39e69b9ad 100644 --- a/tests/managers_regress/models.py +++ b/tests/managers_regress/models.py @@ -115,14 +115,12 @@ class Child5(AbstractBase3): return self.name -# Will inherit managers from AbstractBase1, but not Child4. class Child6(Child4): value = models.IntegerField() -# Will not inherit default manager from parent. class Child7(Parent): - pass + objects = models.Manager() # RelatedManagers diff --git a/tests/managers_regress/tests.py b/tests/managers_regress/tests.py index 746a59a9bb..3a51ff7542 100644 --- a/tests/managers_regress/tests.py +++ b/tests/managers_regress/tests.py @@ -50,7 +50,7 @@ class ManagersRegressionTests(TestCase): ]) self.assertQuerysetEqual(Child4.manager1.all(), ["<Child4: d1>", "<Child4: f1>"], ordered=False) self.assertQuerysetEqual(Child5._default_manager.all(), ["<Child5: fred>"]) - self.assertQuerysetEqual(Child6._default_manager.all(), ["<Child6: f1>"]) + self.assertQuerysetEqual(Child6._default_manager.all(), ["<Child6: f1>", "<Child6: f2>"], ordered=False) self.assertQuerysetEqual( Child7._default_manager.order_by('name'), ["<Child7: barney>", "<Child7: fred>"] diff --git a/tests/many_to_one/tests.py b/tests/many_to_one/tests.py index c5a0e3f8f3..eaa01bbfcb 100644 --- a/tests/many_to_one/tests.py +++ b/tests/many_to_one/tests.py @@ -600,13 +600,13 @@ class ManyToOneTests(TestCase): # If the manager is marked "use_for_related_fields", it'll get used instead # of the "bare" queryset. Usually you'd define this as a property on the class, # but this approximates that in a way that's easier in tests. - School.objects.use_for_related_fields = True + School._default_manager.use_for_related_fields = True try: private_student = Student.objects.get(pk=private_student.pk) with self.assertRaises(School.DoesNotExist): private_student.school finally: - School.objects.use_for_related_fields = False + School._default_manager.use_for_related_fields = False def test_hasattr_related_object(self): # The exception raised on attribute access when a related object diff --git a/tests/migrations/test_state.py b/tests/migrations/test_state.py index aae2b71aac..f2e91267e9 100644 --- a/tests/migrations/test_state.py +++ b/tests/migrations/test_state.py @@ -262,13 +262,11 @@ class StateTests(SimpleTestCase): self.assertEqual(len(new_apps.get_model("migrations", "SubTag")._meta.local_fields), 2) Food = new_apps.get_model("migrations", "Food") - managers = sorted(Food._meta.managers) - self.assertEqual([mgr.name for _, mgr, _ in managers], + self.assertEqual([mgr.name for mgr in Food._meta.managers], ['default', 'food_mgr1', 'food_mgr2']) - self.assertTrue(all(isinstance(mgr.name, six.text_type) for _, mgr, _ in managers)) - self.assertEqual([mgr.__class__ for _, mgr, _ in managers], + self.assertTrue(all(isinstance(mgr.name, six.text_type) for mgr in Food._meta.managers)) + self.assertEqual([mgr.__class__ for mgr in Food._meta.managers], [models.Manager, FoodManager, FoodManager]) - self.assertIs(managers[0][1], Food._default_manager) def test_render_model_inheritance(self): class Book(models.Model): diff --git a/tests/one_to_one/tests.py b/tests/one_to_one/tests.py index 074a95f1b5..ecb009f961 100644 --- a/tests/one_to_one/tests.py +++ b/tests/one_to_one/tests.py @@ -457,21 +457,21 @@ class OneToOneTests(TestCase): # If the manager is marked "use_for_related_fields", it'll get used instead # of the "bare" queryset. Usually you'd define this as a property on the class, # but this approximates that in a way that's easier in tests. - School.objects.use_for_related_fields = True + School._default_manager.use_for_related_fields = True try: private_director = Director._base_manager.get(pk=private_director.pk) with self.assertRaises(School.DoesNotExist): private_director.school finally: - School.objects.use_for_related_fields = False + School._default_manager.use_for_related_fields = False - Director.objects.use_for_related_fields = True + Director._default_manager.use_for_related_fields = True try: private_school = School._base_manager.get(pk=private_school.pk) with self.assertRaises(Director.DoesNotExist): private_school.director finally: - Director.objects.use_for_related_fields = False + Director._default_manager.use_for_related_fields = False def test_hasattr_related_object(self): # The exception raised on attribute access when a related object |
