fix(vps验收五问题之四): ①#84个股回测/回放提交秒败——L2校验end>latest且end<=today(周末/节假日/当日未灌)不再400,引擎区间过滤自然截到latest;新增start>latest仍400(必空跑);VPS实况=结束默认今天周日>最新周五,首提即败 ②#85组合任务标的列永远000300.XSHG——worker symbol=benchmark改pool(spec透传,benchmark已在params);内存任务两处symbol回退symbol→pool→benchmark ③#42影子拉起即崩——live_strategy工厂表补4个TET副本映射(all_weather_ex等,01184c2改名后回测认得但影子/实盘runner不认,VPS shadow#42实录) ④#88影子快照刷垃圾行——_snapshot_loop每30s无条件写date=''行(40号半天97行),改_should_write_balance同日一行+空行情不写(+3测试) ⑤可观测性——supervisor子进程stdout/stderr落logs/shadow_{aid}.log(>5MB重置)+主管自身日志落logs/shadow_supervisor.log(原schtask控制台=黑洞,41/42崩因至今零线索);933绿 [vps]
CI/CD / test (push) Successful in 10s
CI/CD / nas-deploy (push) Successful in 26s
CI/CD / nas-verify (push) Successful in 11s

This commit is contained in:
2026-08-16 18:28:18 +08:00
parent bb934228db
commit 886438fc92
12 changed files with 109 additions and 15 deletions
+14 -4
View File
@@ -61,11 +61,21 @@ def test_capital_and_rate_checks():
# ===== L2 数据最新日 =====
def test_end_beyond_latest_data_rejected(monkeypatch):
# end 是过去日期(过 L1)但超过 mock 的数据最新日 → L2 拦
monkeypatch.setattr(V, "get_latest_daily_date", lambda: "2026-07-31")
def test_end_beyond_latest_but_past_allowed(monkeypatch):
"""2026-08-16 口径修正:end>latest 但 end<=today(周末/当日未灌)放行。
VPS 实况:结束默认=今天(周日) > 数据最新(周五),原 400 首提即败;
引擎按区间过滤自然截到 latest,无需拦。
"""
monkeypatch.setattr(V, "get_latest_daily_date", lambda: "2026-08-14")
assert V.validate_backtest_range("2026-01-01", "2026-08-16") is None
def test_start_beyond_latest_data_rejected(monkeypatch):
# 开始日期在数据最新日之后 → 必空跑,明确错误输入,L2 拦
monkeypatch.setattr(V, "get_latest_daily_date", lambda: "2026-06-30")
with pytest.raises(HTTPException) as e:
V.validate_backtest_range("2026-01-01", "2026-08-05")
V.validate_backtest_range("2026-07-01", "2026-08-05")
assert "数据最新到" in e.value.detail