Remove custom paginate_queryset method on IndexView

The sole purpose of this was to preserve the historical behaviour of accepting non-integer page numbers, which was mandated by the unit tests for no clear reason - it's likely that these tests were written to reflect the existing behaviour rather than the desired behaviour. Dropping this (and updating the tests) brings the behaviour in line with Django's standard.
pull/10533/head
Matt Westcott 2023-06-09 20:33:25 +01:00
rodzic 7b3b55ff93
commit 8e106f40c6
3 zmienionych plików z 19 dodań i 26 usunięć

Wyświetl plik

@ -240,18 +240,6 @@ class IndexView(
return queryset
def paginate_queryset(self, queryset, page_size):
paginator = self.get_paginator(
queryset,
page_size,
orphans=self.get_paginate_orphans(),
allow_empty_first_page=self.get_allow_empty(),
)
page_number = self.request.GET.get(self.page_kwarg)
page = paginator.get_page(page_number)
return (paginator, page, page.object_list, page.has_other_pages())
def filter_queryset(self, queryset):
# construct filter instance (self.filters) if not created already
if self.filterset_class and self.filters is None:

Wyświetl plik

@ -135,12 +135,13 @@ class TestSnippetListView(WagtailTestUtils, TestCase):
self.assertEqual(response.context["page_obj"][0].text, "advert 10")
def test_simple_pagination(self):
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailsnippets/snippets/index.html")
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
self.assertTemplateUsed(response, "wagtailsnippets/snippets/index.html")
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
def test_displays_add_button(self):
self.assertContains(self.get(), "Add advert")

Wyświetl plik

@ -136,10 +136,12 @@ class TestGroupUsersView(WagtailTestUtils, TestCase):
self.assertIn(self.test_user, results)
def test_pagination(self):
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
class TestGroupUsersResultsView(WagtailTestUtils, TestCase):
@ -226,10 +228,12 @@ class TestUserIndexView(WagtailTestUtils, TestCase):
self.assertIn(self.test_user, results)
def test_pagination(self):
pages = ["0", "1", "-1", "9999", "Not a page"]
for page in pages:
response = self.get({"p": page})
self.assertEqual(response.status_code, 200)
# page numbers in range should be accepted
response = self.get({"p": 1})
self.assertEqual(response.status_code, 200)
# page numbers out of range should return 404
response = self.get({"p": 9999})
self.assertEqual(response.status_code, 404)
def test_valid_ordering(self):
# checking that only valid ordering used, in case of `IndexView` the valid