Files
sanguo_vnpy_v2/tests/data/test_datawriter.py
T

25 lines
1.1 KiB
Python

# tests/data/test_datawriter.py
import pandas as pd
from sanguo_data.config import DataConfig
from sanguo_data.datawriter import write_daily, atomic_write_parquet
def test_atomic_write_parquet(tmp_path):
f = tmp_path / "2026" / "600000.parquet"
df = pd.DataFrame({"date": ["2026-01-01"], "open": [10.0]})
atomic_write_parquet(str(f), df)
assert f.exists()
assert not list(tmp_path.glob("*.tmp"))
def test_write_daily_writes_parquet_and_db(tmp_path, monkeypatch):
cfg = DataConfig(
data_paths={"daily_dir": str(tmp_path / "daily"), "vnpy_db": str(tmp_path / "q.db")},
data_sources={}, validation={}, performance={},
)
df = pd.DataFrame({"date": ["2026-01-01"], "open": [10.0], "high": [10.0],
"low": [10.0], "close": [10.0], "volume": [100]})
called = {}
monkeypatch.setattr("sanguo_data.datawriter._save_to_vnpy_db", lambda bars, cfg: called.setdefault("bars", bars))
write_daily("600000", df, cfg)
assert (tmp_path / "daily" / "2026" / "600000.parquet").exists()
assert len(called["bars"]) == 1