From 702ba5b2340e938f920f9bb5ad86e63539a4ac3a Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 10 May 2016 19:22:35 +0200 Subject: [PATCH] api: export if a status is an endpoint (#10904) --- tests/test_workflows.py | 11 +++++++++++ wcs/workflows.py | 2 ++ 2 files changed, 13 insertions(+) diff --git a/tests/test_workflows.py b/tests/test_workflows.py index 6e505ad..3e95ac2 100644 --- a/tests/test_workflows.py +++ b/tests/test_workflows.py @@ -75,6 +75,15 @@ def test_get_json_export_dict(pub): st1 = workflow.add_status('Status1', 'st1') st2 = workflow.add_status('Status2', 'st2') st2.forced_endpoint = True + + jump = JumpWorkflowStatusItem() + jump.id = '_jump' + jump.by = ['_submitter', '_receiver'] + jump.timeout = 0.1 + jump.status = 'st2' + st1.items.append(jump) + jump.parent = st1 + workflow.roles['_other'] = 'Other Function' root = workflow.get_json_export_dict() assert set(root.keys()) >= set(['statuses', 'name', 'functions']) @@ -87,9 +96,11 @@ def test_get_json_export_dict(pub): assert root['statuses'][0]['id'] == 'st1' assert root['statuses'][0]['name'] == 'Status1' assert root['statuses'][0]['forced_endpoint'] is False + assert root['statuses'][0]['endpoint'] is False assert root['statuses'][1]['id'] == 'st2' assert root['statuses'][1]['name'] == 'Status2' assert root['statuses'][1]['forced_endpoint'] is True + assert root['statuses'][1]['endpoint'] is True def test_jump_nothing(pub): FormDef.wipe() diff --git a/wcs/workflows.py b/wcs/workflows.py index 7f7e876..4bd54cc 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -573,11 +573,13 @@ class Workflow(StorableObject): for role, label in self.roles.iteritems(): roles[role] = unicode(label, charset) statuses = root['statuses'] = [] + endpoint_status_ids = [s.id for s in self.get_endpoint_status()] for status in self.possible_status: statuses.append({ 'id': status.id, 'name': unicode(status.name, charset), 'forced_endpoint': status.forced_endpoint, + 'endpoint': status.id in endpoint_status_ids, }) return root -- 2.1.4