test: cover parallel grounding backend

This commit is contained in:
Dinakar Sarbada
2026-05-06 12:36:50 -07:00
committed by Trevin Chow
parent 5ab8c3ba76
commit f458e0f5af
+52
View File
@@ -122,6 +122,48 @@ class ExaSearchTests(unittest.TestCase):
self.assertEqual(0, artifact["resultCount"]) self.assertEqual(0, artifact["resultCount"])
class ParallelSearchTests(unittest.TestCase):
def test_parallel_search_filters_to_in_range_dated_items(self):
mock_response = {
"results": [
{
"title": "Parallel Result",
"url": "https://example.com/parallel",
"snippet": "A parallel snippet",
"published_date": "2026-03-15T00:00:00Z",
},
{
"title": "Old Parallel Result",
"url": "https://example.com/old-parallel",
"snippet": "Should be filtered",
"published_date": "2025-12-01T00:00:00Z",
},
{
"title": "Undated Parallel Result",
"url": "https://example.com/undated-parallel",
"snippet": "Should also be filtered",
},
]
}
with patch("lib.grounding.http.request", return_value=mock_response) as mock_req:
items, artifact = grounding.parallel_search(
"test", ("2026-02-25", "2026-03-27"), "fake-parallel-key"
)
self.assertEqual(1, len(items))
self.assertEqual("Parallel Result", items[0]["title"])
self.assertEqual("https://example.com/parallel", items[0]["url"])
self.assertEqual("2026-03-15", items[0]["date"])
self.assertTrue(items[0]["id"].startswith("WP"))
self.assertEqual("parallel", artifact["label"])
self.assertEqual(1, artifact["resultCount"])
self.assertEqual("POST", mock_req.call_args.args[0])
self.assertEqual("https://api.parallel.ai/v1/search", mock_req.call_args.args[1])
self.assertEqual(
"Bearer fake-parallel-key",
mock_req.call_args.kwargs["headers"]["Authorization"],
)
class WebSearchDispatchTests(unittest.TestCase): class WebSearchDispatchTests(unittest.TestCase):
def test_auto_selects_brave_when_key_present(self): def test_auto_selects_brave_when_key_present(self):
config = {"BRAVE_API_KEY": "test-key"} config = {"BRAVE_API_KEY": "test-key"}
@@ -141,6 +183,12 @@ class WebSearchDispatchTests(unittest.TestCase):
grounding.web_search("test", ("2026-02-25", "2026-03-27"), config, backend="auto") grounding.web_search("test", ("2026-02-25", "2026-03-27"), config, backend="auto")
mock.assert_called_once() mock.assert_called_once()
def test_auto_selects_parallel_when_only_parallel_key(self):
config = {"PARALLEL_API_KEY": "test-key"}
with patch("lib.grounding.parallel_search", return_value=([], {})) as mock:
grounding.web_search("test", ("2026-02-25", "2026-03-27"), config, backend="auto")
mock.assert_called_once()
def test_auto_returns_empty_when_no_keys(self): def test_auto_returns_empty_when_no_keys(self):
items, artifact = grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="auto") items, artifact = grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="auto")
self.assertEqual([], items) self.assertEqual([], items)
@@ -185,6 +233,10 @@ class WebSearchDispatchTests(unittest.TestCase):
with self.assertRaises(RuntimeError): with self.assertRaises(RuntimeError):
grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="brave") grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="brave")
def test_explicit_parallel_without_key_raises(self):
with self.assertRaises(RuntimeError):
grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="parallel")
def test_unsupported_backend_raises(self): def test_unsupported_backend_raises(self):
with self.assertRaises(ValueError): with self.assertRaises(ValueError):
grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="google") grounding.web_search("test", ("2026-02-25", "2026-03-27"), {}, backend="google")