Skip to content

Commit bc0b442

Browse files
committed
ToSquash: format errors nicely
1 parent bf1a25e commit bc0b442

2 files changed

Lines changed: 27 additions & 2 deletions

File tree

src/ert/observation_converters/summary_to_yaml.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from ruamel.yaml import YAML
77

88
from ert.cli.main import ErtCliError
9-
from ert.config import ErtConfig, Observation
9+
from ert.config import ConfigValidationError, ErtConfig, Observation
1010
from ert.plugins import ErtRuntimePlugins
1111

1212

@@ -79,7 +79,12 @@ def export_yaml(self) -> None:
7979
def convert_summary_to_yaml(config: str, site_plugins: ErtRuntimePlugins) -> None:
8080
with warnings.catch_warnings():
8181
warnings.filterwarnings(action="ignore")
82-
ert_config = ErtConfig.with_plugins(site_plugins).from_file(config)
82+
try:
83+
ert_config = ErtConfig.with_plugins(site_plugins).from_file(config)
84+
except ConfigValidationError as e:
85+
raise ErtCliError(
86+
f"Failed to internalize the ert config '{config}' with error:\n {e}"
87+
) from e
8388

8489
observations = ert_config.observation_declarations
8590

tests/ert/unit_tests/cli/test_summary_to_yaml.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -276,3 +276,23 @@ def test_that_relative_min_error_is_unchanged_after_conversion_given_error_min_k
276276
error_mode=ErrorModes.RELMIN, error_min=error_min
277277
)
278278
assert error == error_min
279+
280+
281+
def test_that_errors_are_formatted_to_user_with_message(use_tmpdir):
282+
obs_config = "foo"
283+
summary_obs = "SUMMARY_OBSERVATION { This is not a valid observation };"
284+
Path(obs_config).write_text(
285+
summary_obs,
286+
encoding="utf-8",
287+
)
288+
289+
ert_config = "config.ert"
290+
minimal_ert_config = f"""\
291+
NUM_REALIZATIONS 10
292+
ECLBASE foo
293+
OBS_CONFIG {obs_config}
294+
"""
295+
Path(ert_config).write_text(minimal_ert_config, encoding="utf-8")
296+
args = MagicMock(format="yaml", config=ert_config)
297+
with pytest.raises(ErtCliError, match="Failed to internalize the ert config"):
298+
convert_observations(args, ErtRuntimePlugins())

0 commit comments

Comments
 (0)