Skip to content
Merged
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
4 changes: 2 additions & 2 deletions src/apify_client/_http_clients/_base.py
Original file line number Diff line number Diff line change
Expand Up @@ -145,15 +145,15 @@ def __init__(
def _parse_params(params: dict[str, Any] | None) -> dict[str, Any] | None:
"""Convert request parameters to Apify API-compatible formats.

Converts booleans to 0/1, lists to comma-separated strings, datetimes to ISO 8601 Zulu format.
Converts booleans to 'false'/'true', lists to comma-separated strings, datetimes to ISO 8601 Zulu format.
"""
if params is None:
return None

parsed_params: dict[str, Any] = {}
for key, value in params.items():
if isinstance(value, bool):
parsed_params[key] = int(value)
parsed_params[key] = (str(value)).lower()
elif isinstance(value, list):
parsed_params[key] = ','.join(value)
elif isinstance(value, datetime):
Expand Down
8 changes: 4 additions & 4 deletions tests/unit/test_http_clients.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,9 +183,9 @@ def test_parse_params_none() -> None:


def test_parse_params_boolean() -> None:
"""Test _parse_params converts booleans to integers."""
"""Test _parse_params converts booleans to `false` or `true`."""
result = HttpClient._parse_params({'flag': True, 'disabled': False})
assert result == {'flag': 1, 'disabled': 0}
assert result == {'flag': 'true', 'disabled': 'false'}


def test_parse_params_list() -> None:
Expand Down Expand Up @@ -224,7 +224,7 @@ def test_parse_params_mixed() -> None:
assert result == {
'limit': 10,
'offset': 0,
'flag': 1,
'flag': 'true',
'tags': 'tag1,tag2',
'created_at': '2024-01-15T10:30:45.123Z',
'name': 'test',
Expand Down Expand Up @@ -377,7 +377,7 @@ def test_prepare_request_call_with_params() -> None:

_headers, params, _data = client._prepare_request_call(params={'limit': 10, 'flag': True})

assert params == {'limit': 10, 'flag': 1}
assert params == {'limit': 10, 'flag': 'true'}


def test_build_url_with_params_none() -> None:
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/test_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ def mock_api(httpserver: HTTPServer) -> None:
)

httpserver.expect_request(
f'/v2/actor-runs/{_MOCKED_RUN_ID}/log', method='GET', query_string='stream=1&raw=1'
f'/v2/actor-runs/{_MOCKED_RUN_ID}/log', method='GET', query_string='stream=true&raw=true'
).respond_with_handler(_streaming_log_handler)


Expand Down Expand Up @@ -486,7 +486,7 @@ async def test_streamed_log_async_restart_after_normal_completion(httpserver: HT
"""Test that StreamedLogAsync cannot be restarted after task completes normally."""
# Set up a quick-completing stream endpoint
httpserver.expect_request(
f'/v2/actor-runs/{_MOCKED_RUN_ID}/log', method='GET', query_string='stream=1&raw=1'
f'/v2/actor-runs/{_MOCKED_RUN_ID}/log', method='GET', query_string='stream=true&raw=true'
).respond_with_data(b'Quick log\n', content_type='application/octet-stream')

# Set up actor info endpoint (needed for get_streamed_log)
Expand Down