Files
govoplan-core/tests/test_pagination.py
Albrecht Degering 635d25c74c
Some checks failed
Dependency Audit / dependency-audit (push) Has been cancelled
Module Matrix / module-matrix (push) Has been cancelled
chore: consolidate platform split checks
2026-07-10 12:51:19 +02:00

34 lines
1.2 KiB
Python

from __future__ import annotations
import unittest
from govoplan_core.core.pagination import (
KeysetCursorError,
decode_keyset_cursor,
encode_keyset_cursor,
keyset_query_fingerprint,
)
class PaginationCursorTests(unittest.TestCase):
def test_keyset_cursor_round_trips_and_rejects_query_mismatch(self) -> None:
fingerprint = keyset_query_fingerprint("audit.admin", {"scope": "system", "page_size": 25})
cursor = encode_keyset_cursor(
"audit.admin",
fingerprint=fingerprint,
values={"id": "row-1", "sort_value": "2026-01-01T00:00:00+00:00"},
)
self.assertEqual(
decode_keyset_cursor("audit.admin", cursor, fingerprint=fingerprint),
{"id": "row-1", "sort_value": "2026-01-01T00:00:00+00:00"},
)
with self.assertRaises(KeysetCursorError):
decode_keyset_cursor("audit.admin", cursor, fingerprint=keyset_query_fingerprint("audit.admin", {"scope": "tenant"}))
with self.assertRaises(KeysetCursorError):
decode_keyset_cursor("files.list", cursor, fingerprint=fingerprint)
if __name__ == "__main__":
unittest.main()