test_observation_serialization.py 1.2 KB

1234567891011121314151617181920
  1. from opendevin.observation import observation_from_dict, Observation, CmdOutputObservation
  2. def test_observation_serialization_deserialization():
  3. original_observation_dict = {
  4. 'observation': 'run',
  5. 'extras': {'exit_code': 0, 'command': 'ls -l', 'command_id': 3},
  6. 'message': 'Command `ls -l` executed with exit code 0.',
  7. 'content': 'foo.txt',
  8. }
  9. observation_instance = observation_from_dict(original_observation_dict)
  10. assert isinstance(observation_instance, Observation), 'The observation instance should be an instance of Action.'
  11. assert isinstance(observation_instance, CmdOutputObservation), 'The observation instance should be an instance of AgentThinkAction.'
  12. serialized_observation_dict = observation_instance.to_dict()
  13. serialized_observation_memory = observation_instance.to_memory()
  14. assert serialized_observation_dict == original_observation_dict, 'The serialized observation should match the original observation dict.'
  15. original_observation_dict.pop('message')
  16. assert serialized_observation_memory == original_observation_dict, 'The serialized observation in memory should match the original observation dict.'
  17. # Additional tests for various observation subclasses can be included here