From 8f48155ceccc43625192a5f0d84e359b3a5a2b76 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 3 May 2016 12:13:53 +0200 Subject: [PATCH] export workflow status as a list not a dict (#10807) --- help/fr/api-schema.page | 13 ++++++++----- tests/test_workflows.py | 17 ++++++++++------- wcs/workflows.py | 7 ++++--- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/help/fr/api-schema.page b/help/fr/api-schema.page index ac0695d..cd52743 100644 --- a/help/fr/api-schema.page +++ b/help/fr/api-schema.page @@ -186,20 +186,23 @@ Le schéma de données d'un formulaire est accessible à l'adresse "name": "Workflow Newsletter", "id": "1", "last_modification_time": "2015-12-12T10:20:45", - "statuses": { - "1": { + "statuses": [ + { + "id": "1", "name": "Nouveau", "forced_endpoint": false }, - "2": { + { + "id": "1", "name": "En cours", "forced_endpoint": false }, - "3": { + { + "id": "1", "name": "Terminé", "forced_endpoint": false } - } + ] } } diff --git a/tests/test_workflows.py b/tests/test_workflows.py index c82a954..708f643 100644 --- a/tests/test_workflows.py +++ b/tests/test_workflows.py @@ -75,13 +75,16 @@ def test_get_json_export_dict(pub): assert set(root.keys()) >= set(['statuses', 'name', 'functions']) assert root['name'] == 'wf' - assert set(root['statuses'].keys()) == set(['st1', 'st2']) - assert all(set(status.keys()) >= set(['name', 'forced_endpoint']) for status in - root['statuses'].values()) - assert root['statuses']['st1']['name'] == 'Status1' - assert root['statuses']['st1']['forced_endpoint'] is False - assert root['statuses']['st2']['name'] == 'Status2' - assert root['statuses']['st2']['forced_endpoint'] is True + assert len(root['statuses']) == 2 + assert set(st['id'] for st in root['statuses']) == set(['st1', 'st2']) + assert all(set(status.keys()) >= set(['id', 'name', 'forced_endpoint']) for status in + root['statuses']) + assert root['statuses'][0]['id'] == 'st1' + assert root['statuses'][0]['name'] == 'Status1' + assert root['statuses'][0]['forced_endpoint'] is False + assert root['statuses'][1]['id'] == 'st2' + assert root['statuses'][1]['name'] == 'Status2' + assert root['statuses'][1]['forced_endpoint'] is True def test_jump_nothing(pub): FormDef.wipe() diff --git a/wcs/workflows.py b/wcs/workflows.py index 28dbb56..a850102 100644 --- a/wcs/workflows.py +++ b/wcs/workflows.py @@ -572,12 +572,13 @@ class Workflow(StorableObject): roles = root['functions'] = {} for role, label in self.roles.iteritems(): roles[role] = unicode(label, charset) - statuses = root['statuses'] = {} + statuses = root['statuses'] = [] for status in self.possible_status: - statuses[status.id] = { + statuses.append({ + 'id': status.id, 'name': unicode(status.name, charset), 'forced_endpoint': status.forced_endpoint, - } + }) return root @classmethod -- 2.1.4