summaryrefslogtreecommitdiff
path: root/tests/generic_views
diff options
context:
space:
mode:
authorBjorn Kristinsson <bjorn@bjornkri.com>2017-10-17 15:22:45 +0200
committerTim Graham <timograham@gmail.com>2017-11-07 18:46:52 -0500
commitac6a4eb9f95138628a7eec76bee91eb067af80a9 (patch)
tree98ce3c7142d05eb9289e361f948c3638b1dfa72e /tests/generic_views
parenta2851f204c6431330042d0343ee99f33449f78e0 (diff)
downloaddjango-ac6a4eb9f95138628a7eec76bee91eb067af80a9.tar.gz
Fixed #28719 -- Added a helpful exception if MultipleObjectTemplateResponseMixin doesn't generate any template names.
Diffstat (limited to 'tests/generic_views')
-rw-r--r--tests/generic_views/test_list.py8
-rw-r--r--tests/generic_views/urls.py4
-rw-r--r--tests/generic_views/views.py5
3 files changed, 17 insertions, 0 deletions
diff --git a/tests/generic_views/test_list.py b/tests/generic_views/test_list.py
index ea57b6af9a..259e850232 100644
--- a/tests/generic_views/test_list.py
+++ b/tests/generic_views/test_list.py
@@ -207,6 +207,14 @@ class ListViewTests(TestCase):
with self.assertRaisesMessage(ImproperlyConfigured, msg):
self.client.get('/list/authors/invalid/')
+ def test_invalid_get_queryset(self):
+ msg = (
+ "AuthorListGetQuerysetReturnsNone requires either a 'template_name' "
+ "attribute or a get_queryset() method that returns a QuerySet."
+ )
+ with self.assertRaisesMessage(ImproperlyConfigured, msg):
+ self.client.get('/list/authors/get_queryset/')
+
def test_paginated_list_view_does_not_load_entire_table(self):
# Regression test for #17535
self._make_authors(3)
diff --git a/tests/generic_views/urls.py b/tests/generic_views/urls.py
index b8ba5762c4..1c1fed3386 100644
--- a/tests/generic_views/urls.py
+++ b/tests/generic_views/urls.py
@@ -133,6 +133,10 @@ urlpatterns = [
path('list/authors/dupe_context_object_name/', views.AuthorList.as_view(context_object_name='object_list')),
path('list/authors/invalid/', views.AuthorList.as_view(queryset=None)),
path(
+ 'list/authors/get_queryset/',
+ views.AuthorListGetQuerysetReturnsNone.as_view(),
+ ),
+ path(
'list/authors/paginated/custom_class/',
views.AuthorList.as_view(paginate_by=5, paginator_class=views.CustomPaginator),
),
diff --git a/tests/generic_views/views.py b/tests/generic_views/views.py
index 9041ad81a1..ff08313cb6 100644
--- a/tests/generic_views/views.py
+++ b/tests/generic_views/views.py
@@ -66,6 +66,11 @@ class AuthorList(generic.ListView):
queryset = Author.objects.all()
+class AuthorListGetQuerysetReturnsNone(AuthorList):
+ def get_queryset(self):
+ return None
+
+
class BookList(generic.ListView):
model = Book