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