""" conftest.py - pytest 全局 mock 配置 在任何 app.* 模块加载前,把 app.config 和 app.utils.logger 替换为 mock, 避免 pydantic_settings / 数据库 / 真实网络依赖。 """ import sys from unittest.mock import MagicMock def _mock_settings(): s = MagicMock() s.bitget_max_total_leverage = 10.0 s.bitget_max_single_position = 1000.0 s.account_max_drawdown = 0.25 s.bitget_trading_enabled = False s.bitget_default_leverage = 10 s.get_bitget_account_config = MagicMock(return_value={ "account_id": "default", "api_key": "", "api_secret": "", "passphrase": "", "enabled": False, "use_testnet": True, "use_unified_account": True, }) s.get_enabled_bitget_accounts = MagicMock(return_value=[]) return s # ---- mock app.config ---- mock_config_module = MagicMock() mock_config_module.get_settings = _mock_settings sys.modules['app.config'] = mock_config_module # ---- mock app.utils.logger ---- mock_logger_module = MagicMock() mock_logger_module.logger = MagicMock() sys.modules['app.utils'] = MagicMock() sys.modules['app.utils.logger'] = mock_logger_module # ---- mock app.services.bitget_trading_api_sdk (避免 ccxt import) ---- mock_sdk_module = MagicMock() mock_sdk_module.get_bitget_trading_api = MagicMock(return_value=MagicMock()) mock_sdk_module.get_all_bitget_trading_apis = MagicMock(return_value={}) sys.modules['app.services.bitget_trading_api_sdk'] = mock_sdk_module