This commit is contained in:
Rollo Konig Brock 2021-03-31 16:27:23 +01:00
parent 21710814d7
commit 91f9677f57
3 changed files with 24 additions and 23 deletions

View File

@ -2,7 +2,6 @@
Pagination serializers determine the structure of the output that should
be used for paginated responses.
"""
import json
import operator
from base64 import b64decode, b64encode
@ -21,6 +20,7 @@ from rest_framework.compat import coreapi, coreschema
from rest_framework.exceptions import NotFound
from rest_framework.response import Response
from rest_framework.settings import api_settings
from rest_framework.utils import json
from rest_framework.utils.urls import remove_query_param, replace_query_param

View File

@ -1,11 +1,9 @@
import base64
import itertools
import re
from base64 import b64encode
from urllib import parse
import pytest
from django.db import models
from rest_framework import generics
from rest_framework.pagination import Cursor, CursorPagination
from rest_framework.filters import OrderingFilter
@ -41,7 +39,6 @@ def create_cursor(offset, reverse, position):
def decode_cursor(response):
links = {
'next': response.data.get('next'),
'prev': response.data.get('prev'),
@ -84,7 +81,9 @@ def decode_cursor(response):
@pytest.mark.django_db
@pytest.mark.parametrize("page_size,offset", [
@pytest.mark.parametrize(
"page_size,offset",
[
(6, 2), (2, 6), (5, 3), (3, 5), (5, 5)
],
ids=[

View File

@ -4,7 +4,6 @@ import re
import operator
from unittest.mock import Mock
from functools import reduce
from django.core.paginator import Paginator as DjangoPaginator
from django.db.models.query_utils import Q
@ -34,7 +33,6 @@ class MockQuerySet:
q_object = Q(**kwargs)
query = self._q_object_to_expression(q_object)
res = query(self.items[0])
return MockQuerySet([
item for item in self.items
@ -56,7 +54,6 @@ class MockQuerySet:
return MockQuerySet(list(sorted(self.items, key=_ordering_callable)))
def __getitem__(self, sliced):
return self.items[sliced]
@ -73,10 +70,13 @@ class MockQuerySet:
def _parse(_q_object):
_statements = []
for child in _q_object.children:
if isinstance(child, Q):
return [lambda item: operator_map[child.connector](l(item) for l in _parse(child))]
return [
lambda item: operator_map[child.connector](
lmbda(item) for lmbda in _parse(child)
)
]
match = self._operator_match.match(child[0]).groupdict()
field, field_op = match['field'], match['operator']
@ -92,7 +92,10 @@ class MockQuerySet:
return _statements
return lambda item: operator_map[q_object.connector](l(item) for l in _parse(q_object))
return lambda item: operator_map[q_object.connector](
lmbda(item) for lmbda in _parse(q_object)
)
class TestPaginationIntegration:
"""
@ -1158,7 +1161,6 @@ class TestCursorPaginationWithValueQueryset(CursorPaginationTestsMixin, TestCase
assert next_url is None
def test_get_displayed_page_numbers():
"""
Test our contextual page display function.