From ffe3c32035687774d8c47eb9e6a2f44e956c0eb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Eide?= Date: Thu, 1 Feb 2024 15:04:20 +0100 Subject: [PATCH] Add deprecation for INVERSION with number --- src/ert/config/analysis_config.py | 11 +++++++-- .../unit_tests/config/test_analysis_config.py | 24 +++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/ert/config/analysis_config.py b/src/ert/config/analysis_config.py index a6fdf655f8e..f177b9558cd 100644 --- a/src/ert/config/analysis_config.py +++ b/src/ert/config/analysis_config.py @@ -80,12 +80,19 @@ def __init__( continue if var_name in ["INVERSION", "IES_INVERSION"]: if value in inversion_str_map[module_name]: - value = inversion_str_map[module_name][value] + new_value = inversion_str_map[module_name][value] if var_name == "IES_INVERSION": ConfigWarning.ert_context_warn( "IES_INVERSION is deprecated, please use INVERSION instead:\n" - f"ANALYSIS_SET_VAR {module_name} INVERSION {value.upper()}" + f"ANALYSIS_SET_VAR {module_name} INVERSION {new_value.upper()}" ) + else: + ConfigWarning.ert_context_warn( + f"Using {value} is deprecated, use:\n" + f"ANALYSIS_SET_VAR {module_name} INVERSION {new_value.upper()}" + ) + value = new_value + var_name = "inversion" key = var_name.lower() options[module_name][key] = value diff --git a/tests/unit_tests/config/test_analysis_config.py b/tests/unit_tests/config/test_analysis_config.py index 711eccaba34..301f82093e4 100644 --- a/tests/unit_tests/config/test_analysis_config.py +++ b/tests/unit_tests/config/test_analysis_config.py @@ -1,3 +1,4 @@ +import warnings from textwrap import dedent import hypothesis.strategies as st @@ -283,3 +284,26 @@ def test_num_realizations_0_means_all(): ).minimum_required_realizations == 100 ) + + +@pytest.mark.parametrize( + "config, expected", + [ + ( + ["STD_ENKF", "INVERSION", "1"], + "Using 1 is deprecated, use:\nANALYSIS_SET_VAR STD_ENKF INVERSION SUBSPACE", + ), + ( + ["STD_ENKF", "IES_INVERSION", "1"], + "IES_INVERSION is deprecated, please use INVERSION instead", + ), + ], +) +def test_incorrect_variable_deprecation_warning(config, expected): + with warnings.catch_warnings(record=True) as all_warnings: + _ = AnalysisConfig.from_dict( + { + ConfigKeys.ANALYSIS_SET_VAR: [config], + } + ) + assert expected in [str(warning.message) for warning in all_warnings]