generated from coulomb/repo-seed
Normalize workplan IDs and activate parents on task start
This commit is contained in:
@@ -28,9 +28,9 @@ async def _create_topic(client, domain_slug="testdomain", slug="testtopic", titl
|
||||
return r.json()
|
||||
|
||||
|
||||
async def _create_workstream(client, topic_id, slug="test-ws", title="Test WS"):
|
||||
async def _create_workstream(client, topic_id, slug="test-ws", title="Test WS", status="active"):
|
||||
r = await client.post("/workstreams/", json={
|
||||
"topic_id": topic_id, "slug": slug, "title": title,
|
||||
"topic_id": topic_id, "slug": slug, "title": title, "status": status,
|
||||
})
|
||||
assert r.status_code == 201, r.text
|
||||
return r.json()
|
||||
@@ -213,6 +213,38 @@ class TestTasks:
|
||||
assert "High prio" in titles
|
||||
assert "Low prio" not in titles
|
||||
|
||||
@pytest.mark.parametrize("initial_status", ["proposed", "ready", "backlog"])
|
||||
async def test_task_start_activates_planning_workstream(self, client, initial_status):
|
||||
await _create_domain(client)
|
||||
topic = await _create_topic(client)
|
||||
ws = await _create_workstream(
|
||||
client,
|
||||
topic["id"],
|
||||
slug=f"{initial_status}-ws",
|
||||
status=initial_status,
|
||||
)
|
||||
task = await _create_task(client, ws["id"])
|
||||
|
||||
r = await client.patch(f"/tasks/{task['id']}", json={"status": "in_progress"})
|
||||
assert r.status_code == 200
|
||||
|
||||
r = await client.get(f"/workstreams/{ws['id']}")
|
||||
assert r.status_code == 200
|
||||
assert r.json()["status"] == "active"
|
||||
|
||||
async def test_task_start_does_not_unblock_blocked_workstream(self, client):
|
||||
await _create_domain(client)
|
||||
topic = await _create_topic(client)
|
||||
ws = await _create_workstream(client, topic["id"], slug="blocked-ws", status="blocked")
|
||||
task = await _create_task(client, ws["id"])
|
||||
|
||||
r = await client.patch(f"/tasks/{task['id']}", json={"status": "in_progress"})
|
||||
assert r.status_code == 200
|
||||
|
||||
r = await client.get(f"/workstreams/{ws['id']}")
|
||||
assert r.status_code == 200
|
||||
assert r.json()["status"] == "blocked"
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Decision tests
|
||||
|
||||
Reference in New Issue
Block a user