Skip to content

Commit ea002a7

Browse files
Yaseen Ahmed KhanYaseen Ahmed Khan
authored andcommitted
re-raise invalid config error
1 parent dd94c20 commit ea002a7

File tree

2 files changed

+16
-10
lines changed

2 files changed

+16
-10
lines changed

cognite/extractorutils/base.py

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import contextlib
2020
import logging
2121
import os
22-
import sys
2322
from collections.abc import Callable
2423
from dataclasses import is_dataclass
2524
from enum import Enum
@@ -38,7 +37,6 @@
3837
ConfigResolver,
3938
StateStoreConfig,
4039
)
41-
from cognite.extractorutils.exceptions import InvalidConfigError
4240
from cognite.extractorutils.metrics import BaseMetrics
4341
from cognite.extractorutils.statestore import (
4442
AbstractStateStore,
@@ -315,14 +313,7 @@ def __enter__(self) -> "Extractor":
315313
else:
316314
dotenv_message = "No .env file imported when using Cognite Functions"
317315

318-
try:
319-
self._initial_load_config(override_path=self.config_file_path)
320-
except InvalidConfigError as e:
321-
print( # noqa: T201
322-
"Critical error: Could not read config file", file=sys.stderr
323-
)
324-
print(str(e), file=sys.stderr) # noqa: T201
325-
sys.exit(1)
316+
self._initial_load_config(override_path=self.config_file_path)
326317

327318
if not self.configured_logger:
328319
self.config.logger.setup_logging()

tests/tests_unit/test_base.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from cognite.client.data_classes import ExtractionPipeline, ExtractionPipelineRun
2424
from cognite.extractorutils import Extractor
2525
from cognite.extractorutils.configtools import BaseConfig, StateStoreConfig
26+
from cognite.extractorutils.exceptions import InvalidConfigError
2627
from cognite.extractorutils.statestore import LocalStateStore, NoStateStore
2728

2829

@@ -277,3 +278,17 @@ def validate_long_message(run: ExtractionPipelineRun) -> None:
277278

278279
extractor.extraction_pipeline = None
279280
# assert False
281+
282+
283+
def test_enter_raises_on_invalid_config() -> None:
284+
extractor = Extractor(
285+
name="test_invalid_config",
286+
description="description",
287+
config_class=ConfigWithStates,
288+
config_file_path="tests/tests_unit/dummyconfig.yaml",
289+
)
290+
with (
291+
patch.object(extractor, "_initial_load_config", side_effect=InvalidConfigError("bad config")),
292+
pytest.raises(InvalidConfigError, match="bad config"),
293+
):
294+
extractor.__enter__()

0 commit comments

Comments
 (0)