33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
"""复盘周报的固定动作入口(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")
|