From ea002a7574a7dd6efccb927c7712f2d5db0ceb41 Mon Sep 17 00:00:00 2001 From: Yaseen Ahmed Khan Date: Sat, 21 Feb 2026 00:10:15 +0530 Subject: [PATCH] re-raise invalid config error --- cognite/extractorutils/base.py | 11 +---------- tests/tests_unit/test_base.py | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/cognite/extractorutils/base.py b/cognite/extractorutils/base.py index fff11a76..9e9d3259 100644 --- a/cognite/extractorutils/base.py +++ b/cognite/extractorutils/base.py @@ -19,7 +19,6 @@ import contextlib import logging import os -import sys from collections.abc import Callable from dataclasses import is_dataclass from enum import Enum @@ -38,7 +37,6 @@ ConfigResolver, StateStoreConfig, ) -from cognite.extractorutils.exceptions import InvalidConfigError from cognite.extractorutils.metrics import BaseMetrics from cognite.extractorutils.statestore import ( AbstractStateStore, @@ -315,14 +313,7 @@ def __enter__(self) -> "Extractor": else: dotenv_message = "No .env file imported when using Cognite Functions" - try: - self._initial_load_config(override_path=self.config_file_path) - except InvalidConfigError as e: - print( # noqa: T201 - "Critical error: Could not read config file", file=sys.stderr - ) - print(str(e), file=sys.stderr) # noqa: T201 - sys.exit(1) + self._initial_load_config(override_path=self.config_file_path) if not self.configured_logger: self.config.logger.setup_logging() diff --git a/tests/tests_unit/test_base.py b/tests/tests_unit/test_base.py index 2312f93d..1875950c 100644 --- a/tests/tests_unit/test_base.py +++ b/tests/tests_unit/test_base.py @@ -23,6 +23,7 @@ from cognite.client.data_classes import ExtractionPipeline, ExtractionPipelineRun from cognite.extractorutils import Extractor from cognite.extractorutils.configtools import BaseConfig, StateStoreConfig +from cognite.extractorutils.exceptions import InvalidConfigError from cognite.extractorutils.statestore import LocalStateStore, NoStateStore @@ -277,3 +278,17 @@ def validate_long_message(run: ExtractionPipelineRun) -> None: extractor.extraction_pipeline = None # assert False + + +def test_enter_raises_on_invalid_config() -> None: + extractor = Extractor( + name="test_invalid_config", + description="description", + config_class=ConfigWithStates, + config_file_path="tests/tests_unit/dummyconfig.yaml", + ) + with ( + patch.object(extractor, "_initial_load_config", side_effect=InvalidConfigError("bad config")), + pytest.raises(InvalidConfigError, match="bad config"), + ): + extractor.__enter__()