| from unittest import TestCase |
|
|
| from lagent.actions.python_interpreter import PythonInterpreter |
| from lagent.schema import ActionStatusCode |
|
|
|
|
| class TestPythonInterpreter(TestCase): |
|
|
| def test_python_executor(self): |
| python_executor = PythonInterpreter() |
| tool_return = python_executor( |
| '```python\ndef solution():\n return 1\n```') |
| self.assertEqual(tool_return.state, ActionStatusCode.SUCCESS) |
| self.assertDictEqual(tool_return.result, dict(text='1')) |
|
|
| def test_timeout(self): |
| python_executor = PythonInterpreter(timeout=2) |
| tool_return = python_executor( |
| '```python\ndef solution():\n while True:\n pass\n```') |
| self.assertEqual(tool_return.state, ActionStatusCode.API_ERROR) |
| self.assertIn('FunctionTimedOut', tool_return.errmsg) |
|
|