diff -r a64f48dd5fe4 -r 9ab2b4c74baf server/test/unittest_security.py --- a/server/test/unittest_security.py Thu May 20 20:47:13 2010 +0200 +++ b/server/test/unittest_security.py Thu May 20 20:47:55 2010 +0200 @@ -384,7 +384,7 @@ # Note.para attribute editable by managers or if the note is in "todo" state note = self.execute("INSERT Note X: X para 'bidule'").get_entity(0, 0) self.commit() - note.fire_transition('markasdone') + note.cw_adapt_to('IWorkflowable').fire_transition('markasdone') self.execute('SET X para "truc" WHERE X eid %(x)s', {'x': note.eid}) self.commit() cnx = self.login('iaminusersgrouponly') @@ -393,13 +393,13 @@ self.assertRaises(Unauthorized, cnx.commit) note2 = cu.execute("INSERT Note X: X para 'bidule'").get_entity(0, 0) cnx.commit() - note2.fire_transition('markasdone') + note2.cw_adapt_to('IWorkflowable').fire_transition('markasdone') cnx.commit() self.assertEquals(len(cu.execute('Any X WHERE X in_state S, S name "todo", X eid %(x)s', {'x': note2.eid})), 0) cu.execute("SET X para 'chouette' WHERE X eid %(x)s", {'x': note2.eid}) self.assertRaises(Unauthorized, cnx.commit) - note2.fire_transition('redoit') + note2.cw_adapt_to('IWorkflowable').fire_transition('redoit') cnx.commit() cu.execute("SET X para 'chouette' WHERE X eid %(x)s", {'x': note2.eid}) cnx.commit() @@ -435,7 +435,7 @@ cnx.commit() self.restore_connection() affaire = self.execute('Any X WHERE X ref "ARCT01"').get_entity(0, 0) - affaire.fire_transition('abort') + affaire.cw_adapt_to('IWorkflowable').fire_transition('abort') self.commit() self.assertEquals(len(self.execute('TrInfo X WHERE X wf_info_for A, A ref "ARCT01"')), 1) @@ -537,14 +537,15 @@ cu = cnx.cursor() self.schema['Affaire'].set_action_permissions('read', ('users',)) aff = cu.execute('Any X WHERE X ref "ARCT01"').get_entity(0, 0) - aff.fire_transition('abort') + aff.cw_adapt_to('IWorkflowable').fire_transition('abort') cnx.commit() # though changing a user state (even logged user) is reserved to managers user = cnx.user(self.session) # XXX wether it should raise Unauthorized or ValidationError is not clear # the best would probably ValidationError if the transition doesn't exist # from the current state but Unauthorized if it exists but user can't pass it - self.assertRaises(ValidationError, user.fire_transition, 'deactivate') + self.assertRaises(ValidationError, + user.cw_adapt_to('IWorkflowable').fire_transition, 'deactivate') finally: # restore orig perms for action, perms in affaire_perms.iteritems(): @@ -552,15 +553,16 @@ def test_trinfo_security(self): aff = self.execute('INSERT Affaire X: X ref "ARCT01"').get_entity(0, 0) + iworkflowable = aff.cw_adapt_to('IWorkflowable') self.commit() - aff.fire_transition('abort') + iworkflowable.fire_transition('abort') self.commit() # can change tr info comment self.execute('SET TI comment %(c)s WHERE TI wf_info_for X, X ref "ARCT01"', {'c': u'bouh!'}) self.commit() aff.clear_related_cache('wf_info_for', 'object') - trinfo = aff.latest_trinfo() + trinfo = iworkflowable.latest_trinfo() self.assertEquals(trinfo.comment, 'bouh!') # but not from_state/to_state aff.clear_related_cache('wf_info_for', role='object')