summaryrefslogtreecommitdiff
path: root/servers/taskwarrior/tests/conftest.py
blob: 3ff4c0fc6ae97df005e1046a353e4a4ff87d709f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import os
import sys
from typing import TYPE_CHECKING
from unittest.mock import AsyncMock, MagicMock

import pytest

# Add the src directory to the Python path for testing
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "../src")))

# Mock the mcp.server.remote module
mock_remote = MagicMock()
mock_remote.serve_remote = AsyncMock()
sys.modules["mcp.server.remote"] = mock_remote

if TYPE_CHECKING:
    from mcp_server_taskwarrior.server import TaskWarriorServer


@pytest.fixture
def taskwarrior_server() -> "TaskWarriorServer":
    """Create a TaskWarriorServer instance for testing."""
    from mcp_server_taskwarrior.server import TaskWarriorServer

    return TaskWarriorServer()


@pytest.fixture
def mcp_server_mock() -> MagicMock:
    """Create a mock MCP Server instance with all handlers."""
    server = MagicMock()
    server.list_resources = MagicMock(return_value=lambda: None)
    server.read_resource = MagicMock(return_value=lambda: None)
    server.list_prompts = MagicMock(return_value=lambda: None)
    server.get_prompt = MagicMock(return_value=lambda: None)
    server.list_tools = MagicMock(return_value=lambda: None)
    server.call_tool = MagicMock(return_value=lambda: None)
    server.run = AsyncMock()
    server.get_capabilities = MagicMock(return_value={})
    server.request_context = MagicMock()
    server.request_context.session = MagicMock()
    server.request_context.session.send_resource_updated = AsyncMock()
    return server