"""复盘周报的固定动作入口(2026-09-07 方案第五件之三):滚动窗口与调度步骤白名单。""" import datetime as dt import plan_review import xxl def test_weekly_window_default_span(): # 周五 2026-09-11 触发:截止 7 天前的 09-04,起点再往前 21 天的 08-14 since, until = plan_review.weekly_window(dt.date(2026, 9, 11)) assert (since, until) == ("2026-08-14", "2026-09-04") def test_weekly_window_is_rolling_and_iso(): a = plan_review.weekly_window(dt.date(2026, 9, 11)) b = plan_review.weekly_window(dt.date(2026, 9, 18)) assert b != a assert (dt.date.fromisoformat(b[0]) - dt.date.fromisoformat(a[0])).days == 7 assert dt.date.fromisoformat(a[1]) - dt.date.fromisoformat(a[0]) == dt.timedelta(days=21) def test_weekly_window_today_default(): since, until = plan_review.weekly_window() assert dt.date.fromisoformat(until) == dt.date.today() - dt.timedelta(days=7) assert since < until def test_plan_review_step_registered_but_not_default(): assert "plan-review" in xxl.STEP_ORDER assert xxl.STEP_CMDS["plan-review"] == ["run.py", "plan-review"] assert "plan-review" not in xxl.DEFAULT_STEPS # 不进默认三步,平台单建周五任务 assert xxl.STEP_ORDER.index("plan-review") > xxl.STEP_ORDER.index("push-pool")