Skip to main content
Glama
senseisven

MCP Remote macOS Control Server

by senseisven
conftest.py2.71 kB
import os import sys import pytest import asyncio import platform from unittest.mock import patch, MagicMock, AsyncMock # Add the source directory to the path sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))) # Configure asyncio for CI environment def configure_event_loop(): """ Configure the event loop policy based on the environment. - Use WindowsSelectorEventLoopPolicy on Windows - Use default policy on other platforms but with a custom loop factory for CI """ if platform.system() == "Windows": asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) else: # Check if we're in a CI environment if os.environ.get("CI") or os.environ.get("GITHUB_ACTIONS"): # Set default event loop policy but with a simple loop factory # This avoids issues with file descriptors in containers # Create a new event loop that doesn't try to add file descriptors # that might cause permission issues in CI environments loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) # Disable signal handling in event loops to avoid permission issues if hasattr(loop, '_handle_signals'): loop._handle_signals = lambda: None if hasattr(loop, '_signal_handlers'): loop._signal_handlers = {} # Configure asyncio at the start of testing configure_event_loop() # Let CI environments know they are running in CI if not os.environ.get('CI') and os.environ.get('GITHUB_ACTIONS'): os.environ['CI'] = 'true' # Set environment variables for testing os.environ['MACOS_HOST'] = 'test-host' os.environ['MACOS_PORT'] = '5900' os.environ['MACOS_USERNAME'] = 'test-user' os.environ['MACOS_PASSWORD'] = 'test-password' os.environ['VNC_ENCRYPTION'] = 'prefer_on' @pytest.fixture def mock_global_env_vars(): """Mock environment variables for testing.""" with patch.dict(os.environ, { 'MACOS_HOST': 'test-host', 'MACOS_PORT': '5900', 'MACOS_USERNAME': 'test-user', 'MACOS_PASSWORD': 'test-password', 'VNC_ENCRYPTION': 'prefer_on' }): yield @pytest.fixture def global_mock_vnc_client(): """Provide a mock VNCClient for testing.""" with patch('src.vnc_client.VNCClient') as mock_vnc_class: mock_instance = MagicMock() mock_vnc_class.return_value = mock_instance # Set up common mock properties mock_instance.width = 1366 mock_instance.height = 768 mock_instance.connect.return_value = (True, None) yield mock_instance

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/senseisven/mcp_macos'

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