47 lines
1.5 KiB
Python
47 lines
1.5 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.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
|