test_json.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from datetime import datetime
  2. from openhands.core.utils import json
  3. from openhands.events.action import MessageAction
  4. def test_event_serialization_deserialization():
  5. message = MessageAction(content='This is a test.', wait_for_response=False)
  6. message._id = 42
  7. message._timestamp = datetime(2020, 1, 1, 23, 59, 58)
  8. serialized = json.dumps(message)
  9. deserialized = json.loads(serialized)
  10. expected = {
  11. 'id': 42,
  12. 'timestamp': '2020-01-01T23:59:58',
  13. 'action': 'message',
  14. 'message': 'This is a test.',
  15. 'args': {
  16. 'content': 'This is a test.',
  17. 'image_urls': None,
  18. 'wait_for_response': False,
  19. },
  20. }
  21. assert deserialized == expected
  22. def test_array_serialization_deserialization():
  23. message = MessageAction(content='This is a test.', wait_for_response=False)
  24. message._id = 42
  25. message._timestamp = datetime(2020, 1, 1, 0, 0, 0)
  26. serialized = json.dumps([message])
  27. deserialized = json.loads(serialized)
  28. expected = [
  29. {
  30. 'id': 42,
  31. 'timestamp': '2020-01-01T00:00:00',
  32. 'action': 'message',
  33. 'message': 'This is a test.',
  34. 'args': {
  35. 'content': 'This is a test.',
  36. 'image_urls': None,
  37. 'wait_for_response': False,
  38. },
  39. }
  40. ]
  41. assert deserialized == expected