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