| from server.environment import CloudNativeDebugEnvironment |
| from server.models import Action, ActionType, FileEdit |
|
|
|
|
| def test_episode_flow_fix_and_autocomplete(): |
| env = CloudNativeDebugEnvironment() |
| obs = env.reset(task_id="dockerfile_syntax", scenario_id="typo_filename", seed=7) |
| assert obs.task_id == "dockerfile_syntax" |
| assert obs.total_issues >= 1 |
|
|
| action = Action( |
| action_type=ActionType.REPLACE_LINE, |
| edits=[ |
| FileEdit( |
| file_path="Dockerfile", |
| line_number=3, |
| new_content="COPY requirements.txt .", |
| ) |
| ], |
| reasoning="Fix typo in requirements filename", |
| ) |
| next_obs, reward, done, info = env.step(action) |
|
|
| assert reward > 0 |
| assert info["issues_fixed"] >= 1 |
| assert done is True |
| assert next_obs.issues_fixed >= 1 |
|
|
|
|
| def test_submit_runs_combined_simulation(): |
| env = CloudNativeDebugEnvironment() |
| env.reset(task_id="workflow_secrets_permissions", scenario_id="missing_env_secrets", seed=42) |
| obs, reward, done, info = env.step(Action(action_type=ActionType.SUBMIT, reasoning="validate")) |
| assert done is True |
| assert "issues_total" in info |
| assert reward >= 0.0 |
| assert obs.task_id == "workflow_secrets_permissions" |
|
|