C-42: blocked workplan with no wait task (CUST-WP-0074-T06)
Blocked-with-nothing-waiting is a stale status; warn until a qualified wait task exists or the workplan is re-statused. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Assistant: claude-code Assistant-Model: sonnet Assistant-Process: 237582@bnt-lap001 Assistant-Session: f2b3d9f1-8fb9-4b9c-bc2b-837ec5dfc826
This commit is contained in:
parent
49fa3ebcdf
commit
7d04c05484
2 changed files with 46 additions and 0 deletions
|
|
@ -2442,6 +2442,31 @@ class TestTaskWaitQualifiers:
|
|||
assert len(self._issues(report, "C-39")) == 1
|
||||
assert self._issues(report, "C-40") == []
|
||||
|
||||
def test_c42_blocked_workplan_without_wait_task(self, tmp_path, monkeypatch):
|
||||
# A blocked workplan whose only task is todo states nothing about what
|
||||
# it waits for (CUST-WP-0074-T06). The head fixture is `blocked`.
|
||||
repo = self._make_repo(
|
||||
tmp_path,
|
||||
"id: STATE-WP-0001-T01\nstatus: todo\npriority: high\n"
|
||||
"state_hub_task_id: \"task-1\"",
|
||||
)
|
||||
self._install(monkeypatch, self._fake_get(repo))
|
||||
report = check_repo("http://unused", "demo-repo")
|
||||
c42 = self._issues(report, "C-42")
|
||||
assert len(c42) == 1 and c42[0].fixable is False
|
||||
assert "has no task in status wait" in c42[0].message
|
||||
|
||||
# A qualified wait task satisfies it.
|
||||
repo = self._make_repo(
|
||||
tmp_path / "ok",
|
||||
"id: STATE-WP-0001-T01\nstatus: wait\npriority: high\n"
|
||||
"state_hub_task_id: \"task-1\"\nneeds_human: true\n"
|
||||
"blocking_reason: \"operator decision\"",
|
||||
)
|
||||
self._install(monkeypatch, self._fake_get(repo))
|
||||
report = check_repo("http://unused", "demo-repo")
|
||||
assert self._issues(report, "C-42") == []
|
||||
|
||||
def test_c41_ignores_blocks_that_do_not_carry_the_keys(self, tmp_path, monkeypatch):
|
||||
repo = self._make_repo(
|
||||
tmp_path,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue