@@ -74,7 +74,7 @@ def assert_success(self, dossier, browser, info_msgs=None):
7474 statusmessages .assert_no_error_messages ()
7575 self .assertEquals (info_msgs , info_messages ())
7676
77- def assert_errors (self , dossier , browser , error_msgs ):
77+ def assert_errors (self , dossier , browser , error_msgs , ** kwargs ):
7878 self .assertEquals (dossier .absolute_url (), browser .url )
7979 self .assertEquals (error_msgs , error_messages ())
8080
@@ -151,14 +151,16 @@ 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 , has_not_closed_tasks = False ):
154+ def assert_errors (self , dossier , browser , error_msgs , ** additional_error_attrs ):
155155 self .assertEqual (400 , browser .status_code )
156+ error = {
157+ u'message' : u'' ,
158+ u'errors' : error_msgs ,
159+ u'type' : u'PreconditionsViolated'
160+ }
161+ error .update (additional_error_attrs )
156162 self .assertEqual (
157- {u'error' : {
158- u'message' : u'' ,
159- u'has_not_closed_tasks' : has_not_closed_tasks ,
160- u'errors' : error_msgs ,
161- u'type' : u'PreconditionsViolated' }},
163+ {u'error' : error },
162164 browser .json )
163165 expected_url = dossier .absolute_url () + '/@workflow/dossier-transition-resolve'
164166 self .assertEquals (expected_url , browser .url )
@@ -969,7 +971,8 @@ def test_resolving_is_cancelled_when_documents_are_not_filed_correctly(self, bro
969971
970972 self .assert_not_resolved (self .resolvable_dossier )
971973 self .assert_errors (self .resolvable_dossier , browser ,
972- ['Not all documents and tasks have been filed into subdossiers.' ])
974+ ['Not all documents and tasks have been filed into subdossiers.' ],
975+ has_not_closed_tasks = False )
973976
974977 @browsing
975978 def test_resolving_is_cancelled_when_documents_are_checked_out (self , browser ):
@@ -981,7 +984,8 @@ def test_resolving_is_cancelled_when_documents_are_checked_out(self, browser):
981984
982985 self .assert_not_resolved (self .resolvable_dossier )
983986 self .assert_errors (self .resolvable_dossier , browser ,
984- ['Not all documents have been checked in yet.' ])
987+ ['Not all documents have been checked in yet.' ],
988+ has_not_closed_tasks = False )
985989
986990 @browsing
987991 def test_resolving_is_cancelled_when_documents_in_subsubdossiers_are_checked_out (self , browser ):
@@ -997,7 +1001,8 @@ def test_resolving_is_cancelled_when_documents_in_subsubdossiers_are_checked_out
9971001
9981002 self .assert_not_resolved (self .resolvable_dossier )
9991003 self .assert_errors (self .resolvable_dossier , browser ,
1000- ['Not all documents have been checked in yet.' ])
1004+ ['Not all documents have been checked in yet.' ],
1005+ has_not_closed_tasks = False )
10011006
10021007 @browsing
10031008 def test_resolving_is_cancelled_when_active_tasks_exist (self , browser ):
@@ -1027,12 +1032,9 @@ def test_resolving_is_cancelled_when_dossier_has_an_invalid_end_date(self, brows
10271032 self .resolve (self .resolvable_dossier , browser )
10281033
10291034 self .assert_not_resolved (self .resolvable_dossier )
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 )
1035+ self .assert_errors (self .resolvable_dossier , browser ,
1036+ ['The dossier A resolvable main dossier has a invalid end_date' ],
1037+ )
10361038
10371039 @browsing
10381040 def test_resolving_is_cancelled_when_subdossier_has_an_invalid_end_date (self , browser ):
@@ -1047,13 +1049,8 @@ def test_resolving_is_cancelled_when_subdossier_has_an_invalid_end_date(self, br
10471049 self .resolve (self .resolvable_dossier , browser )
10481050
10491051 self .assert_not_resolved (self .resolvable_dossier )
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 )
1056-
1052+ self .assert_errors (self .resolvable_dossier , browser ,
1053+ ['The dossier Resolvable Subdossier has a invalid end_date' ])
10571054 @browsing
10581055 def test_dossier_is_resolved_when_resolved_subdossier_has_an_invalid_end_date (self , browser ):
10591056 self .login (self .secretariat_user , browser )
@@ -1114,7 +1111,8 @@ def test_resolving_is_cancelled_when_dossier_has_active_proposals(self, browser)
11141111
11151112 self .assert_not_resolved (self .resolvable_subdossier )
11161113 self .assert_errors (self .resolvable_subdossier , browser ,
1117- ['Dossier contains active proposals.' ])
1114+ ['Dossier contains active proposals.' ],
1115+ has_not_closed_tasks = False )
11181116
11191117 @browsing
11201118 def test_dossier_is_resolved_when_all_tasks_are_closed_and_documents_checked_in (self , browser ):
@@ -1154,7 +1152,8 @@ def test_resolving_is_cancelled_when_custom_precondition_is_not_satisfied(self,
11541152
11551153 self .assert_not_resolved (self .resolvable_dossier )
11561154 self .assert_errors (self .resolvable_dossier , browser ,
1157- ['custom precondition not satisfied' ])
1155+ ['custom precondition not satisfied' ],
1156+ has_not_closed_tasks = False )
11581157
11591158 @browsing
11601159 def test_resolving_when_custom_precondition_is_satisfied (self , browser ):
@@ -1191,7 +1190,8 @@ def test_can_use_custom_properties_in_custom_dossier_resolution_precondition(sel
11911190 self .resolve (self .resolvable_dossier , browser )
11921191 self .assert_not_resolved (self .resolvable_dossier )
11931192 self .assert_errors (self .resolvable_dossier , browser ,
1194- ['custom precondition not satisfied' ])
1193+ ['custom precondition not satisfied' ],
1194+ has_not_closed_tasks = False )
11951195
11961196 IDossierCustomProperties (self .resolvable_dossier ).custom_properties = {
11971197 "IDossier.default" : {"additional_title" : "I have an additional title" },
@@ -1220,7 +1220,8 @@ def test_resolving_is_cancelled_when_dossier_is_linked_to_active_workspace(self,
12201220 self .resolve (self .dossier , browser )
12211221 self .assert_not_resolved (self .dossier )
12221222 self .assert_errors (self .dossier , browser ,
1223- ['Not all linked workspaces are deactivated.' ])
1223+ ['Not all linked workspaces are deactivated.' ],
1224+ has_not_closed_tasks = False )
12241225
12251226 @browsing
12261227 def test_resolving_is_cancelled_when_dossier_is_linked_to_workspaces_without_view_permission (self , browser ):
@@ -1238,7 +1239,8 @@ def test_resolving_is_cancelled_when_dossier_is_linked_to_workspaces_without_vie
12381239 self .assert_not_resolved (self .dossier )
12391240 self .assert_errors (
12401241 self .dossier , browser ,
1241- [u'You can\' t close the dossier because you do not have access to all its linked workspaces.' ])
1242+ [u'You can\' t close the dossier because you do not have access to all its linked workspaces.' ],
1243+ has_not_closed_tasks = False )
12421244
12431245 @browsing
12441246 def test_dossier_is_resolved_when_no_workspace_is_linked (self , browser ):
0 commit comments