Skip to main content
Glama
hao-cyber
by hao-cyber
conftest.py2.2 kB
import os import pytest import asyncio import warnings from unittest.mock import patch # 不使用pytest_plugins,而是直接配置插件 # pytest_plugins = ['pytest_asyncio'] # 定义全局pytest配置 def pytest_configure(config): """配置pytest运行时环境""" # 添加自定义标记 config.addinivalue_line("markers", "amap: 标记高德地图API相关的测试") config.addinivalue_line("markers", "device: 标记设备连接相关的测试") config.addinivalue_line("markers", "cli: 标记CLI命令相关的测试") config.addinivalue_line("markers", "asyncio: 标记异步测试用例") # 清理环境变量的自动fixture @pytest.fixture(autouse=True) def clean_env(): """每次测试前清理可能影响测试的环境变量""" # 保存原始环境变量 saved_vars = {} test_vars = ["AMAP_MAPS_API_KEY"] for var in test_vars: if var in os.environ: saved_vars[var] = os.environ[var] del os.environ[var] yield # 恢复原始环境变量 for var, value in saved_vars.items(): os.environ[var] = value # 忽略asyncio警告的fixture @pytest.fixture(autouse=True) def ignore_asyncio_warnings(): """忽略asyncio相关的运行时警告""" # 过滤掉asyncio相关的警告 warnings.filterwarnings("ignore", category=DeprecationWarning, module="asyncio") # 这个函数不再使用pytest.warns,这样不会期望警告 yield # 重置警告过滤器 warnings.resetwarnings() # 提供模拟的app实例 @pytest.fixture def mock_app(): """提供模拟的app对象,用于CLI测试""" class MockApp: def __init__(self): self.args = None self.command_called = None async def call_command(self, command, args): self.command_called = command self.args = args return f"Called {command} with {args}" return MockApp() # 模拟整个命令行界面运行 @pytest.fixture def mock_cli_run(): """模拟CLI运行,捕获参数和命令""" with patch("sys.argv") as mock_argv: with patch("asyncio.run") as mock_run: yield mock_argv, mock_run

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/hao-cyber/phone-mcp'

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