25 lines
972 B
Python
25 lines
972 B
Python
"""Shared pytest configuration — runs before any test module is imported.
|
|
|
|
Patches MCPToolAdapter at the sys.modules level so that importing
|
|
backend.agent.coding_agent never tries to start real MCP subprocess servers.
|
|
"""
|
|
|
|
import sys
|
|
from unittest.mock import AsyncMock, MagicMock
|
|
|
|
# Build a fake adapter instance whose async methods return immediately.
|
|
_mock_adapter = MagicMock()
|
|
_mock_adapter.initialize_all_servers = AsyncMock(return_value=None)
|
|
_mock_adapter.get_all_tools = MagicMock(return_value=[])
|
|
_mock_adapter.call_tool = AsyncMock(return_value=MagicMock(isError=False, content=[]))
|
|
|
|
# Wrap as a class mock: calling MCPToolAdapter() returns _mock_adapter.
|
|
_mock_adapter_cls = MagicMock(return_value=_mock_adapter)
|
|
|
|
# Inject before any test imports coding_agent so the module-level
|
|
# asyncio.run(adapter.initialize_all_servers()) uses the mock.
|
|
sys.modules.setdefault(
|
|
"backend.agent.mcp_server_adapter",
|
|
MagicMock(MCPToolAdapter=_mock_adapter_cls),
|
|
)
|