Skip to content

Commit f89d308

Browse files
Abdu-moustafaelioschmutz
authored andcommitted
Provide flag n error response if we have pending tasks
1 parent ff3bfe9 commit f89d308

7 files changed

Lines changed: 29 additions & 8 deletions

File tree

opengever/api/tests/test_dossier_workflow.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,12 @@ def test_resolve_dossier_auto_close_tasks(self, browser):
250250
self.assertEqual(400, browser.status_code)
251251
self.assertDictEqual(
252252
{
253-
u'error': {u'message': u'', u'errors': [u'not all task are closed'], u'type': u'PreconditionsViolated'}
253+
u'error': {
254+
u'message': u'',
255+
u'errors': [u'not all task are closed'],
256+
u'type': u'PreconditionsViolated',
257+
u'has_not_closed_tasks': True,
258+
}
254259
},
255260
browser.json)
256261

opengever/api/transition.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from opengever.dossier.resolve import InvalidDates
1010
from opengever.dossier.resolve import LockingResolveManager
1111
from opengever.dossier.resolve import MSG_ALREADY_BEING_RESOLVED
12+
from opengever.dossier.resolve import NOT_CLOSED_TASKS
1213
from opengever.dossier.resolve import PreconditionsViolated
1314
from opengever.sign.sign import Signer
1415
from plone import api
@@ -189,6 +190,7 @@ def reply(self):
189190
return dict(error=dict(
190191
type='PreconditionsViolated',
191192
errors=map(self.translate, e.errors),
193+
has_not_closed_tasks=NOT_CLOSED_TASKS in e.errors,
192194
message=self.translate(str(e))))
193195

194196
except InvalidDates as e:

opengever/dossier/tests/test_activate.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ def assert_errors(self, dossier, browser, error_msgs):
138138
{u'error':
139139
{u'message': u'',
140140
u'errors': error_msgs,
141+
u'has_not_closed_tasks': False,
141142
u'type': u'PreconditionsViolated'}},
142143
browser.json)
143144
expected_url = dossier.absolute_url() + \

opengever/dossier/tests/test_archiver.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -525,6 +525,7 @@ def test_precondition_violation_raises_error_already_on_resolve_view(self, brows
525525
{u'error': {
526526
u'message': u'',
527527
u'errors': [u'not all task are closed'],
528+
u'has_not_closed_tasks': True,
528529
u'type': u'PreconditionsViolated'}},
529530
browser.json)
530531

opengever/dossier/tests/test_deactivate.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ def assert_errors(self, dossier, browser, error_msgs):
167167
{u'error':
168168
{u'message': u'',
169169
u'errors': error_msgs,
170+
u'has_not_closed_tasks': False,
170171
u'type': u'PreconditionsViolated'}},
171172
browser.json)
172173
expected_url = dossier.absolute_url() + \
@@ -303,6 +304,7 @@ def assert_errors(self, dossier, browser, error_msgs):
303304
{u'error':
304305
{u'message': u'',
305306
u'errors': error_msgs,
307+
u'has_not_closed_tasks': False,
306308
u'type': u'PreconditionsViolated'}},
307309
browser.json)
308310
expected_url = dossier.absolute_url() + \

opengever/dossier/tests/test_reactivate.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ def test_reactivating_a_subdossier_of_a_resolved_dossier_is_not_possible(self, b
9393
self.reactivate(self.resolvable_subdossier, browser)
9494

9595
self.assert_errors(self.resolvable_subdossier, browser,
96-
["A subdossier may not be reopened on its own. Please reopen the main dossier."])
96+
[u"A subdossier may not be reopened on its own. Please reopen the main dossier."])
9797
self.assert_workflow_state('dossier-state-resolved',
9898
self.resolvable_subdossier)
9999

@@ -170,6 +170,7 @@ def assert_errors(self, dossier, browser, error_msgs):
170170
{u'error': {
171171
u'message': u'',
172172
u'errors': error_msgs,
173+
u'has_not_closed_tasks': False,
173174
u'type': u'PreconditionsViolated'}},
174175
browser.json)
175176
expected_url = dossier.absolute_url() + '/@workflow/dossier-transition-reactivate'

opengever/dossier/tests/test_resolve.py

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -151,11 +151,12 @@ def assert_success(self, dossier, browser, info_msgs=None):
151151
u'review_state': u'dossier-state-resolved'},
152152
browser.json)
153153

154-
def assert_errors(self, dossier, browser, error_msgs):
154+
def assert_errors(self, dossier, browser, error_msgs, has_not_closed_tasks=False):
155155
self.assertEqual(400, browser.status_code)
156156
self.assertEqual(
157157
{u'error': {
158158
u'message': u'',
159+
u'has_not_closed_tasks': has_not_closed_tasks,
159160
u'errors': error_msgs,
160161
u'type': u'PreconditionsViolated'}},
161162
browser.json)
@@ -1014,7 +1015,7 @@ def test_resolving_is_cancelled_when_active_tasks_exist(self, browser):
10141015

10151016
self.assert_not_resolved(self.resolvable_dossier)
10161017
self.assert_errors(self.resolvable_dossier, browser,
1017-
['not all task are closed'])
1018+
[u'not all task are closed'], has_not_closed_tasks=True)
10181019

10191020
@browsing
10201021
def test_resolving_is_cancelled_when_dossier_has_an_invalid_end_date(self, browser):
@@ -1026,8 +1027,12 @@ def test_resolving_is_cancelled_when_dossier_has_an_invalid_end_date(self, brows
10261027
self.resolve(self.resolvable_dossier, browser)
10271028

10281029
self.assert_not_resolved(self.resolvable_dossier)
1029-
self.assert_errors(self.resolvable_dossier, browser,
1030-
['The dossier A resolvable main dossier has a invalid end_date'])
1030+
self.assertEqual(
1031+
{u'error': {
1032+
u'message': u'',
1033+
u'errors': [u'The dossier A resolvable main dossier has a invalid end_date'],
1034+
u'type': u'PreconditionsViolated'}},
1035+
browser.json)
10311036

10321037
@browsing
10331038
def test_resolving_is_cancelled_when_subdossier_has_an_invalid_end_date(self, browser):
@@ -1042,8 +1047,12 @@ def test_resolving_is_cancelled_when_subdossier_has_an_invalid_end_date(self, br
10421047
self.resolve(self.resolvable_dossier, browser)
10431048

10441049
self.assert_not_resolved(self.resolvable_dossier)
1045-
self.assert_errors(self.resolvable_dossier, browser,
1046-
['The dossier Resolvable Subdossier has a invalid end_date'])
1050+
self.assertEqual(
1051+
{u'error': {
1052+
u'message': u'',
1053+
u'errors': [u'The dossier Resolvable Subdossier has a invalid end_date'],
1054+
u'type': u'PreconditionsViolated'}},
1055+
browser.json)
10471056

10481057
@browsing
10491058
def test_dossier_is_resolved_when_resolved_subdossier_has_an_invalid_end_date(self, browser):

0 commit comments

Comments
 (0)