| from datetime import datetime | |
| from openhands.core.utils import json | |
| from openhands.events.action import MessageAction | |
| def test_event_serialization_deserialization(): | |
| message = MessageAction(content='This is a test.', wait_for_response=False) | |
| message._id = 42 | |
| message._timestamp = datetime(2020, 1, 1, 23, 59, 58) | |
| serialized = json.dumps(message) | |
| deserialized = json.loads(serialized) | |
| expected = { | |
| 'id': 42, | |
| 'timestamp': '2020-01-01T23:59:58', | |
| 'action': 'message', | |
| 'message': 'This is a test.', | |
| 'args': { | |
| 'content': 'This is a test.', | |
| 'image_urls': None, | |
| 'wait_for_response': False, | |
| }, | |
| } | |
| assert deserialized == expected | |
| def test_array_serialization_deserialization(): | |
| message = MessageAction(content='This is a test.', wait_for_response=False) | |
| message._id = 42 | |
| message._timestamp = datetime(2020, 1, 1, 0, 0, 0) | |
| serialized = json.dumps([message]) | |
| deserialized = json.loads(serialized) | |
| expected = [ | |
| { | |
| 'id': 42, | |
| 'timestamp': '2020-01-01T00:00:00', | |
| 'action': 'message', | |
| 'message': 'This is a test.', | |
| 'args': { | |
| 'content': 'This is a test.', | |
| 'image_urls': None, | |
| 'wait_for_response': False, | |
| }, | |
| } | |
| ] | |
| assert deserialized == expected | |