Skip to main content
Glama

MCP Agile Flow

by smian0
test_integration.py4.75 kB
""" Integration tests for MCP Agile Flow. These tests verify the core functionality of the MCP Agile Flow server. """ import json import logging import os import tempfile from pathlib import Path import pytest # Configure logging logging.basicConfig(level=logging.INFO) logger = logging.getLogger(__name__) # Import MCP-related functions from src.mcp_agile_flow import call_tool, call_tool_sync @pytest.mark.asyncio async def test_get_project_settings(): """Test the get_project_settings tool.""" result = await call_tool("get_project_settings", {}) assert result["success"] is True assert "project_path" in result assert "current_directory" in result assert Path(result["project_path"]).exists() @pytest.mark.asyncio async def test_initialize_ide_rules(): """Test the initialize_ide_rules tool.""" with tempfile.TemporaryDirectory() as temp_dir: result = await call_tool( "initialize_ide_rules", {"ide": "cursor", "project_path": temp_dir} ) assert result["success"] is True assert result["project_path"] == temp_dir assert result["templates_directory"] == os.path.join(temp_dir, ".ai-templates") # Check that the cursor rules directory exists cursor_dir = Path(temp_dir) / ".cursor" assert cursor_dir.exists() assert result["rules_directory"] == str(cursor_dir / "rules") @pytest.mark.asyncio async def test_prime_context(): """Test the prime_context tool.""" with tempfile.TemporaryDirectory() as temp_dir: # Create a sample ai-docs directory ai_docs_dir = Path(temp_dir) / "ai-docs" ai_docs_dir.mkdir() # Create a sample PRD file prd_content = """# Product Requirements Document ## Overview This is a test PRD. ## Status Planning """ prd_file = ai_docs_dir / "prd.md" with open(prd_file, "w") as f: f.write(prd_content) # Call the prime_context tool result = await call_tool("prime_context", {"project_path": temp_dir, "depth": "minimal"}) # Check the result assert result["success"] is True assert "context" in result assert "project" in result["context"] assert "depth" in result["context"] assert result["context"]["project"]["path"] == temp_dir assert result["context"]["depth"] == "minimal" assert isinstance(result["context"]["focus_areas"], list) @pytest.mark.asyncio async def test_migrate_mcp_config(): """Test the migrate_mcp_config tool.""" # This test may need to be updated or skipped as migrate-mcp-config might not be # fully implemented in FastMCP yet with tempfile.TemporaryDirectory() as temp_dir: # Create source configuration source_dir = Path(temp_dir) / "source" source_dir.mkdir() cursor_dir = source_dir / ".cursor" cursor_dir.mkdir() # Create a sample Cursor MCP config mcp_config = { "mcpServers": { "test-server": { "command": "python", "args": ["-m", "test_server"], "disabled": False, } } } config_file = cursor_dir / "settings.json" with open(config_file, "w") as f: json.dump(mcp_config, f) # Create target directory target_dir = Path(temp_dir) / "target" target_dir.mkdir() try: # Call migrate-mcp-config result = await call_tool( "migrate_mcp_config", {"from_ide": "cursor", "to_ide": "windsurf", "project_path": str(temp_dir)}, ) if not result["success"]: pytest.skip( "migrate_mcp_config not fully implemented in FastMCP or returned failure" ) except Exception as e: # If the tool fails completely, skip the test pytest.skip(f"migrate_mcp_config test failed with error: {str(e)}") @pytest.mark.asyncio async def test_get_project_settings_with_path(): """Test the get_project_settings tool with different paths.""" # Test the get-project-settings tool with the current directory result = await call_tool("get_project_settings", {}) # Check that the result contains a project path assert result["success"] is True assert "project_path" in result assert Path(result["project_path"]).exists() # Test with a specific path with tempfile.TemporaryDirectory() as temp_dir: result = await call_tool("get_project_settings", {"proposed_path": temp_dir}) assert result["success"] is True assert result["project_path"] == temp_dir

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/smian0/mcp-agile-flow'

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