def test_zinnia_pagination_on_my_website(self): """ Reproduce the issue encountred on my website, versus the expected result. """ class FakeRequest(object): def __init__(self, get_dict={}): self.GET = get_dict source_context = Context({'request': FakeRequest()}) paginator = Paginator(range(40), 10) with self.assertNumQueries(0): for i in range(1, 5): context = zinnia_pagination( source_context, paginator.page(i), begin_pages=1, end_pages=1, before_pages=2, after_pages=2) self.assertEqual(context['page'].number, i) self.assertEqual(list(context['begin']), [1, 2, 3, 4]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [])
def test_zinnia_pagination(self): class FakeRequest(object): def __init__(self, get_dict): self.GET = get_dict source_context = Context({'request': FakeRequest( {'page': '1', 'key': 'val'})}) paginator = Paginator(range(200), 10) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(1), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(context['page'].number, 1) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [18, 19, 20]) self.assertEqual(context['GET_string'], '&key=val') self.assertEqual(context['template'], 'zinnia/tags/pagination.html') source_context = Context({'request': FakeRequest({})}) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(2), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(context['page'].number, 2) self.assertEqual(list(context['begin']), [1, 2, 3, 4]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [18, 19, 20]) self.assertEqual(context['GET_string'], '') with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(3), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3, 4, 5]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(6), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3, 4, 5, 6, 7, 8]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(11), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), [9, 10, 11, 12, 13]) self.assertEqual(list(context['end']), [18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(15), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [13, 14, 15, 16, 17, 18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(18), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [16, 17, 18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(19), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [17, 18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(20), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [18, 19, 20]) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(10), begin_pages=1, end_pages=3, before_pages=4, after_pages=3, template='custom_template.html') self.assertEqual(list(context['begin']), [1]) self.assertEqual(list(context['middle']), [6, 7, 8, 9, 10, 11, 12, 13]) self.assertEqual(list(context['end']), [18, 19, 20]) self.assertEqual(context['template'], 'custom_template.html') paginator = Paginator(range(50), 10) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(1), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3, 4, 5]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), []) paginator = Paginator(range(60), 10) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(1), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3, 4, 5, 6]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), []) paginator = Paginator(range(70), 10) with self.assertNumQueries(0): context = zinnia_pagination( source_context, paginator.page(1), begin_pages=3, end_pages=3, before_pages=2, after_pages=2) self.assertEqual(list(context['begin']), [1, 2, 3]) self.assertEqual(list(context['middle']), []) self.assertEqual(list(context['end']), [5, 6, 7])