为新的分层契约补 smoke 测试,防止后续重构悄悄破边界。
domain/execution.py
ExecutionResult
domain/context.py
TERMINAL_NODE_STATES
FAILED_NODE_STATES
infrastructure/storage/client.py
test_janitor.py
execution/worker.py
test_worker.py
scheduling/scheduler.py
start
stop
application/service.py
Executor: Codex
验证:
uv run --package schedule pytest schedule/tests -q
约束: 不引入 pytest 插件;httpx 用 respx 或直接 unittest.mock;参照现有 test_janitor.py / test_worker.py 的风格。
Task: spbez05t1j7wku8lkwdq7kh3
No dependencies set.
The note is not visible to the blocked user.
为新的分层契约补 smoke 测试,防止后续重构悄悄破边界。
domain/execution.py—ExecutionResultdataclass 实例化 + 默认值domain/context.py—TERMINAL_NODE_STATES/FAILED_NODE_STATES不可变性 + 成员正确infrastructure/storage/client.py— httpx mock 上传 run log(参照test_janitor.py风格)execution/worker.py— 已有test_worker.py,改 import 路径即可scheduling/scheduler.py—start/stop生命周期 smoke 测试application/service.py— 构造 + 关闭的 mock 路径,验证三个组件都被 wireExecutor: Codex
验证:
uv run --package schedule pytest schedule/tests -q全绿,至少 6 个新测试通过约束: 不引入 pytest 插件;httpx 用 respx 或直接 unittest.mock;参照现有
test_janitor.py/test_worker.py的风格。Task: spbez05t1j7wku8lkwdq7kh3