Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 7 additions & 4 deletions tests/integration/test_webhook_dispatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,18 +61,21 @@ async def test_webhook_dispatch_collection_iterate(client: ApifyClient | ApifyCl

async def test_webhook_dispatch_list_pagination(client: ApifyClient | ApifyClientAsync) -> None:
"""Test webhook_dispatches().list() with pagination parameters."""
page = await maybe_await(client.webhook_dispatches().list(limit=5, offset=0, desc=True))
# `desc=False` (oldest first) keeps the offset window stable: parallel xdist workers fire
# webhooks throughout the suite, so with `desc=True` the list head shifts between the two
# `list()` calls and offset=5 can return the same item as offset=0.
page = await maybe_await(client.webhook_dispatches().list(limit=5, offset=0, desc=False))
assert isinstance(page, ListOfWebhookDispatches)
assert isinstance(page.items, list)
# `limit=5` must cap the page size.
assert len(page.items) <= 5
# `desc=True` must return dispatches in non-increasing `created_at` order.
# `desc=False` must return dispatches in non-decreasing `created_at` order.
created_ats = [d.created_at for d in page.items if d.created_at is not None]
assert created_ats == sorted(created_ats, reverse=True)
assert created_ats == sorted(created_ats)
# `offset` must move the window — second page must not start with the same id as the first
# (only meaningful when the first page is full, i.e. at least 5 items exist).
if len(page.items) == 5:
next_page = await maybe_await(client.webhook_dispatches().list(limit=5, offset=5, desc=True))
next_page = await maybe_await(client.webhook_dispatches().list(limit=5, offset=5, desc=False))
assert isinstance(next_page, ListOfWebhookDispatches)
if next_page.items:
assert page.items[0].id != next_page.items[0].id
Loading