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)