X-Git-Url: https://git.mdrn.pl/django-pagination.git/blobdiff_plain/51e9175b2f6d178d743cf05ccdd597891117a537..b134d88b52a7bcf402a576294492fba00712861f:/pagination/tests.py diff --git a/pagination/tests.py b/pagination/tests.py index 21ec9d2..ecdb156 100644 --- a/pagination/tests.py +++ b/pagination/tests.py @@ -4,49 +4,130 @@ >>> 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(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(21), 2, 1) +>>> 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] - ->>> t = Template("{% load pagination_tags %}{% autopaginate var 2 %}{% paginate %}") - -# WARNING: Please, please nobody read this portion of the code! ->>> class GetProxy(object): -... def __iter__(self): yield self.__dict__.__iter__ -... def copy(self): return self -... def urlencode(self): return u'' -... def keys(self): return [] ->>> class RequestProxy(object): -... page = 1 -... GET = GetProxy() ->>> -# ENDWARNING - ->>> t.render(Context({'var': range(21), 'request': RequestProxy()})) -u'\\n\\n