def test_log_action_taken_on_message(self): uid = uuid4() message = Message('subject', 'body', uid, users=[self.user, self.user2], requires_response=True) db.session.add(message) log_action_taken_on_message(self.user.id, uid) self.assertEqual(len(list(message.history)), 1) self.assertEqual(message.history[0].action, MessageAction.respond)
def __func(): data = request.get_json() workflows_in = set(data['execution_ids']) data_in = data['data_in'] arguments = data['arguments'] if 'arguments' in data else [] workflows_awaiting_data = set( current_app.running_context.executor.get_waiting_workflows()) execution_ids = set.intersection(workflows_in, workflows_awaiting_data) user_id = get_jwt_identity() authorization_not_required, authorized_execution_ids = get_authorized_execution_ids( execution_ids, user_id, get_jwt_claims().get('roles', [])) execution_ids = list(authorized_execution_ids | authorization_not_required) completed_execution_ids = [] arg_objects = [] for arg in arguments: arg_objects.append(Argument(**arg)) for execution_id in execution_ids: if current_app.running_context.executor.resume_trigger_step( execution_id, data_in, arg_objects): completed_execution_ids.append(execution_id) log_action_taken_on_message(user_id, execution_id) return completed_execution_ids, SUCCESS
def test_trigger_action_taken_workflow(self): uid = str(uuid4()) message = Message('subject', 'body', uid, users=[self.user, self.user2], requires_response=True) db.session.add(message) db.session.commit() log_action_taken_on_message(self.user.id, uid) message = Message.query.filter(Message.workflow_execution_id == uid).first() self.assertEqual(len(list(message.history)), 1) self.assertEqual(message.history[0].action, MessageAction.respond)
def test_log_action_taken_on_message_invalid_user(self): message = Message('subject', 'body', 'uid1', users=[self.user, self.user2], requires_response=True) db.session.add(message) log_action_taken_on_message(1000, 'uid1') self.assertEqual(len(list(message.history)), 0)
def test_log_action_taken_on_message(self): message = Message('subject', 'body', 'uid1', users=[self.user, self.user2], requires_response=True) db.session.add(message) log_action_taken_on_message(self.user.id, 'uid1') self.assertEqual(len(list(message.history)), 1) self.assertEqual(message.history[0].action, MessageAction.respond)
def test_trigger_action_taken_workflow(self): uid = str(uuid4()) message = Message('subject', 'body', uid, users=[self.user, self.user2], requires_response=True) db.session.add(message) db.session.commit() log_action_taken_on_message(self.user.id, uid) message = Message.query.filter( Message.workflow_execution_id == uid).first() self.assertEqual(len(list(message.history)), 1) self.assertEqual(message.history[0].action, MessageAction.respond)
def test_trigger_action_taken_workflow_sends_responded_message(self): uid = str(uuid4()) message = Message('subject', 'body', uid, users=[self.user, self.user2], requires_response=True) db.session.add(message) db.session.commit() res = {'called': False} @walkoff.messaging.MessageActionEvent.responded.connect def connected(message_in, **data): res['called'] = True self.assertEqual(message_in.id, message.id) self.assertEqual(data['data']['user'], self.user) log_action_taken_on_message(self.user.id, uid) self.assertTrue(res['called'])
def test_log_action_taken_on_message_invalid_user(self): uid = uuid4() message = Message('subject', 'body', uid, users=[self.user, self.user2], requires_response=True) db.session.add(message) log_action_taken_on_message(1000, uid) self.assertEqual(len(list(message.history)), 0)