mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Refs #27804 -- Used subTest() in several tests.
This commit is contained in:
@@ -42,41 +42,44 @@ class CustomManagerTests(TestCase):
|
||||
default Manager.
|
||||
"""
|
||||
for manager_name in self.custom_manager_names:
|
||||
manager = getattr(Person, manager_name)
|
||||
with self.subTest(manager_name=manager_name):
|
||||
manager = getattr(Person, manager_name)
|
||||
|
||||
# Public methods are copied
|
||||
manager.public_method()
|
||||
# Private methods are not copied
|
||||
with self.assertRaises(AttributeError):
|
||||
manager._private_method()
|
||||
# Public methods are copied
|
||||
manager.public_method()
|
||||
# Private methods are not copied
|
||||
with self.assertRaises(AttributeError):
|
||||
manager._private_method()
|
||||
|
||||
def test_manager_honors_queryset_only(self):
|
||||
for manager_name in self.custom_manager_names:
|
||||
manager = getattr(Person, manager_name)
|
||||
# Methods with queryset_only=False are copied even if they are private.
|
||||
manager._optin_private_method()
|
||||
# Methods with queryset_only=True aren't copied even if they are public.
|
||||
with self.assertRaises(AttributeError):
|
||||
manager.optout_public_method()
|
||||
with self.subTest(manager_name=manager_name):
|
||||
manager = getattr(Person, manager_name)
|
||||
# Methods with queryset_only=False are copied even if they are private.
|
||||
manager._optin_private_method()
|
||||
# Methods with queryset_only=True aren't copied even if they are public.
|
||||
with self.assertRaises(AttributeError):
|
||||
manager.optout_public_method()
|
||||
|
||||
def test_manager_use_queryset_methods(self):
|
||||
"""
|
||||
Custom manager will use the queryset methods
|
||||
"""
|
||||
for manager_name in self.custom_manager_names:
|
||||
manager = getattr(Person, manager_name)
|
||||
queryset = manager.filter()
|
||||
self.assertQuerysetEqual(queryset, ["Bugs Bunny"], str)
|
||||
self.assertIs(queryset._filter_CustomQuerySet, True)
|
||||
with self.subTest(manager_name=manager_name):
|
||||
manager = getattr(Person, manager_name)
|
||||
queryset = manager.filter()
|
||||
self.assertQuerysetEqual(queryset, ["Bugs Bunny"], str)
|
||||
self.assertIs(queryset._filter_CustomQuerySet, True)
|
||||
|
||||
# Specialized querysets inherit from our custom queryset.
|
||||
queryset = manager.values_list('first_name', flat=True).filter()
|
||||
self.assertEqual(list(queryset), ["Bugs"])
|
||||
self.assertIs(queryset._filter_CustomQuerySet, True)
|
||||
# Specialized querysets inherit from our custom queryset.
|
||||
queryset = manager.values_list('first_name', flat=True).filter()
|
||||
self.assertEqual(list(queryset), ["Bugs"])
|
||||
self.assertIs(queryset._filter_CustomQuerySet, True)
|
||||
|
||||
self.assertIsInstance(queryset.values(), CustomQuerySet)
|
||||
self.assertIsInstance(queryset.values().values(), CustomQuerySet)
|
||||
self.assertIsInstance(queryset.values_list().values(), CustomQuerySet)
|
||||
self.assertIsInstance(queryset.values(), CustomQuerySet)
|
||||
self.assertIsInstance(queryset.values().values(), CustomQuerySet)
|
||||
self.assertIsInstance(queryset.values_list().values(), CustomQuerySet)
|
||||
|
||||
def test_init_args(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user