mirror of
https://github.com/django/django.git
synced 2025-08-04 19:08:28 +00:00
Refs #27804 -- Used subTest() in several tests.
This commit is contained in:
parent
91b2bc3e70
commit
6092ea8fa6
19 changed files with 324 additions and 262 deletions
|
@ -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):
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue