Skip to content

Commit d9c7349

Browse files
committed
Adapt to new test structure
1 parent fd0716c commit d9c7349

File tree

7 files changed

+60
-16
lines changed

7 files changed

+60
-16
lines changed

src/apify/_actor.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
from __future__ import annotations
22

33
import asyncio
4-
import os
54
import sys
65
import warnings
76
from contextlib import suppress
@@ -205,9 +204,9 @@ async def __aenter__(self) -> Self:
205204
if not Actor.is_at_home():
206205
# Make sure that the input related KVS is initialized to ensure that the input aware client is used
207206
await self.open_key_value_store()
208-
209-
# Load non-default aliased storages from configuration
210-
#await AliasResolver.register_aliases(configuration=self.configuration)
207+
else:
208+
# Load non-default aliased storages from configuration
209+
await AliasResolver.register_aliases(configuration=self.configuration)
211210
return self
212211

213212
async def __aexit__(

src/apify/storage_clients/_apify/_alias_resolving.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -265,13 +265,13 @@ async def _get_default_kvs_client(configuration: Configuration) -> KeyValueStore
265265

266266
@classmethod
267267
async def register_aliases(cls, configuration: Configuration) -> None:
268-
"""Load any alias mapping from configuration to the default kvs."""
268+
"""Load alias mapping from configuration to the default kvs."""
269269
if configuration.actor_storages is None:
270270
return
271+
271272
configuration_mapping = {}
272273

273-
if configuration.default_dataset_id != configuration.actor_storages.datasets.get(
274-
'default'):
274+
if configuration.default_dataset_id != configuration.actor_storages.datasets.get('default'):
275275
logger.warning(
276276
f'Conflicting default dataset ids: {configuration.default_dataset_id=},'
277277
f" {configuration.actor_storages.datasets.get('default')=}"
@@ -291,12 +291,6 @@ async def register_aliases(cls, configuration: Configuration) -> None:
291291
)._storage_key
292292
] = storage_id
293293

294-
# Aliased storage can be also default storage!!!
295-
# Should we store such second alias to the default storage or ignore it in such case? Probably
296-
297-
# What if existing default dataset already has conflicting keys?
298-
# Just override it, that will teach it to have conflicting values!
299294
client = await cls._get_default_kvs_client(configuration=configuration)
300-
existing_mapping = ((await client.get_record(cls._ALIAS_MAPPING_KEY)) or {'value': {}}).get('value',
301-
{})
295+
existing_mapping = ((await client.get_record(cls._ALIAS_MAPPING_KEY)) or {'value': {}}).get('value', {})
302296
await client.set_record(cls._ALIAS_MAPPING_KEY, {**existing_mapping, **configuration_mapping})

tests/e2e/test_schema_storages/__init__.py

Whitespace-only changes.
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"actorSpecification": 1,
3+
"version": "0.0",
4+
"storages": {
5+
"datasets": {
6+
"default": {
7+
"actorSpecification": 1,
8+
"fields": {
9+
"properties": {
10+
"id": { "type": "string" }
11+
}
12+
}
13+
},
14+
"custom": {
15+
"actorSpecification": 1,
16+
"fields": {
17+
"properties": {
18+
"id": { "type": "string" }
19+
}
20+
}
21+
}
22+
}
23+
}
24+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from apify import Actor
2+
3+
4+
async def main() -> None:
5+
async with Actor:
6+
assert Actor.configuration.actor_storages
7+
assert (await Actor.open_dataset(alias='custom')).id == Actor.configuration.actor_storages.datasets['custom']
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
from pathlib import Path
2+
3+
from tests.e2e.conftest import MakeActorFunction, RunActorFunction
4+
5+
_ACTOR_SOURCE_DIR = Path(__file__).parent / 'actor_source'
6+
7+
8+
def read_actor_source(filename: str) -> str:
9+
return (_ACTOR_SOURCE_DIR / filename).read_text()
10+
11+
12+
async def test_configuration_storages(make_actor: MakeActorFunction, run_actor: RunActorFunction) -> None:
13+
actor = await make_actor(
14+
label='schema_storages',
15+
source_files={
16+
'src/main.py': read_actor_source('main.py'),
17+
'.actor/actor.json': read_actor_source('actor.json'),
18+
},
19+
)
20+
run_result = await run_actor(actor)
21+
22+
assert run_result.status == 'SUCCEEDED'

tests/unit/actor/test_configuration.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import json
21
from pathlib import Path
32

43
import pytest
@@ -8,7 +7,6 @@
87
from crawlee.configuration import Configuration as CrawleeConfiguration
98
from crawlee.crawlers import BasicCrawler
109
from crawlee.errors import ServiceConflictError
11-
from crawlee.storage_clients import MemoryStorageClient
1210

1311
from apify import Actor
1412
from apify import Configuration as ApifyConfiguration

0 commit comments

Comments
 (0)