def test_task_predecessors_are_synced(self): task = create(Builder('task').in_state('task-state-in-progress')) successor = create( Builder('task').in_state('task-state-in-progress').successor_from( task)) sender = WorkflowResponseSyncerSender(successor, self.request) self.assertEqual([task.get_sql_object()], sender.get_related_tasks_to_sync( transition='task-transition-reassign'))
def test_sync_state_change_on_successor_to_predecessor(self): predecessor = create(Builder('task').in_state('task-state-resolved')) successor = create(Builder('task').successor_from(predecessor)) sender = WorkflowResponseSyncerSender(successor, self.request) sender.sync_related_tasks('task-transition-resolved-in-progress', text=u'Please extend chapter 2.4') self.assertEquals('task-state-in-progress', api.content.get_state(predecessor))
def test_forwarding_predecessors_are_ignored(self): forwarding = create( Builder('forwarding').in_state('forwarding-state-closed')) successor = create( Builder('task').in_state('task-state-in-progress').successor_from( forwarding)) sender = WorkflowResponseSyncerSender(successor, self.request) self.assertEqual([], sender.get_related_tasks_to_sync( transition='task-transition-reassign'))
def test_raises_sync_exception_raises_workflow_specific_exception_message( self): predecessor = create(Builder('task').in_state('task-state-resolved')) sender = WorkflowResponseSyncerSender(object(), self.request) with self.assertRaises(ResponseSyncerSenderException) as exception: sender.raise_sync_exception(predecessor.get_sql_object(), 'publish', 'some text') self.assertEqual( 'Could not execute workflow transition (publish) on remote admin unit client1 (task-1)', str(exception.exception))
def test_adds_corresponding_response(self): predecessor = create(Builder('task')) successor = create( Builder('task').successor_from(predecessor).in_state( 'task-state-in-progress')) sender = WorkflowResponseSyncerSender(predecessor, self.request) sender.sync_related_tasks('task-transition-in-progress-resolved', text=u'\xe4\xe4hhh I am done!') response = IResponseContainer(successor)[-1] self.assertEquals('task-transition-in-progress-resolved', response.transition) self.assertEquals('\xc3\xa4\xc3\xa4hhh I am done!', response.text) self.assertEquals(TEST_USER_ID, response.creator) self.assertEquals([{ 'before': 'task-state-in-progress', 'after': 'task-state-resolved', 'id': 'review_state', 'name': u'Issue state' }], response.changes)