Files
odysseus/tests/test_execution_capabilities.py
T

46 lines
1.4 KiB
Python

from src.execution_capabilities import ExecutionCapabilities, verifier_prompt
def test_probe_contract_deduplicates_and_rejects_parent_paths():
capabilities = ExecutionCapabilities.from_probe({
"cwd": "/workspace",
"commands": ["python3", "git", "python3"],
"verifiers": [
{
"command": "python3 -m pytest -q",
"kind": "pytest",
"source_path": "pyproject.toml",
},
{
"command": "python3 -m pytest -q",
"kind": "pytest",
"source_path": "tests",
},
{
"command": "sh ../verifier/test.sh",
"kind": "script",
"source_path": "../verifier/test.sh",
},
],
})
assert capabilities.commands == ("git", "python3")
assert capabilities.verifier_commands == ("python3 -m pytest -q",)
assert "../verifier" not in str(capabilities.to_dict())
def test_verifier_prompt_contains_only_discovered_commands():
capabilities = ExecutionCapabilities.from_probe({
"cwd": "/workspace",
"commands": ["npm"],
"verifiers": [{
"command": "npm test",
"kind": "npm",
"source_path": "package.json",
}],
})
prompt = verifier_prompt(capabilities)
assert "`npm test`" in prompt
assert "address any failure" in prompt