-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathtest_dataset_list_items.py
More file actions
89 lines (63 loc) · 3.09 KB
/
test_dataset_list_items.py
File metadata and controls
89 lines (63 loc) · 3.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
from __future__ import annotations
import json
from typing import TYPE_CHECKING
import pytest
from werkzeug import Response
from apify_client import ApifyClient, ApifyClientAsync
if TYPE_CHECKING:
from collections.abc import Callable
from pytest_httpserver import HTTPServer
DATASET_ID = 'test-dataset-id'
ITEMS_PATH = f'/v2/datasets/{DATASET_ID}/items'
def _make_list_items_handler(*, desc_header_value: str) -> Callable:
"""Create a handler that returns a list_items response with the given desc header value."""
def handler(_request: object) -> Response:
return Response(
status=200,
headers={
'x-apify-pagination-total': '2',
'x-apify-pagination-offset': '0',
'x-apify-pagination-count': '2',
'x-apify-pagination-limit': '999999999999',
'x-apify-pagination-desc': desc_header_value,
'content-type': 'application/json',
},
response=json.dumps([{'id': 1}, {'id': 2}]),
)
return handler
@pytest.mark.parametrize('desc_header_value', ['false', 'False', 'FALSE'])
def test_list_items_desc_false_sync(httpserver: HTTPServer, desc_header_value: str) -> None:
httpserver.expect_request(ITEMS_PATH).respond_with_handler(
_make_list_items_handler(desc_header_value=desc_header_value),
)
api_url = httpserver.url_for('/').removesuffix('/')
client = ApifyClient(token='test-token', api_url=api_url)
result = client.dataset(DATASET_ID).list_items()
assert result.desc is False
@pytest.mark.parametrize('desc_header_value', ['true', 'True', 'TRUE'])
def test_list_items_desc_true_sync(httpserver: HTTPServer, desc_header_value: str) -> None:
httpserver.expect_request(ITEMS_PATH).respond_with_handler(
_make_list_items_handler(desc_header_value=desc_header_value),
)
api_url = httpserver.url_for('/').removesuffix('/')
client = ApifyClient(token='test-token', api_url=api_url)
result = client.dataset(DATASET_ID).list_items()
assert result.desc is True
@pytest.mark.parametrize('desc_header_value', ['false', 'False', 'FALSE'])
async def test_list_items_desc_false_async(httpserver: HTTPServer, desc_header_value: str) -> None:
httpserver.expect_request(ITEMS_PATH).respond_with_handler(
_make_list_items_handler(desc_header_value=desc_header_value),
)
api_url = httpserver.url_for('/').removesuffix('/')
client = ApifyClientAsync(token='test-token', api_url=api_url)
result = await client.dataset(DATASET_ID).list_items()
assert result.desc is False
@pytest.mark.parametrize('desc_header_value', ['true', 'True', 'TRUE'])
async def test_list_items_desc_true_async(httpserver: HTTPServer, desc_header_value: str) -> None:
httpserver.expect_request(ITEMS_PATH).respond_with_handler(
_make_list_items_handler(desc_header_value=desc_header_value),
)
api_url = httpserver.url_for('/').removesuffix('/')
client = ApifyClientAsync(token='test-token', api_url=api_url)
result = await client.dataset(DATASET_ID).list_items()
assert result.desc is True