Skip to content

Commit 208a253

Browse files
committed
chore: updated test_generate_public_url_for_kvs_record test
1 parent fb622d2 commit 208a253

File tree

2 files changed

+16
-8
lines changed

2 files changed

+16
-8
lines changed

src/apify/apify_storage_client/_key_value_store_client.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77

88
from crawlee.storage_clients._base import KeyValueStoreClient as BaseKeyValueStoreClient
99
from crawlee.storage_clients.models import KeyValueStoreListKeysPage, KeyValueStoreMetadata, KeyValueStoreRecord
10-
from apify._crypto import (create_hmac_signature)
1110

11+
from apify._crypto import create_hmac_signature
1212

1313
if TYPE_CHECKING:
1414
from collections.abc import AsyncIterator
@@ -94,7 +94,8 @@ async def get_public_url(self, key: str) -> str:
9494
public_api_url = self._api_public_base_url
9595
public_url = f'{public_api_url}/v2/key-value-stores/{self._client.resource_id}/records/{key}'
9696

97-
if getattr(self.storage_object, 'url_signing_secret_key', None):
98-
public_url += f'?signature={create_hmac_signature(self.storage_object.url_signing_secret_key, key)}'
97+
url_signing_secret_key = getattr(self.storage_object, 'url_signing_secret_key', None) # type: ignore[attr-defined]
98+
if url_signing_secret_key:
99+
public_url += f'?signature={create_hmac_signature(url_signing_secret_key, key)}'
99100

100-
return public_url
101+
return public_url

tests/integration/test_actor_key_value_store.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from ._utils import generate_unique_resource_name
88
from apify import Actor
9+
from apify._crypto import create_hmac_signature
910

1011
if TYPE_CHECKING:
1112
import pytest
@@ -210,10 +211,16 @@ async def main() -> None:
210211
default_store_id = Actor.config.default_key_value_store_id
211212

212213
store = await Actor.open_key_value_store()
213-
record_url = await cast(KeyValueStoreClient, store._resource_client).get_public_url('dummy')
214-
print(record_url)
215-
216-
assert record_url == f'{public_api_url}/v2/key-value-stores/{default_store_id}/records/dummy'
214+
record_key = 'dummy'
215+
record_url = await cast(KeyValueStoreClient, store._resource_client).get_public_url(record_key)
216+
url_signing_secret_key = cast(str, getattr(store.storage_object, 'url_signing_secret_key', None))
217+
signature = create_hmac_signature(url_signing_secret_key, record_key)
218+
219+
assert url_signing_secret_key is not None
220+
assert (
221+
record_url
222+
== f'{public_api_url}/v2/key-value-stores/{default_store_id}/records/{record_key}?signature={signature}'
223+
)
217224

218225
actor = await make_actor(label='kvs-get-public-url', main_func=main)
219226
run_result = await run_actor(actor)

0 commit comments

Comments
 (0)