content: import json
  import subprocess
  from pathlib import Path
  from unittest.mock import patch
  
  import pytest
  
  from mcp.cli.claude import update_claude_config
  
  
  @pytest.fixture
  def temp_config_dir(tmp_path: Path):
      """Create a temporary Claude config directory."""
      config_dir = tmp_path / "Claude"
      config_dir.mkdir()
      return config_dir
  
  
  @pytest.fixture
  def mock_config_path(temp_config_dir: Path):
      """Mock get_claude_config_path to return our temporary directory."""
      with patch("mcp.cli.claude.get_claude_config_path", return_value=temp_config_dir):
          yield temp_config_dir
  
  
  def test_command_execution(mock_config_path: Path):
      """Test that the generated command can actually be executed."""
      # Setup
      server_name = "test_server"
      file_spec = "test_server.py:app"
  
      # Update config
      success = update_claude_config(file_spec=file_spec, server_name=server_name)
      assert success
  
      # Read the generated config
      config_file = mock_config_path / "claude_desktop_config.json"
      config = json.loads(config_file.read_text())
  
      # Get the command and args
      server_config = config["mcpServers"][server_name]
      command = server_config["command"]
      args = server_config["args"]
  
      test_args = [command] + args + ["--help"]
  
      result = subprocess.run(test_args, capture_output=True, text=True, timeout=20, check=False)
  
      assert result.returncode == 0
      assert "usage" in result.stdout.lower()
  
  
  def test_absolute_uv_path(mock_config_path: Path):
      """Test that the absolute path to uv is used when available."""
      # Mock the shutil.which function to return a fake path
      mock_uv_path = "/usr/local/bin/uv"
  
      with patch("mcp.cli.claude.get_uv_path", return_value=mock_uv_path):
          # Setup
          server_name = "test_server"
          file_spec = "test_server.py:app"
  
          # Update config
          success = update_claude_config(file_spec=file_spec, server_name=server_name)
          assert success
  
          # Read the generated config
          config_file = mock_config_path / "claude_desktop_config.json"
          config = json.loads(config_file.read_text())
  
          # Verify the command is the absolute path
          server_config = config["mcpServers"][server_name]
          command = server_config["command"]
  
          assert command == mock_uv_path
  