From c8195fcad5ad427f6a75d001d37e992f3cbd2d6a Mon Sep 17 00:00:00 2001 From: Laurent LAPORTE Date: Fri, 12 Apr 2024 19:02:14 +0200 Subject: [PATCH] fix(variants): correct variant generation: stop generation as soon as a command fails --- .../study/storage/variantstudy/variant_command_generator.py | 5 +++++ tests/integration/test_integration_variantmanager_tool.py | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/antarest/study/storage/variantstudy/variant_command_generator.py b/antarest/study/storage/variantstudy/variant_command_generator.py index a08ec86b4c..7e56f370ec 100644 --- a/antarest/study/storage/variantstudy/variant_command_generator.py +++ b/antarest/study/storage/variantstudy/variant_command_generator.py @@ -81,6 +81,11 @@ def _generate( cmd_notifier.index = index stopwatch.log_elapsed(cmd_notifier) + # stop variant generation as soon as a command fails + if not output.status: + logger.error(f"Command {cmd.command_name} failed: {output.message}") + break + results.success = all(detail["status"] for detail in results.details) # type: ignore data_type = isinstance(data, FileStudy) diff --git a/tests/integration/test_integration_variantmanager_tool.py b/tests/integration/test_integration_variantmanager_tool.py index f381cab3c9..ef9ea27249 100644 --- a/tests/integration/test_integration_variantmanager_tool.py +++ b/tests/integration/test_integration_variantmanager_tool.py @@ -49,8 +49,8 @@ def generate_study_with_server( f"/v1/studies/{base_study_id}/variants?name={urllib.parse.quote_plus(name)}", headers={"Authorization": f'Bearer {admin_credentials["access_token"]}'}, ) + assert res.status_code == 200, res.json() variant_id = res.json() - assert res.status_code == 200 generator = RemoteVariantGenerator(variant_id, session=client, token=admin_credentials["access_token"]) return generator.apply_commands(commands, matrices_dir), variant_id