| 123456789101112131415161718192021222324252627282930313233343536373839 |
- import os
- import tempfile
- from evaluation.integration_tests.tests.base import BaseIntegrationTest, TestResult
- from openhands.events.action import CmdRunAction
- from openhands.events.event import Event
- from openhands.runtime.base import Runtime
- class Test(BaseIntegrationTest):
- INSTRUCTION = 'Fix typos in bad.txt.'
- @classmethod
- def initialize_runtime(cls, runtime: Runtime) -> None:
- # create a file with a typo in /workspace/bad.txt
- with tempfile.TemporaryDirectory() as temp_dir:
- temp_file_path = os.path.join(temp_dir, 'bad.txt')
- with open(temp_file_path, 'w') as f:
- f.write('This is a stupid typoo.\nReally?\nNo mor typos!\nEnjoy!')
- # Copy the file to the desired location
- runtime.copy_to(temp_file_path, '/workspace')
- @classmethod
- def verify_result(cls, runtime: Runtime, histories: list[Event]) -> TestResult:
- # check if the file /workspace/bad.txt has been fixed
- action = CmdRunAction(command='cat /workspace/bad.txt', keep_prompt=False)
- obs = runtime.run_action(action)
- if obs.exit_code != 0:
- return TestResult(
- success=False, reason=f'Failed to run command: {obs.content}'
- )
- # check if the file /workspace/bad.txt has been fixed
- if (
- obs.content.strip().replace('\r\n', '\n')
- == 'This is a stupid typo.\nReally?\nNo more typos!\nEnjoy!'
- ):
- return TestResult(success=True)
- return TestResult(success=False, reason=f'File not fixed: {obs.content}')
|