Add issue workflow progress tracker
Magent CI/CD / verify (push) Canceled after 3m55s
Magent CI/CD / deploy-prod (push) Canceled after 0s
Magent CI/CD / deploy-beta (push) Canceled after 0s

This commit is contained in:
2026-09-01 14:44:17 +12:00
parent 87a4aae246
commit c7a56f2525
4 changed files with 363 additions and 6 deletions
+23
View File
@@ -1592,6 +1592,29 @@ class PortalWorkflowTests(TempDatabaseMixin, unittest.TestCase):
self.assertEqual(workflow.get("request_status"), "approved")
self.assertEqual(workflow.get("media_status"), "processing")
def test_issue_status_maps_to_public_workflow_progress(self) -> None:
item = {
"kind": "issue",
"status": "blocked",
"issue_type": "playback",
"created_by_username": "tester",
}
serialized = portal_router._serialize_item(item, {"username": "tester", "role": "user"})
workflow = (serialized.get("issue") or {}).get("workflow") or {}
self.assertEqual(workflow.get("current_step"), 4)
self.assertEqual(workflow.get("stage"), "repair")
self.assertEqual(workflow.get("state"), "attention")
self.assertEqual(len(workflow.get("steps") or []), 6)
self.assertEqual((workflow.get("steps") or [])[3].get("state"), "attention")
def test_resolved_issue_completes_the_public_workflow(self) -> None:
workflow = portal_router._issue_workflow_payload("closed")
self.assertEqual(workflow.get("current_step"), 6)
self.assertEqual(workflow.get("state"), "complete")
self.assertTrue(all(step.get("state") == "complete" for step in workflow.get("steps") or []))
def test_invalid_pipeline_transition_is_rejected(self) -> None:
with self.assertRaises(HTTPException) as context:
portal_router._validate_pipeline_transition(