|
15 | 15 | from ._utils import generate_unique_resource_name |
16 | 16 | from apify import Actor, Request |
17 | 17 | from apify.storage_clients import ApifyStorageClient |
| 18 | +from apify.storage_clients._apify import ApifyRequestQueueClient |
18 | 19 | from apify.storage_clients._apify._utils import unique_key_to_request_id |
19 | 20 | from apify.storages import RequestQueue |
20 | 21 |
|
@@ -683,7 +684,7 @@ async def test_request_deduplication_edge_cases( |
683 | 684 | """Test edge cases in request deduplication.""" |
684 | 685 | rq_access_mode = request.node.callspec.params.get('request_queue_apify') |
685 | 686 | if rq_access_mode == 'shared': |
686 | | - pytest.skip('Test is flaky, see https://github.com/apify/apify-sdk-python/issues/786') |
| 687 | + pytest.skip(reason='Test is flaky, see https://github.com/apify/apify-sdk-python/issues/786') # ty: ignore[invalid-argument-type, parameter-already-assigned] |
687 | 688 |
|
688 | 689 | rq = request_queue_apify |
689 | 690 | Actor.log.info('Request queue opened') |
@@ -1218,17 +1219,25 @@ async def test_request_queue_api_fail_when_marking_as_handled( |
1218 | 1219 | # Fetch request |
1219 | 1220 | await rq.add_request(request) |
1220 | 1221 | assert request == await rq.fetch_next_request() |
| 1222 | + assert isinstance(rq._client, ApifyRequestQueueClient) |
1221 | 1223 |
|
1222 | 1224 | # Mark as handled, but simulate API failure. |
1223 | 1225 | with mock.patch.object( |
1224 | | - rq._client._api_client, 'update_request', side_effect=Exception('Simulated API failure') |
| 1226 | + rq._client._api_client, |
| 1227 | + 'update_request', |
| 1228 | + side_effect=Exception('Simulated API failure'), |
1225 | 1229 | ): |
1226 | 1230 | await rq.mark_request_as_handled(request) |
1227 | | - assert not (await rq.get_request(request.unique_key)).was_already_handled |
| 1231 | + |
| 1232 | + request = await rq.get_request(request.unique_key) |
| 1233 | + assert request is not None |
| 1234 | + assert not request.was_already_handled |
1228 | 1235 |
|
1229 | 1236 | # RQ with `request_queue_access="single"` knows, that the local information is reliable, so it knows it |
1230 | 1237 | # handled this request already despite the platform not being aware of it. |
1231 | | - assert not await rq.fetch_next_request() |
| 1238 | + next_request = await rq.fetch_next_request() |
| 1239 | + assert next_request is None |
| 1240 | + |
1232 | 1241 | assert await rq.is_finished() |
1233 | 1242 | assert await rq.is_empty() |
1234 | 1243 |
|
|
0 commit comments