X-Git-Url: https://git.mdrn.pl/django-pagination.git/blobdiff_plain/19af5cdf69b55c5bce39f2ca83e12372d395e49c..340445da5b59b97926d2d95496f63fb34bed7de2:/linaro_django_pagination/tests.py diff --git a/linaro_django_pagination/tests.py b/linaro_django_pagination/tests.py index d31c4ed..e379318 100644 --- a/linaro_django_pagination/tests.py +++ b/linaro_django_pagination/tests.py @@ -4,38 +4,135 @@ >>> from django.template import Template, Context >>> p = Paginator(range(15), 2) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] +>>> pg = paginate({'paginator': p, 'page_obj': p.page(1)}) +>>> pg['pages'] +[1, 2, 3, 4, 5, 6, 7, 8] +>>> pg['records']['first'] +1 +>>> pg['records']['last'] +2 + +>>> p = Paginator(range(15), 2) +>>> pg = paginate({'paginator': p, 'page_obj': p.page(8)}) +>>> pg['pages'] [1, 2, 3, 4, 5, 6, 7, 8] +>>> pg['records']['first'] +15 +>>> pg['records']['last'] +15 >>> p = Paginator(range(17), 2) >>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] [1, 2, 3, 4, 5, 6, 7, 8, 9] ->>> p = Paginator(range(19), 2) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] -[1, 2, 3, 4, None, 7, 8, 9, 10] ->>> p = Paginator(range(21), 2) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] -[1, 2, 3, 4, None, 8, 9, 10, 11] +# on start +# moving the window from 1 ... to end +# window size = 2, margin = 2 +# [1] 2 3 4 5 ... 15, 16 +# 1 [2] 3 4 5 ... 15, 16 +# 1 2 [3] 4 5 ... 15, 16 +# 1 2 3 [4] 5 6 ... 15, 16 +# 1 2 3 4 [5] 6 7 ... 15, 16 +# 1 2 3 4 5 [6] 7 8 ... 15, 16 +# 1 2 ... 5 6 [7] 8 9 ... 15, 16 -# Testing orphans ->>> p = Paginator(range(5), 2, 1) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] -[1, 2] +# window = 2 -> show 5 pages +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(1)}, 2, 2)['pages'] +[1, 2, 3, 4, 5, None, 15, 16] ->>> p = Paginator(range(21), 2, 1) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] -[1, 2, 3, 4, None, 7, 8, 9, 10] +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(2)}, 2, 2)['pages'] +[1, 2, 3, 4, 5, None, 15, 16] ->>> p = Paginator(range(21), 2, 1) +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(3)}, 2, 2)['pages'] +[1, 2, 3, 4, 5, None, 15, 16] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(4)}, 2, 2)['pages'] +[1, 2, 3, 4, 5, 6, None, 15, 16] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(5)}, 2, 2)['pages'] +[1, 2, 3, 4, 5, 6, 7, None, 15, 16] + +# in the middle +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(7)}, 2, 2)['pages'] +[1, 2, None, 5, 6, 7, 8, 9, None, 15, 16] + +# on end +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(16)}, 2, 2)['pages'] +[1, 2, None, 12, 13, 14, 15, 16] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(13)}, 2, 2)['pages'] +[1, 2, None, 11, 12, 13, 14, 15, 16] + + +>>> p = Paginator(range(0), 2) >>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] -[1, 2, 3, 4, None, 7, 8, 9, 10] +[1] + + + +# no margin +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(3)}, 2, 0)['pages'] +[1, 2, 3, 4, 5, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(5)}, 2, 0)['pages'] +[None, 3, 4, 5, 6, 7, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(16)}, 2, 0)['pages'] +[None, 12, 13, 14, 15, 16] + + +# special +# zero window, zero margin +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(1)}, 0, 0)['pages'] +[1, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(2)}, 0, 0)['pages'] +[None, 2, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(3)}, 0, 0)['pages'] +[None, 3, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(10)}, 0, 0)['pages'] +[None, 10, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(14)}, 0, 0)['pages'] +[None, 14, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(15)}, 0, 0)['pages'] +[None, 15, None] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(16)}, 0, 0)['pages'] +[None, 16] + +>>> p = Paginator(range(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(5)}, 0, 1)['pages'] +[1, None, 5, None, 16] >>> p = Paginator(range(21), 2, 1) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] +>>> paginate({'paginator': p, 'page_obj': p.page(1)}, 0, 4)['pages'] [1, 2, 3, 4, None, 7, 8, 9, 10] +# Testing template rendering + >>> t = Template("{% load pagination_tags %}{% autopaginate var 2 %}{% paginate %}") >>> from django.http import HttpRequest as DjangoHttpRequest