File size: 993 Bytes
d61821a | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | from __future__ import annotations
import unittest
from agent_harness.llm_localization import LocalizationError, parse_selection
class LocalizationParsingTests(unittest.TestCase):
def test_parses_valid_selection(self) -> None:
response = {
"choices": [
{
"message": {
"content": '{"files":["shells/abstract.go"],"reasoning":"checkout"}'
}
}
]
}
value = parse_selection(response, {"shells/abstract.go"})
self.assertEqual(value["files"], ["shells/abstract.go"])
def test_rejects_path_outside_candidates(self) -> None:
response = {
"choices": [
{"message": {"content": '{"files":["gold.go"],"reasoning":"guess"}'}}
]
}
with self.assertRaises(LocalizationError):
parse_selection(response, {"candidate.go"})
if __name__ == "__main__":
unittest.main()
|