From f213a26d79446403f46cef31a6dcb02323c555ae Mon Sep 17 00:00:00 2001 From: Theo Pascoli <48944759+TheoPascoli@users.noreply.github.com> Date: Mon, 27 Jan 2025 14:57:44 +0100 Subject: [PATCH] fix: fix a bug that would occurs after deleting multiple bc (#2317) --- .../model/command/remove_multiple_binding_constraints.py | 5 ++++- .../study_data_blueprint/test_binding_constraints.py | 9 +++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/antarest/study/storage/variantstudy/model/command/remove_multiple_binding_constraints.py b/antarest/study/storage/variantstudy/model/command/remove_multiple_binding_constraints.py index 7747f4945f..0415276eb9 100644 --- a/antarest/study/storage/variantstudy/model/command/remove_multiple_binding_constraints.py +++ b/antarest/study/storage/variantstudy/model/command/remove_multiple_binding_constraints.py @@ -61,8 +61,11 @@ def _apply(self, study_data: FileStudy, listener: t.Optional[ICommandListener] = if binding_constraints[key].get("id") in self.ids: deleted_binding_constraints.append(binding_constraints.pop(key)) + # BC dict should start at index 0 + new_binding_constraints = {str(i): value for i, value in enumerate(binding_constraints.values())} + study_data.tree.save( - binding_constraints, + new_binding_constraints, ["input", "bindingconstraints", "bindingconstraints"], ) diff --git a/tests/integration/study_data_blueprint/test_binding_constraints.py b/tests/integration/study_data_blueprint/test_binding_constraints.py index 84b27ded12..192f1d27b2 100644 --- a/tests/integration/study_data_blueprint/test_binding_constraints.py +++ b/tests/integration/study_data_blueprint/test_binding_constraints.py @@ -987,10 +987,15 @@ def test_for_version_870(self, client: TestClient, user_access_token: str, study assert res.status_code == 200, res.json() # Asserts that the deletion worked - binding_constraints_list = preparer.get_binding_constraints(study_id) + binding_constraints_list = client.get( + f"/v1/studies/{study_id}/raw", + params={"path": f"input/bindingconstraints/bindingconstraints"}, # type: ignore + ).json() assert len(binding_constraints_list) == 2 - actual_ids = [constraint["id"] for constraint in binding_constraints_list] + actual_ids = [constraint["id"] for constraint in binding_constraints_list.values()] assert actual_ids == ["binding_constraint_1", "binding_constraint_3"] + keys = sorted(int(k) for k in binding_constraints_list.keys()) + assert keys == list(range(len(keys))) # ============================= # CONSTRAINT DUPLICATION