35 lines
1.2 KiB
Python
35 lines
1.2 KiB
Python
"""Spike: 验证 vnpy 4.4.0 数据库接口。无 NAS 数据时可 skip。"""
|
|
import datetime
|
|
import pytest
|
|
from vnpy.trader.constant import Interval, Exchange
|
|
from unittest.mock import Mock
|
|
|
|
|
|
def test_vnpy44_database_interface(monkeypatch):
|
|
"""验证 vnpy 4.4.0 数据库接口存在性和签名."""
|
|
|
|
# 避免 read_db_daily 全局 SETTINGS 污染:创建 mock database 对象
|
|
# 这样 spike 测试只验证接口存在 + 签名,不实际连接数据库
|
|
mock_db = Mock()
|
|
mock_db.load_bar_data = Mock(return_value=[])
|
|
mock_db.save_bar_data = Mock()
|
|
|
|
# Mock get_database at module level to avoid import issues
|
|
import vnpy.trader.database
|
|
monkeypatch.setattr(vnpy.trader.database, "get_database", lambda: mock_db)
|
|
|
|
from vnpy.trader.database import get_database
|
|
db = get_database()
|
|
assert hasattr(db, "load_bar_data")
|
|
assert hasattr(db, "save_bar_data")
|
|
|
|
# 测试 load_bar_data 签名
|
|
bars = db.load_bar_data(
|
|
symbol="600000",
|
|
exchange=Exchange.SSE,
|
|
interval=Interval.DAILY,
|
|
start=datetime.datetime(2026, 1, 1),
|
|
end=datetime.datetime(2026, 6, 30),
|
|
)
|
|
assert isinstance(bars, list)
|