Exemplo n.º 1
0
    def test_orphans(self):
        request = Request.blank('/?page=10')
        # without boundaries, should be 11 pages
        paginator = Paginator(request=request,
                              count=105,
                              limit=10)
        self.assertEqual(paginator.pages_count, 11)
        self.assertEqual(paginator.page, 10)
        self.assertEqual(paginator.slice(range(105)), range(90, 100))
        # using orphans, count=105, orphans = 5, should be 10 pages
        paginator = Paginator(request=request,
                              count=105,
                              orphans=5,
                              limit=10)
        self.assertEqual(paginator.pages_count, 10)
        self.assertEqual(paginator.page, 10)
        self.assertEqual(paginator.slice(range(105)), range(90, 105))

        paginator.items = paginator.slice(range(105))
        # XXX write a list of items
        self.assertEqual(list(paginator.enumerate()),
                         list(zip(range(91, 106), range(90, 105))))
        # using orphans, count=106, orphans = 5, should be 11 pages
        paginator = Paginator(request=request,
                              count=106,
                              orphans=5,
                              limit=10)
        self.assertEqual(paginator.pages_count, 11)
        self.assertEqual(paginator.page, 10)
        self.assertEqual(paginator.slice(range(106)), range(90, 100))

        paginator.items = paginator.slice(range(106))
        self.assertEqual(list(paginator.enumerate()),
                         list(zip(range(91, 101), range(90, 100))))
Exemplo n.º 2
0
    def test_orphans(self):
        request = Request.blank('/?page=10')
        # without boundaries, should be 11 pages
        paginator = Paginator(request=request,
                              count=105,
                              limit=10)
        self.assertEqual(paginator.pages_count, 11)
        self.assertEqual(paginator.page, 10)
        self.assertEqual(paginator.slice(range(105)), range(90, 100))
        # using orphans, count=105, orphans = 5, should be 10 pages
        paginator = Paginator(request=request,
                              count=105,
                              orphans=5,
                              limit=10)
        self.assertEqual(paginator.pages_count, 10)
        self.assertEqual(paginator.page, 10)
        self.assertEqual(paginator.slice(range(105)), range(90, 105))

        paginator.items = paginator.slice(range(105))
        self.assertEqual(list(paginator.enumerate()),
                         zip(range(91, 106), range(90, 105)))
        # using orphans, count=106, orphans = 5, should be 11 pages
        paginator = Paginator(request=request,
                              count=106,
                              orphans=5,
                              limit=10)
        self.assertEqual(paginator.pages_count, 11)
        self.assertEqual(paginator.page, 10)
        self.assertEqual(paginator.slice(range(106)), range(90, 100))

        paginator.items = paginator.slice(range(106))
        self.assertEqual(list(paginator.enumerate()),
                         zip(range(91, 101), range(90, 100)))
Exemplo n.º 3
0
    def test_page_param(self):
        paginator = Paginator(limit=4,
                              count=9,
                              request=Request.blank('/news?p=2'),
                              page_param='p')
        paginator.items = paginator.slice(range(5))

        self.assertEqual(paginator.next.url, '/news?p=3')
Exemplo n.º 4
0
    def test_page_param(self):
        paginator = Paginator(limit=4,
                              count=9,
                              request=Request.blank('/news?p=2'),
                              page_param='p')
        paginator.items = paginator.slice(range(5))

        self.assertEqual(paginator.next.url, '/news?p=3')
Exemplo n.º 5
0
    def test_enumerate(self):
        paginator = Paginator(limit=4,
                              count=6,
                              request=Request.blank('/news?p=2'),
                              page_param='p')
        paginator.items = paginator.slice(range(6))

        self.assertEqual(list(paginator.enumerate()), [
            (5, 4), (6, 5),
        ])
Exemplo n.º 6
0
    def test_enumerate(self):
        paginator = Paginator(limit=4,
                              count=6,
                              request=Request.blank('/news?p=2'),
                              page_param='p')
        paginator.items = paginator.slice(range(6))

        self.assertEqual(list(paginator.enumerate()), [
            (5, 4), (6, 5),
        ])
Exemplo n.º 7
0
    def test_last_page(self):
        paginator = Paginator(limit=4,
                              count=5,
                              request=Request.blank('/news?page=2'))
        paginator.items = paginator.slice(range(5))

        self.assertEqual(paginator.count, 5)
        self.assertEqual(paginator.page, 2)
        self.assertEqual(paginator.pages_count, 2)
        self.assertEqual(paginator.prev, (1, '/news'))
        self.assertEqual(paginator.next, NONE)
        self.assertEqual(paginator.first, (1, '/news'))
        self.assertEqual(paginator.last, (2, '/news?page=2'))
        self.assertEqual(paginator.pages, [(1, '/news'),
                                           (2, '/news?page=2')])
        self.assertEqual(paginator.items, [4])
