198 self.assertEquals(self.member.state, 'asleep') |
198 self.assertEquals(self.member.state, 'asleep') |
199 self.assertEquals(parse_hist(self.member.workflow_history), |
199 self.assertEquals(parse_hist(self.member.workflow_history), |
200 [('activated', 'deactivated', 'deactivate', None), |
200 [('activated', 'deactivated', 'deactivate', None), |
201 ('deactivated', 'activated', 'activate', None), |
201 ('deactivated', 'activated', 'activate', None), |
202 ('activated', 'asleep', None, 'workflow changed to "CWUser"')]) |
202 ('activated', 'asleep', None, 'workflow changed to "CWUser"')]) |
203 |
|
204 def test_custom_wf_shared_state(self): |
|
205 """member in some state shared by the new workflow, nothing has to be |
|
206 done |
|
207 """ |
|
208 self.member.fire_transition('deactivate') |
|
209 self.assertEquals(self.member.state, 'deactivated') |
|
210 wf = add_wf(self, 'CWUser') |
|
211 wf.add_state('asleep', initial=True) |
|
212 self.execute('SET S state_of WF WHERE S name "deactivated", WF eid %(wf)s', |
|
213 {'wf': wf.eid}) |
|
214 self.execute('SET X custom_workflow WF WHERE X eid %(x)s, WF eid %(wf)s', |
|
215 {'wf': wf.eid, 'x': self.member.eid}) |
|
216 self.commit() |
|
217 self.member.clear_all_caches() |
|
218 self.assertEquals(self.member.current_workflow.eid, wf.eid) |
|
219 self.assertEquals(self.member.state, 'deactivated') |
|
220 self.assertEquals(parse_hist(self.member.workflow_history), |
|
221 [('activated', 'deactivated', 'deactivate', None)]) |
|
222 |
203 |
223 def test_custom_wf_no_initial_state(self): |
204 def test_custom_wf_no_initial_state(self): |
224 """try to set a custom workflow which has no initial state""" |
205 """try to set a custom workflow which has no initial state""" |
225 self.member.fire_transition('deactivate') |
206 self.member.fire_transition('deactivate') |
226 wf = add_wf(self, 'CWUser') |
207 wf = add_wf(self, 'CWUser') |