test: cover parallel grounding backend
This commit is contained in:
committed by
Trevin Chow
parent
5ab8c3ba76
commit
f458e0f5af
@@ -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")
|
||||||
|
|||||||
Reference in New Issue
Block a user