Exemple #1
0
 def _get_pagination_helper(self, request):
     if self._allow_pagination and self._native_pagination:
         return api_common.PaginationNativeHelper(request,
                                                  self._primary_key)
     elif self._allow_pagination:
         return api_common.PaginationEmulatedHelper(request,
                                                    self._primary_key)
     return api_common.NoPaginationHelper(request, self._primary_key)
def _get_pagination_helper(request, controller):
    if 'pagination_helper' in request.context:
        return request.context['pagination_helper']
    if not controller.allow_pagination:
        helper = api_common.NoPaginationHelper(request, controller.primary_key)
    elif controller.native_pagination:
        helper = api_common.PaginationNativeHelper(request,
                                                   controller.primary_key)
    else:
        helper = api_common.PaginationEmulatedHelper(request,
                                                     controller.primary_key)
    request.context['pagination_helper'] = helper
    return helper
Exemple #3
0
 def test_custom_primary_key(self):
     items = [{'fake_id': item['id']} for item in self.items]
     req = FakeRequest(limit=2, marker=self.items[1]['id'])
     helper = common.PaginationEmulatedHelper(req, primary_key='fake_id')
     self.assertEqual(items[2:4], helper.paginate(items))
Exemple #4
0
 def test_paginate_dont_wrap_page_reverse(self):
     req = FakeRequest(limit=100,
                       marker=self.items[1]['id'],
                       page_reverse=True)
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items[:1], helper.paginate(self.items))
Exemple #5
0
 def test_paginate_dont_wrap(self):
     req = FakeRequest(limit=100, marker=self.items[1]['id'])
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items[2:], helper.paginate(self.items))
Exemple #6
0
 def test_paginate_bad_marker(self):
     req = FakeRequest(limit=1, marker='unknown-id')
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual([], helper.paginate(self.items))
Exemple #7
0
 def test_paginate_limit_higher_than_nitems(self):
     req = FakeRequest(limit=len(self.items) + 100)
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items, helper.paginate(self.items))
Exemple #8
0
 def test_paginate_high_limit_page_reverse(self):
     req = FakeRequest(limit=len(self.items) + 100, page_reverse=True)
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items, helper.paginate(self.items))
Exemple #9
0
 def test_paginate_limit_1_page_reverse(self):
     req = FakeRequest(limit=1, page_reverse=True)
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items[-1:], helper.paginate(self.items))
Exemple #10
0
 def test_paginate_limit_1(self):
     req = FakeRequest(limit=1)
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items[:1], helper.paginate(self.items))
Exemple #11
0
 def test_paginate_no_limit_several_items(self):
     req = FakeRequest()
     helper = common.PaginationEmulatedHelper(req)
     self.assertEqual(self.items, helper.paginate(self.items))