|
@@ -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):
|
|
|
"""
|