Example #1
0
    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']), [])
Example #2
0
    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])