Skip to content

Commit 698c089

Browse files
committed
Add warning to potential missuse of Configuration
1 parent 177dbb2 commit 698c089

File tree

2 files changed

+21
-10
lines changed

2 files changed

+21
-10
lines changed

src/apify/_configuration.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,12 @@ def get_global_configuration(cls) -> Configuration:
434434
# If Apify configuration was already stored in service locator, return it.
435435
return global_configuration
436436

437+
logger.warning(
438+
'Non Apify Configration is set in the `service_locator` in the SDK context. '
439+
'It is recommended to set `apify.Configuration` explicitly as early as possible by using '
440+
'service_locator.set_configuration'
441+
)
442+
437443
return cls.from_configuration(global_configuration)
438444

439445
@classmethod

tests/unit/actor/test_configuration.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,6 @@ def test_disable_browser_sandbox(
3434
)
3535

3636

37-
def test_apify_configuration_is_always_used() -> None:
38-
"""Set Crawlee Configuration in Actor and verify that Apify Configuration is used."""
39-
max_used_cpu_ratio = 0.123456 # Some unique value to verify configuration
40-
41-
service_locator.set_configuration(CrawleeConfiguration(max_used_cpu_ratio=max_used_cpu_ratio))
42-
43-
assert Actor.configuration.max_used_cpu_ratio == max_used_cpu_ratio
44-
assert isinstance(Actor.configuration, ApifyConfiguration)
45-
46-
4737
async def test_existing_apify_config_respected_by_actor() -> None:
4838
"""Set Apify Configuration in service_locator and verify that Actor respects it."""
4939
max_used_cpu_ratio = 0.123456 # Some unique value to verify configuration
@@ -239,6 +229,21 @@ async def test_storages_retrieved_is_same_with_same_config() -> None:
239229
assert actor_rq is crawler_rq
240230

241231

232+
def test_apify_configuration_is_always_used(caplog: pytest.LogCaptureFixture) -> None:
233+
"""Set Crawlee Configuration in Actor and verify that Apify Configuration is used with warning."""
234+
max_used_cpu_ratio = 0.123456 # Some unique value to verify configuration
235+
236+
service_locator.set_configuration(CrawleeConfiguration(max_used_cpu_ratio=max_used_cpu_ratio))
237+
238+
assert Actor.configuration.max_used_cpu_ratio == max_used_cpu_ratio
239+
assert isinstance(Actor.configuration, ApifyConfiguration)
240+
assert (
241+
'Non Apify Configration is set in the `service_locator` in the SDK context. '
242+
'It is recommended to set `apify.Configuration` explicitly as early as possible by using '
243+
'service_locator.set_configuration'
244+
) in caplog.messages
245+
246+
242247
async def test_file_system_storage_client_warning(caplog: pytest.LogCaptureFixture) -> None:
243248
service_locator.set_storage_client(FileSystemStorageClient())
244249
caplog.set_level('WARNING')

0 commit comments

Comments
 (0)