fix(nas): bs_5m --limit冒烟禁推chunk state——2026-08-22 09:17独立容器冒烟(--limit 3)实锤把state从2025-08-20多推到2025-02-18,[2025-02-18,2025-08-20]半年片被3只股'代表'5548只跳过(当日上午巡检发现:state mtime 09:17恰=冒烟时刻,窗口算术反推+代码链路三证合一);根因=limit_reached只盯DAILY_LIMIT配额防线(bs_5m_eod.py:220),--limit预截断列表后循环'正常跑完'lr=False,286行推进守卫畅通;修=chunk state推进闸门加not args.limit;+测试钉死冒烟不落state(Red复现→Green);NAS侧state两步手动补回(今晚23:5x→2025-08-20补跳过片,明晨完工后→2024-08-19跳过重跑);venv310全套177绿 [nas]
This commit is contained in:
@@ -218,6 +218,22 @@ def test_main_runs_and_exits_0(main_env):
|
||||
assert not (main_env / "bs_5m.lock").exists()
|
||||
|
||||
|
||||
def test_main_limit_smoke_never_advances_state(main_env, monkeypatch):
|
||||
"""--limit 冒烟只拉 N 只 ≠ 整片完成: 绝不推进 chunk state。
|
||||
|
||||
2026-08-22 09:17 独立容器冒烟(--limit 3)实锤把 state 多推一片
|
||||
([2025-02-18,2025-08-20] 半年片被 3 只股"代表"5548 只跳过): 根因
|
||||
limit_reached 只盯 DAILY_LIMIT 配额防线, --limit 预截断后循环"正常
|
||||
跑完" lr=False, 推进守卫畅通。"""
|
||||
monkeypatch.setattr(sys, "argv", ["bs_5m_eod.py", "--limit", "1"])
|
||||
with patch.object(b5, "_process_one", return_value=48) as m_proc:
|
||||
with pytest.raises(SystemExit) as e:
|
||||
b5.main()
|
||||
assert e.value.code == 0
|
||||
assert m_proc.call_count == 2 # 1 股 × (chunk+inc)
|
||||
assert not (main_env / "bs_5m_state.json").exists() # 冒烟不落 state
|
||||
|
||||
|
||||
def test_main_increment_only_when_backfill_done(main_env, monkeypatch):
|
||||
"""回灌完结盖章(next_end=None) → 只跑每日增量(单 sweep)。"""
|
||||
b5.save_chunk_state({"next_end": None})
|
||||
|
||||
Reference in New Issue
Block a user