From e44d8de067d5e0e8a3de44d949ade72e2be4f20e Mon Sep 17 00:00:00 2001 From: ddelange <14880945+ddelange@users.noreply.github.com> Date: Wed, 22 Mar 2023 14:52:43 +0100 Subject: [PATCH] Fix pagination tests --- rest_framework/pagination.py | 2 +- tests/test_pagination.py | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/rest_framework/pagination.py b/rest_framework/pagination.py index 5106008f4..ff2f3684f 100644 --- a/rest_framework/pagination.py +++ b/rest_framework/pagination.py @@ -621,7 +621,7 @@ class CursorPagination(BasePagination): queryset = queryset.order_by(*self.ordering) # If we have a cursor with a fixed position then filter by that. - if current_position is not None: + if str(current_position) != 'None': order = self.ordering[0] is_reversed = order.startswith('-') order_attr = order.lstrip('-') diff --git a/tests/test_pagination.py b/tests/test_pagination.py index 2812c4489..82c6f5a3a 100644 --- a/tests/test_pagination.py +++ b/tests/test_pagination.py @@ -951,17 +951,21 @@ class TestCursorPagination(CursorPaginationTestsMixin): def __init__(self, items): self.items = items - def filter(self, created__gt=None, created__lt=None): + def filter(self, q): + q_args = dict(q.deconstruct()[1]) + created__gt = q_args.get('created__gt') + created__lt = q_args.get('created__lt') + if created__gt is not None: return MockQuerySet([ item for item in self.items - if item.created > int(created__gt) + if item.created is None or item.created > int(created__gt) ]) assert created__lt is not None return MockQuerySet([ item for item in self.items - if item.created < int(created__lt) + if item.created is None or item.created < int(created__lt) ]) def order_by(self, *ordering):