Exemplo n.º 8
0
    def test_no_limit(self):
        def pages(paginator):
            return [x.page for x in paginator.pages]
        paginator = Paginator(count=10,
                              request=Request.blank('/news'))
        paginator.items = paginator.slice(range(8))

        self.assertEqual(paginator.count, 10)
        self.assertEqual(paginator.page, 1)
        self.assertEqual(paginator.pages_count, 1)
        self.assertEqual(paginator.prev, NONE)
        self.assertEqual(paginator.next, NONE)
        self.assertEqual(paginator.first, (1, '/news'))
        self.assertEqual(paginator.last, (1, '/news'))
        self.assertEqual(pages(paginator), [1])
        self.assertEqual(paginator.items, [0,1,2,3,4,5,6,7])
Exemplo n.º 9
0
    def test_last_page(self):
        paginator = Paginator(limit=4,
                              count=5,
                              request=Request.blank('/news?page=2'))
        paginator.items = paginator.slice(list(range(5)))

        self.assertEqual(paginator.count, 5)
        self.assertEqual(paginator.page, 2)
        self.assertEqual(paginator.pages_count, 2)
        self.assertEqual(paginator.prev, (1, '/news'))
        self.assertEqual(paginator.next, NONE)
        self.assertEqual(paginator.first, (1, '/news'))
        self.assertEqual(paginator.last, (2, '/news?page=2'))
        self.assertEqual(paginator.pages, [(1, '/news'),
                                           (2, '/news?page=2')])
        self.assertEqual(paginator.items, [4])
Exemplo n.º 10
0
    def test_no_limit(self):
        def pages(paginator):
            return [x.page for x in paginator.pages]
        paginator = Paginator(count=10,
                              request=Request.blank('/news'))
        paginator.items = paginator.slice(list(range(8)))

        self.assertEqual(paginator.count, 10)
        self.assertEqual(paginator.page, 1)
        self.assertEqual(paginator.pages_count, 1)
        self.assertEqual(paginator.prev, NONE)
        self.assertEqual(paginator.next, NONE)
        self.assertEqual(paginator.first, (1, '/news'))
        self.assertEqual(paginator.last, (1, '/news'))
        self.assertEqual(pages(paginator), [1])
        self.assertEqual(paginator.items, [0,1,2,3,4,5,6,7])
Exemplo n.º 11
0
    def test_not_existing_page(self):
        paginator = Paginator(limit=4,
                              count=8,
                              request=Request.blank('/news?page=3'))
        paginator.items = paginator.slice(range(8))

        self.assertEqual(paginator.count, 8)
        self.assertEqual(paginator.page, 3)
        self.assertEqual(paginator.pages_count, 2)
        self.assertEqual(paginator.prev, (2, '/news?page=2'))
        self.assertEqual(paginator.next, NONE)
        self.assertEqual(paginator.first, (1, '/news'))
        self.assertEqual(paginator.last, (2, '/news?page=2'))
        self.assertEqual(paginator.pages, [(1, '/news'),
                                           (2, '/news?page=2')])
        self.assertEqual(paginator.items, [])

        paginator = Paginator(limit=4,
                              count=8,
                              request=Request.blank('/news?page=10'))
        self.assertEqual(paginator.prev, (2, '/news?page=2'))
Exemplo n.º 12
0
    def test_not_existing_page(self):
        paginator = Paginator(limit=4,
                              count=8,
                              request=Request.blank('/news?page=3'))
        paginator.items = paginator.slice(list(range(8)))

        self.assertEqual(paginator.count, 8)
        self.assertEqual(paginator.page, 3)
        self.assertEqual(paginator.pages_count, 2)
        self.assertEqual(paginator.prev, (2, '/news?page=2'))
        self.assertEqual(paginator.next, NONE)
        self.assertEqual(paginator.first, (1, '/news'))
        self.assertEqual(paginator.last, (2, '/news?page=2'))
        self.assertEqual(paginator.pages, [(1, '/news'),
                                           (2, '/news?page=2')])
        self.assertEqual(paginator.items, [])

        paginator = Paginator(limit=4,
                              count=8,
                              request=Request.blank('/news?page=10'))
        self.assertEqual(paginator.prev, (2, '/news?page=2'))