def test_paginator(): """ Test that the paginator works with partial list. """ def assert_page(page, data, start, end): assert_equal(page.object_list, data) assert_equal(page.start_index(), start) assert_equal(page.end_index(), end) # First page 1-20 obj = range(20) pgn = Paginator(obj, per_page=20, total=25) assert_page(pgn.page(1), obj, 1, 20) # Second page 21-25 obj = range(5) pgn = Paginator(obj, per_page=20, total=25) assert_page(pgn.page(2), obj, 21, 25) # Handle extra data on first page (22 items on a 20-page) obj = range(22) pgn = Paginator(obj, per_page=20, total=25) assert_page(pgn.page(1), range(20), 1, 20) # Handle extra data on second page (22 items on a 20-page) obj = range(22) pgn = Paginator(obj, per_page=20, total=25) assert_page(pgn.page(2), range(5), 21, 25) # Handle total < len(obj). Only works for QuerySet. obj = query.QuerySet() obj._result_cache = range(10) pgn = Paginator(obj, per_page=10, total=9) assert_page(pgn.page(1), range(10), 1, 10) # Still works with a normal complete list obj = range(25) pgn = Paginator(obj, per_page=20) assert_page(pgn.page(1), range(20), 1, 20) assert_page(pgn.page(2), range(20, 25), 21, 25)
def get_query_set(self): q = NetQuery(self.model, NetWhere) return query.QuerySet(self.model, q)