Skip to main content
Glama

Deskaid

by ezyang
#!/usr/bin/env python3 import re import subprocess import tempfile from pathlib import Path from codemcp.main import init_codemcp_project def test_init_command(): """Test the init command creates a codemcp.toml file and initializes a git repo.""" # Create a temporary directory for testing with tempfile.TemporaryDirectory() as temp_dir: # Run the init_codemcp_project function result = init_codemcp_project(temp_dir) # Check that the function reports success assert "Successfully initialized" in result # Check that codemcp.toml was created config_file = Path(temp_dir) / "codemcp.toml" assert config_file.exists() # Check that git repository was initialized git_dir = Path(temp_dir) / ".git" assert git_dir.is_dir() # Check that a commit was created result = subprocess.run( ["git", "log", "--oneline"], cwd=temp_dir, capture_output=True, text=True, check=True, ) assert "initialize codemcp project" in result.stdout def test_init_command_existing_repo(): """Test the init command works with an existing git repository.""" # Create a temporary directory for testing with tempfile.TemporaryDirectory() as temp_dir: # Initialize git repository first subprocess.run(["git", "init"], cwd=temp_dir, check=True) # Make a dummy commit to simulate existing repository dummy_file = Path(temp_dir) / "dummy.txt" dummy_file.write_text("test content") subprocess.run( ["git", "config", "user.name", "Test User"], cwd=temp_dir, check=True ) subprocess.run( ["git", "config", "user.email", "test@example.com"], cwd=temp_dir, check=True, ) subprocess.run(["git", "add", "dummy.txt"], cwd=temp_dir, check=True) subprocess.run( ["git", "commit", "-m", "Initial commit"], cwd=temp_dir, check=True ) # Run the init_codemcp_project function result = init_codemcp_project(temp_dir) # Check that the function reports success assert "Successfully initialized" in result # Check that codemcp.toml was created config_file = Path(temp_dir) / "codemcp.toml" assert config_file.exists() def test_init_command_with_python(): """Test the init command with Python option creates Python project structure.""" # Create a temporary directory for testing with a specific name with tempfile.TemporaryDirectory(prefix="test-project-") as temp_dir: temp_path = Path(temp_dir) project_name = temp_path.name # Get the directory name package_name = re.sub(r"[^a-z0-9_]", "_", project_name.lower()) # Run the init_codemcp_project function with Python option # this used to silently fail to add files to git because it was adding files that were git-ignored (.ruff/...) # the error would manifest only at the bottom when git log --oneline fails because there were no commits result = init_codemcp_project(temp_dir, python=True) # Check that the function reports success with Python message assert "Successfully initialized" in result assert "with Python project structure" in result # Check that standard files were created config_file = temp_path / "codemcp.toml" assert config_file.exists() # Check that git repository was initialized git_dir = temp_path / ".git" assert git_dir.is_dir() # Check that Python-specific files were created pyproject_file = temp_path / "pyproject.toml" assert pyproject_file.exists() # Check if the project name was correctly applied in pyproject.toml with open(pyproject_file, "r") as f: content = f.read() assert project_name in content readme_file = temp_path / "README.md" assert readme_file.exists() # Check package structure with correct name derived from directory package_dir = temp_path / package_name assert package_dir.is_dir() init_file = package_dir / "__init__.py" assert init_file.exists() # Verify __init__.py exists, but don't check its content # since it's intentionally empty # Check that the commit message includes Python template reference result = subprocess.run( ["git", "log", "--oneline"], cwd=temp_dir, capture_output=True, text=True, check=True, ) assert "with Python template" in result.stdout

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ezyang/codemcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server