Skip to content
Open
Show file tree
Hide file tree
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
15 changes: 7 additions & 8 deletions tests/integration/test_request_queue.py
Original file line number Diff line number Diff line change
Expand Up @@ -723,14 +723,8 @@ async def test_persistence_across_operations(
assert final_handled == 15, f'final_handled={final_handled}'


async def test_request_deduplication_edge_cases(
request_queue_apify: RequestQueue, request: pytest.FixtureRequest
) -> None:
async def test_request_deduplication_edge_cases(request_queue_apify: RequestQueue) -> None:
"""Test edge cases in request deduplication."""
rq_access_mode = request.node.callspec.params.get('request_queue_apify')
if rq_access_mode == 'shared':
pytest.skip(reason='Test is flaky, see https://github.com/apify/apify-sdk-python/issues/786')

rq = request_queue_apify
Actor.log.info('Request queue opened')

Expand All @@ -749,7 +743,12 @@ async def test_request_deduplication_edge_cases(

results = list[bool]()
for url, expected_duplicate in urls_and_deduplication_expectations:
result = await rq.add_request(url)
# add_request may transiently return None due to platform-side issues, retry up to 3 times.
for _ in range(3):
result = await rq.add_request(url)
if result is not None:
break # Successfully added.

assert result is not None
results.append(result.was_already_present)
assert result.was_already_present == expected_duplicate, (
Expand Down
8 changes: 7 additions & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading