import pytest from unittest.mock import patch, MagicMock import argparse from setup.cli.commands.install import get_components_to_install class TestGetComponents: @patch("setup.cli.commands.install.select_mcp_servers") def test_get_components_to_install_interactive_mcp(self, mock_select_mcp): # Arrange mock_registry = MagicMock() mock_config_manager = MagicMock() mock_config_manager._installation_context = {} mock_select_mcp.return_value = ["magic"] args = argparse.Namespace(components=["mcp"]) # Act components = get_components_to_install(args, mock_registry, mock_config_manager) # Assert mock_select_mcp.assert_called_once() assert "mcp" in components assert "mcp_docs" in components # Should be added automatically assert hasattr(mock_config_manager, "_installation_context") assert mock_config_manager._installation_context["selected_mcp_servers"] == [ "magic" ]