summaryrefslogtreecommitdiff
path: root/parts/django/tests/regressiontests/pagination_regress/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'parts/django/tests/regressiontests/pagination_regress/tests.py')
-rw-r--r--parts/django/tests/regressiontests/pagination_regress/tests.py157
1 files changed, 0 insertions, 157 deletions
diff --git a/parts/django/tests/regressiontests/pagination_regress/tests.py b/parts/django/tests/regressiontests/pagination_regress/tests.py
deleted file mode 100644
index 08436df..0000000
--- a/parts/django/tests/regressiontests/pagination_regress/tests.py
+++ /dev/null
@@ -1,157 +0,0 @@
-from unittest import TestCase
-
-from django.core.paginator import Paginator, EmptyPage
-
-class PaginatorTests(TestCase):
- """
- Tests for the Paginator and Page classes.
- """
-
- def check_paginator(self, params, output):
- """
- Helper method that instantiates a Paginator object from the passed
- params and then checks that its attributes match the passed output.
- """
- count, num_pages, page_range = output
- paginator = Paginator(*params)
- self.check_attribute('count', paginator, count, params)
- self.check_attribute('num_pages', paginator, num_pages, params)
- self.check_attribute('page_range', paginator, page_range, params)
-
- def check_attribute(self, name, paginator, expected, params):
- """
- Helper method that checks a single attribute and gives a nice error
- message upon test failure.
- """
- got = getattr(paginator, name)
- self.assertEqual(expected, got,
- "For '%s', expected %s but got %s. Paginator parameters were: %s"
- % (name, expected, got, params))
-
- def test_paginator(self):
- """
- Tests the paginator attributes using varying inputs.
- """
- nine = [1, 2, 3, 4, 5, 6, 7, 8, 9]
- ten = nine + [10]
- eleven = ten + [11]
- tests = (
- # Each item is two tuples:
- # First tuple is Paginator parameters - object_list, per_page,
- # orphans, and allow_empty_first_page.
- # Second tuple is resulting Paginator attributes - count,
- # num_pages, and page_range.
- # Ten items, varying orphans, no empty first page.
- ((ten, 4, 0, False), (10, 3, [1, 2, 3])),
- ((ten, 4, 1, False), (10, 3, [1, 2, 3])),
- ((ten, 4, 2, False), (10, 2, [1, 2])),
- ((ten, 4, 5, False), (10, 2, [1, 2])),
- ((ten, 4, 6, False), (10, 1, [1])),
- # Ten items, varying orphans, allow empty first page.
- ((ten, 4, 0, True), (10, 3, [1, 2, 3])),
- ((ten, 4, 1, True), (10, 3, [1, 2, 3])),
- ((ten, 4, 2, True), (10, 2, [1, 2])),
- ((ten, 4, 5, True), (10, 2, [1, 2])),
- ((ten, 4, 6, True), (10, 1, [1])),
- # One item, varying orphans, no empty first page.
- (([1], 4, 0, False), (1, 1, [1])),
- (([1], 4, 1, False), (1, 1, [1])),
- (([1], 4, 2, False), (1, 1, [1])),
- # One item, varying orphans, allow empty first page.
- (([1], 4, 0, True), (1, 1, [1])),
- (([1], 4, 1, True), (1, 1, [1])),
- (([1], 4, 2, True), (1, 1, [1])),
- # Zero items, varying orphans, no empty first page.
- (([], 4, 0, False), (0, 0, [])),
- (([], 4, 1, False), (0, 0, [])),
- (([], 4, 2, False), (0, 0, [])),
- # Zero items, varying orphans, allow empty first page.
- (([], 4, 0, True), (0, 1, [1])),
- (([], 4, 1, True), (0, 1, [1])),
- (([], 4, 2, True), (0, 1, [1])),
- # Number if items one less than per_page.
- (([], 1, 0, True), (0, 1, [1])),
- (([], 1, 0, False), (0, 0, [])),
- (([1], 2, 0, True), (1, 1, [1])),
- ((nine, 10, 0, True), (9, 1, [1])),
- # Number if items equal to per_page.
- (([1], 1, 0, True), (1, 1, [1])),
- (([1, 2], 2, 0, True), (2, 1, [1])),
- ((ten, 10, 0, True), (10, 1, [1])),
- # Number if items one more than per_page.
- (([1, 2], 1, 0, True), (2, 2, [1, 2])),
- (([1, 2, 3], 2, 0, True), (3, 2, [1, 2])),
- ((eleven, 10, 0, True), (11, 2, [1, 2])),
- # Number if items one more than per_page with one orphan.
- (([1, 2], 1, 1, True), (2, 1, [1])),
- (([1, 2, 3], 2, 1, True), (3, 1, [1])),
- ((eleven, 10, 1, True), (11, 1, [1])),
- )
- for params, output in tests:
- self.check_paginator(params, output)
-
- def check_indexes(self, params, page_num, indexes):
- """
- Helper method that instantiates a Paginator object from the passed
- params and then checks that the start and end indexes of the passed
- page_num match those given as a 2-tuple in indexes.
- """
- paginator = Paginator(*params)
- if page_num == 'first':
- page_num = 1
- elif page_num == 'last':
- page_num = paginator.num_pages
- page = paginator.page(page_num)
- start, end = indexes
- msg = ("For %s of page %s, expected %s but got %s."
- " Paginator parameters were: %s")
- self.assertEqual(start, page.start_index(),
- msg % ('start index', page_num, start, page.start_index(), params))
- self.assertEqual(end, page.end_index(),
- msg % ('end index', page_num, end, page.end_index(), params))
-
- def test_page_indexes(self):
- """
- Tests that paginator pages have the correct start and end indexes.
- """
- ten = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
- tests = (
- # Each item is three tuples:
- # First tuple is Paginator parameters - object_list, per_page,
- # orphans, and allow_empty_first_page.
- # Second tuple is the start and end indexes of the first page.
- # Third tuple is the start and end indexes of the last page.
- # Ten items, varying per_page, no orphans.
- ((ten, 1, 0, True), (1, 1), (10, 10)),
- ((ten, 2, 0, True), (1, 2), (9, 10)),
- ((ten, 3, 0, True), (1, 3), (10, 10)),
- ((ten, 5, 0, True), (1, 5), (6, 10)),
- # Ten items, varying per_page, with orphans.
- ((ten, 1, 1, True), (1, 1), (9, 10)),
- ((ten, 1, 2, True), (1, 1), (8, 10)),
- ((ten, 3, 1, True), (1, 3), (7, 10)),
- ((ten, 3, 2, True), (1, 3), (7, 10)),
- ((ten, 3, 4, True), (1, 3), (4, 10)),
- ((ten, 5, 1, True), (1, 5), (6, 10)),
- ((ten, 5, 2, True), (1, 5), (6, 10)),
- ((ten, 5, 5, True), (1, 10), (1, 10)),
- # One item, varying orphans, no empty first page.
- (([1], 4, 0, False), (1, 1), (1, 1)),
- (([1], 4, 1, False), (1, 1), (1, 1)),
- (([1], 4, 2, False), (1, 1), (1, 1)),
- # One item, varying orphans, allow empty first page.
- (([1], 4, 0, True), (1, 1), (1, 1)),
- (([1], 4, 1, True), (1, 1), (1, 1)),
- (([1], 4, 2, True), (1, 1), (1, 1)),
- # Zero items, varying orphans, allow empty first page.
- (([], 4, 0, True), (0, 0), (0, 0)),
- (([], 4, 1, True), (0, 0), (0, 0)),
- (([], 4, 2, True), (0, 0), (0, 0)),
- )
- for params, first, last in tests:
- self.check_indexes(params, 'first', first)
- self.check_indexes(params, 'last', last)
- # When no items and no empty first page, we should get EmptyPage error.
- self.assertRaises(EmptyPage, self.check_indexes, ([], 4, 0, False), 1, None)
- self.assertRaises(EmptyPage, self.check_indexes, ([], 4, 1, False), 1, None)
- self.assertRaises(EmptyPage, self.check_indexes, ([], 4, 2, False), 1, None)