@@ -124,6 +124,38 @@ def test_create_dev_env_overwrite(mock_confirm, mock_get_tool_image_list,
124124 mock_get_dev_env_descriptor_from_user.assert_called_once_with(expected_dev_env_name,
125125 mock_tool_images)
126126
127+ @patch("dem.cli.command.create_cmd.typer.Abort")
128+ @patch("dem.cli.command.create_cmd.stderr.print")
129+ @patch("dem.cli.command.create_cmd.typer.confirm")
130+ def test_create_dev_env_overwrite_PlatformError(mock_confirm: MagicMock, mock_stderr_print: MagicMock,
131+ mock_Abort: MagicMock) -> None:
132+ # Test setup
133+ mock_platform = MagicMock()
134+ mock_dev_env_original = MagicMock()
135+ mock_dev_env_original.is_installed = True
136+ mock_platform.get_dev_env_by_name.return_value = mock_dev_env_original
137+ test_exception_text = "test_exception_text"
138+ mock_platform.uninstall_dev_env.side_effect = create_cmd.PlatformError(test_exception_text)
139+ mock_Abort.side_effect = Exception("")
140+
141+ test_dev_env_name = "test_dev_env"
142+
143+ # Run unit under test
144+ with pytest.raises(Exception):
145+ create_cmd.create_dev_env(mock_platform, test_dev_env_name)
146+
147+ # Check expectations
148+ mock_platform.get_dev_env_by_name.assert_called_once_with(test_dev_env_name)
149+ mock_confirm.assert_has_calls([
150+ call("The input name is already used by a Development Environment. Overwrite it?",
151+ abort=True),
152+ call("The Development Environment is installed, so it can't be overwritten. " + \
153+ "Uninstall it first?", abort=True)
154+ ])
155+ mock_platform.uninstall_dev_env.assert_called_once_with(mock_dev_env_original)
156+ mock_stderr_print.assert_called_once_with(f"[red]Platform error: {test_exception_text}[/]")
157+ mock_Abort.assert_called_once()
158+
127159@patch("dem.cli.command.create_cmd.get_dev_env_descriptor_from_user")
128160@patch("dem.cli.command.create_cmd.typer.confirm")
129161def test_create_dev_env_abort(mock_confirm, mock_get_dev_env_descriptor_from_user):
0 commit comments