36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
"""
|
||
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.hyperliquid_circuit_breaker_drawdown = 0.10 # 保留兼容性
|
||
s.bitget_trading_enabled = False
|
||
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())
|
||
sys.modules['app.services.bitget_trading_api_sdk'] = mock_sdk_module
|