from unittest import TestCase from lagent.actions.builtin_actions import FinishAction, InvalidAction, NoAction from lagent.schema import ActionStatusCode class TestFinishAction(TestCase): def test_call(self): action = FinishAction() response = 'finish' action_return = action(response) self.assertEqual(action_return.state, ActionStatusCode.SUCCESS) self.assertDictEqual(action_return.result, dict(text='finish')) class TestInvalidAction(TestCase): def test_call(self): action = InvalidAction() response = 'invalid' action_return = action(response) self.assertEqual(action_return.state, ActionStatusCode.API_ERROR) self.assertEqual(action_return.errmsg, response) action = InvalidAction(err_msg='error') action_return = action() self.assertEqual(action_return.state, ActionStatusCode.API_ERROR) self.assertEqual(action_return.errmsg, 'error') class TestNoAction(TestCase): def test_call(self): action = NoAction() response = 'no' action_return = action(response) self.assertEqual(action_return.state, ActionStatusCode.API_ERROR) self.assertEqual(action_return.errmsg, response) action = NoAction(err_msg='error') action_return = action() self.assertEqual(action_return.state, ActionStatusCode.API_ERROR) self.assertEqual(action_return.errmsg, 'error')