All checks were successful
Deploy Development / deploy (push) Successful in 46s
Test Suite / pytest-backend (push) Successful in 2m40s
Test Suite / lint-backend (push) Successful in 2s
Test Suite / compose-smoke (push) Has been skipped
Test Suite / k6 /api/health Baseline (push) Successful in 19s
Test Suite / playwright-smoke (push) Successful in 13s
Zeitbox-API im Frontend, Plan/Ausführen Sprint-Ansichten, Backlog-Convert in aktiven Sprint. agile_iteration bei aktiver Zeitbox für continuous_product. Co-authored-by: Cursor <cursoragent@cursor.com>
45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
"""AP2.2d — Backlog convert assigns active sprint."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from tests.factories import provision_user_in_tenant
|
|
from tests.test_initiatives_actions import _auth, _create_initiative, _login
|
|
|
|
|
|
def test_convert_backlog_assigns_active_work_cycle(client):
|
|
user = provision_user_in_tenant(tenant_role="admin")
|
|
token = _login(client, user)
|
|
|
|
created = _create_initiative(
|
|
client,
|
|
token,
|
|
title="Product Backlog",
|
|
archetype_key="initiative.product",
|
|
)
|
|
initiative_id = created.json()["id"]
|
|
|
|
cycle = client.post(
|
|
f"/api/initiatives/{initiative_id}/work-cycles",
|
|
json={"title": "Sprint R1", "status": "active"},
|
|
headers=_auth(token),
|
|
)
|
|
assert cycle.status_code == 201
|
|
cycle_id = cycle.json()["id"]
|
|
|
|
backlog = client.post(
|
|
f"/api/initiatives/{initiative_id}/backlog",
|
|
json={"title": "Feature X", "status": "accepted"},
|
|
headers=_auth(token),
|
|
)
|
|
assert backlog.status_code == 201
|
|
backlog_id = backlog.json()["id"]
|
|
|
|
converted = client.post(
|
|
f"/api/backlog/{backlog_id}/convert-to-action",
|
|
json={"assign_active_sprint": True},
|
|
headers=_auth(token),
|
|
)
|
|
assert converted.status_code == 201
|
|
action = converted.json()["action"]
|
|
assert action["work_cycle_id"] == cycle_id
|