From 407c1249c9a0296ec8a8d95e447bd695ca471b5e Mon Sep 17 00:00:00 2001 From: "Sami J. Lehtinen" Date: Thu, 6 Apr 2017 13:01:04 +0300 Subject: Fixed #28032 -- Added Paginator.get_page(). Moved boilerplate from docs to a method. --- tests/pagination/tests.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'tests/pagination') diff --git a/tests/pagination/tests.py b/tests/pagination/tests.py index 530f908027..05fad4f67c 100644 --- a/tests/pagination/tests.py +++ b/tests/pagination/tests.py @@ -242,6 +242,38 @@ class PaginationTests(unittest.TestCase): """ self.assertIsInstance(Paginator([1, 2, 3], 2).page_range, type(range(0))) + def test_get_page(self): + """ + Paginator.get_page() returns a valid page even with invalid page + arguments. + """ + paginator = Paginator([1, 2, 3], 2) + page = paginator.get_page(1) + self.assertEqual(page.number, 1) + self.assertEqual(page.object_list, [1, 2]) + # An empty page returns the last page. + self.assertEqual(paginator.get_page(3).number, 2) + # Non-integer page returns the first page. + self.assertEqual(paginator.get_page(None).number, 1) + + def test_get_page_empty_object_list(self): + """Paginator.get_page() with an empty object_list.""" + paginator = Paginator([], 2) + # An empty page returns the last page. + self.assertEqual(paginator.get_page(1).number, 1) + self.assertEqual(paginator.get_page(2).number, 1) + # Non-integer page returns the first page. + self.assertEqual(paginator.get_page(None).number, 1) + + def test_get_page_empty_object_list_and_allow_empty_first_page_false(self): + """ + Paginator.get_page() raises EmptyPage if allow_empty_first_page=False + and object_list is empty. + """ + paginator = Paginator([], 2, allow_empty_first_page=False) + with self.assertRaises(EmptyPage): + paginator.get_page(1) + class ModelPaginationTests(TestCase): """ -- cgit v1.2.1