summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/admin_changelist/admin.py5
-rw-r--r--tests/admin_changelist/tests.py31
-rw-r--r--tests/modeladmin/tests.py6
3 files changed, 36 insertions, 6 deletions
diff --git a/tests/admin_changelist/admin.py b/tests/admin_changelist/admin.py
index 8387ba77a1..175b1972c9 100644
--- a/tests/admin_changelist/admin.py
+++ b/tests/admin_changelist/admin.py
@@ -67,6 +67,11 @@ class ChordsBandAdmin(admin.ModelAdmin):
list_filter = ['members']
+class InvitationAdmin(admin.ModelAdmin):
+ list_display = ('band', 'player')
+ list_select_related = ('player',)
+
+
class DynamicListDisplayChildAdmin(admin.ModelAdmin):
list_display = ('parent', 'name', 'age')
diff --git a/tests/admin_changelist/tests.py b/tests/admin_changelist/tests.py
index 38b78faaf4..7f3f0d162e 100644
--- a/tests/admin_changelist/tests.py
+++ b/tests/admin_changelist/tests.py
@@ -18,7 +18,7 @@ from .admin import (ChildAdmin, QuartetAdmin, BandAdmin, ChordsBandAdmin,
GroupAdmin, ParentAdmin, DynamicListDisplayChildAdmin,
DynamicListDisplayLinksChildAdmin, CustomPaginationAdmin,
FilteredChildAdmin, CustomPaginator, site as custom_site,
- SwallowAdmin, DynamicListFilterChildAdmin)
+ SwallowAdmin, DynamicListFilterChildAdmin, InvitationAdmin)
from .models import (Event, Child, Parent, Genre, Band, Musician, Group,
Quartet, Membership, ChordsMusician, ChordsBand, Invitation, Swallow,
UnorderedObject, OrderedObject, CustomIdUser)
@@ -46,9 +46,32 @@ class ChangeListTests(TestCase):
m = ChildAdmin(Child, admin.site)
request = self.factory.get('/child/')
cl = ChangeList(request, Child, m.list_display, m.list_display_links,
- m.list_filter, m.date_hierarchy, m.search_fields,
- m.list_select_related, m.list_per_page, m.list_max_show_all, m.list_editable, m)
- self.assertEqual(cl.queryset.query.select_related, {'parent': {'name': {}}})
+ m.list_filter, m.date_hierarchy, m.search_fields,
+ m.list_select_related, m.list_per_page,
+ m.list_max_show_all, m.list_editable, m)
+ self.assertEqual(cl.queryset.query.select_related, {
+ 'parent': {'name': {}}
+ })
+
+ def test_select_related_as_tuple(self):
+ ia = InvitationAdmin(Invitation, admin.site)
+ request = self.factory.get('/invitation/')
+ cl = ChangeList(request, Child, ia.list_display, ia.list_display_links,
+ ia.list_filter, ia.date_hierarchy, ia.search_fields,
+ ia.list_select_related, ia.list_per_page,
+ ia.list_max_show_all, ia.list_editable, ia)
+ self.assertEqual(cl.queryset.query.select_related, {'player': {}})
+
+ def test_select_related_as_empty_tuple(self):
+ ia = InvitationAdmin(Invitation, admin.site)
+ ia.list_select_related = ()
+ request = self.factory.get('/invitation/')
+ cl = ChangeList(request, Child, ia.list_display, ia.list_display_links,
+ ia.list_filter, ia.date_hierarchy, ia.search_fields,
+ ia.list_select_related, ia.list_per_page,
+ ia.list_max_show_all, ia.list_editable, ia)
+ self.assertEqual(cl.queryset.query.select_related, False)
+
def test_result_list_empty_changelist_value(self):
"""
diff --git a/tests/modeladmin/tests.py b/tests/modeladmin/tests.py
index 73e88024cd..805b57c070 100644
--- a/tests/modeladmin/tests.py
+++ b/tests/modeladmin/tests.py
@@ -1161,9 +1161,11 @@ class ValidationTests(unittest.TestCase):
class ValidationTestModelAdmin(ModelAdmin):
list_select_related = 1
- six.assertRaisesRegex(self,
+ six.assertRaisesRegex(
+ self,
ImproperlyConfigured,
- "'ValidationTestModelAdmin.list_select_related' should be a bool.",
+ "'ValidationTestModelAdmin.list_select_related' should be either a "
+ "bool, a tuple or a list",
ValidationTestModelAdmin.validate,
ValidationTestModel,
)