diff --git a/src/ert/config/ert_config.py b/src/ert/config/ert_config.py index 41c44f4d589..0e0b473e858 100644 --- a/src/ert/config/ert_config.py +++ b/src/ert/config/ert_config.py @@ -349,6 +349,14 @@ def _log_config_dict(cls, content_dict: Dict[str, Any]) -> None: logger.info(f"Content of the config_dict: {tmp_dict}") + @classmethod + def _log_custom_forward_model_steps(cls, user_config: ConfigDict) -> None: + for fm_step, fm_step_filename in user_config.get(ConfigKeys.INSTALL_JOB, []): + fm_configuration = Path(fm_step_filename).read_text(encoding="utf-8") + logger.info( + f"Custom forward_model_step {fm_step} installed as: {fm_configuration}" + ) + @staticmethod def apply_config_content_defaults(content_dict: dict, config_dir: str): if ConfigKeys.ENSPATH not in content_dict: @@ -378,6 +386,7 @@ def read_user_config_and_apply_site_config( ) -> ConfigDict: site_config_dict = cls.read_site_config() user_config_dict = cls.read_user_config(user_config_file) + cls._log_custom_forward_model_steps(user_config_dict) for keyword, value in site_config_dict.items(): if keyword == "QUEUE_OPTION": diff --git a/tests/unit_tests/config/test_ert_config.py b/tests/unit_tests/config/test_ert_config.py index 8ef95f8b435..4277fd7d51d 100644 --- a/tests/unit_tests/config/test_ert_config.py +++ b/tests/unit_tests/config/test_ert_config.py @@ -262,6 +262,28 @@ def test_logging_config(caplog, config_content, expected): assert expected in caplog.messages +@pytest.mark.usefixtures("use_tmpdir") +def test_custom_forward_models_are_logged(caplog): + localhack = "localhack.sh" + Path(localhack).write_text("", encoding="utf-8") + st = os.stat(localhack) + os.chmod(localhack, st.st_mode | stat.S_IEXEC) + Path("foo_fm").write_text(f"EXECUTABLE {localhack}", encoding="utf-8") + Path("config.ert").write_text( + "NUM_REALIZATIONS 1\nINSTALL_JOB foo_fm foo_fm", encoding="utf-8" + ) + with caplog.at_level(logging.INFO): + ErtConfig.from_file("config.ert") + assert ( + f"Custom forward_model_step foo_fm installed as: EXECUTABLE {localhack}" + in caplog.messages + ) + assert ( + sum("Custom forward_model_step" in logmessage for logmessage in caplog.messages) + == 1 + ), "check if site-config fm were logged" + + @pytest.mark.usefixtures("use_tmpdir") def test_logging_with_comments(caplog): """