| 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() | |