mirror of
https://github.com/OpenHands/OpenHands.git
synced 2025-12-26 05:48:36 +08:00
* Add integration test framework with mock llm * Fix MonologueAgent and PlannerAgent tests * Remove adhoc logging * Use existing logs * Fix SWEAgent and PlannerAgent * Check-in test log files * conftest: look up under test name folder only * Add docstring to conftest * Finish dev doc * Avoid non-determinism * Remove dependency on llm embedding model * Init embedding model only for MonologueAgent * Add adhoc fix for sandbox discrepancy * Test ssh and exec sandboxes * CI: fix missing sandbox type * conftest: Remove hack * Reword comment for TODO
21 lines
1.2 KiB
Python
21 lines
1.2 KiB
Python
from opendevin.observation import observation_from_dict, Observation, CmdOutputObservation
|
|
|
|
|
|
def test_observation_serialization_deserialization():
|
|
original_observation_dict = {
|
|
'observation': 'run',
|
|
'extras': {'exit_code': 0, 'command': 'ls -l', 'command_id': 3},
|
|
'message': 'Command `ls -l` executed with exit code 0.',
|
|
'content': 'foo.txt',
|
|
}
|
|
observation_instance = observation_from_dict(original_observation_dict)
|
|
assert isinstance(observation_instance, Observation), 'The observation instance should be an instance of Action.'
|
|
assert isinstance(observation_instance, CmdOutputObservation), 'The observation instance should be an instance of AgentThinkAction.'
|
|
serialized_observation_dict = observation_instance.to_dict()
|
|
serialized_observation_memory = observation_instance.to_memory()
|
|
assert serialized_observation_dict == original_observation_dict, 'The serialized observation should match the original observation dict.'
|
|
original_observation_dict.pop('message')
|
|
assert serialized_observation_memory == original_observation_dict, 'The serialized observation in memory should match the original observation dict.'
|
|
|
|
# Additional tests for various observation subclasses can be included here
|