mirror of
https://github.com/trycua/computer.git
synced 2025-12-30 18:09:55 -06:00
52 lines
1.4 KiB
Python
52 lines
1.4 KiB
Python
"""Pytest configuration and shared fixtures for mcp-server package tests.
|
|
|
|
This file contains shared fixtures and configuration for all mcp-server tests.
|
|
Following SRP: This file ONLY handles test setup/teardown.
|
|
"""
|
|
|
|
from unittest.mock import AsyncMock, Mock, patch
|
|
|
|
import pytest
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_mcp_context():
|
|
"""Mock MCP context for testing.
|
|
|
|
Use this fixture to test MCP server logic without real MCP connections.
|
|
"""
|
|
context = AsyncMock()
|
|
context.request_context = AsyncMock()
|
|
context.session = Mock()
|
|
context.session.send_resource_updated = AsyncMock()
|
|
|
|
return context
|
|
|
|
|
|
@pytest.fixture
|
|
def mock_computer():
|
|
"""Mock Computer instance for MCP server tests.
|
|
|
|
Use this fixture to test MCP logic without real Computer operations.
|
|
"""
|
|
computer = AsyncMock()
|
|
computer.interface = AsyncMock()
|
|
computer.interface.screenshot = AsyncMock(return_value=b"fake_screenshot")
|
|
computer.interface.left_click = AsyncMock()
|
|
computer.interface.type = AsyncMock()
|
|
|
|
# Mock context manager
|
|
computer.__aenter__ = AsyncMock(return_value=computer)
|
|
computer.__aexit__ = AsyncMock()
|
|
|
|
return computer
|
|
|
|
|
|
@pytest.fixture
|
|
def disable_telemetry(monkeypatch):
|
|
"""Disable telemetry for tests.
|
|
|
|
Use this fixture to ensure no telemetry is sent during tests.
|
|
"""
|
|
monkeypatch.setenv("CUA_TELEMETRY_DISABLED", "1")
|