Skip to main content
Glama
conftest.py2.59 kB
"""Test fixtures for the MCP Claude Code project.""" import tempfile from pathlib import Path from unittest.mock import AsyncMock, MagicMock import pytest from mcp_claude_code.tools.common.context import ToolContext from mcp_claude_code.tools.common.permissions import PermissionManager from mcp_claude_code.tools.shell.bash_session_executor import BashSessionExecutor @pytest.fixture def temp_dir(): """Create a temporary directory for testing.""" with tempfile.TemporaryDirectory() as temp_dir: yield temp_dir @pytest.fixture def test_file(temp_dir): """Create a test file in the temporary directory.""" test_file_path = Path(temp_dir) / "test_file.txt" test_content = "This is a test file content.\nWith multiple lines.\n" with open(test_file_path, "w") as f: f.write(test_content) return str(test_file_path) @pytest.fixture def test_project_dir(temp_dir): """Create a simple test project structure.""" project_dir = Path(temp_dir) / "test_project" project_dir.mkdir() # Create Python files py_dir = project_dir / "src" / "module" py_dir.mkdir(parents=True) with open(py_dir / "__init__.py", "w") as f: f.write("# Module init\n") with open(py_dir / "main.py", "w") as f: f.write("import os\n\ndef main():\n print('Hello, world!')\n") # Create requirements.txt with open(project_dir / "requirements.txt", "w") as f: f.write("pytest==7.3.1\nmcp>=1.3.0\nhttpx>=0.27\n") # Create README with open(project_dir / "README.md", "w") as f: f.write("# Test Project\n\nThis is a test project for testing.\n") return str(project_dir) @pytest.fixture def permission_manager(): """Create a permission manager with a test path allowed.""" manager = PermissionManager() return manager @pytest.fixture def mcp_context(): """Mock MCP context for testing.""" mock_context = MagicMock() mock_context.info = AsyncMock() mock_context.error = AsyncMock() mock_context.warning = AsyncMock() mock_context.debug = AsyncMock() mock_context.report_progress = AsyncMock() mock_context.read_resource = AsyncMock() mock_context.request_id = "test-request-id" mock_context.client_id = "test-client-id" return mock_context @pytest.fixture def tool_context(mcp_context): """Create a tool context for testing.""" return ToolContext(mcp_context) @pytest.fixture def command_executor(permission_manager): """Create a command executor for testing.""" return BashSessionExecutor(permission_manager)

Latest Blog Posts

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/SDGLBL/mcp-claude-code'

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