X-Git-Url: https://git.mdrn.pl/django-pagination.git/blobdiff_plain/8bdbfba8a3c27400c1535b761de439cf87884481..db3df2eba32fa7ce8971ca405f9367e4ee19153f:/linaro_django_pagination/tests.py diff --git a/linaro_django_pagination/tests.py b/linaro_django_pagination/tests.py index 343d82f..e379318 100644 --- a/linaro_django_pagination/tests.py +++ b/linaro_django_pagination/tests.py @@ -25,42 +25,119 @@ >>> 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) +# 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 + +# 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(31), 2) +>>> paginate({'paginator': p, 'page_obj': p.page(2)}, 2, 2)['pages'] +[1, 2, 3, 4, 5, None, 15, 16] + +>>> 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, 8, 9, 10, 11] +[1] -# Testing orphans ->>> p = Paginator(range(5), 2, 1) ->>> paginate({'paginator': p, 'page_obj': p.page(1)})['pages'] -[1, 2] + + +# 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) ->>> pg = paginate({'paginator': p, 'page_obj': p.page(1)}) ->>> pg['pages'] +>>> paginate({'paginator': p, 'page_obj': p.page(1)}, 0, 4)['pages'] [1, 2, 3, 4, None, 7, 8, 9, 10] ->>> pg['records']['first'] -1 ->>> pg['records']['last'] -2 ->>> p = Paginator(range(21), 2, 1) ->>> pg = paginate({'paginator': p, 'page_obj': p.page(10)}) ->>> pg['pages'] -[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] ->>> pg['records']['first'] -19 ->>> pg['records']['last'] -21 +# Testing template rendering >>> t = Template("{% load pagination_tags %}{% autopaginate var 2 %}{% paginate %}") >>> from django.http import HttpRequest as DjangoHttpRequest >>> class HttpRequest(DjangoHttpRequest): -... page = 1 +... page = lambda self, suffix: 1 >>> t.render(Context({'var': range(21), 'request': HttpRequest()})) u'\\n\\n