From 9ce7264d436229697ee2d6b1d9e7bf448b6cb394 Mon Sep 17 00:00:00 2001 From: Trevin Chow Date: Sun, 17 May 2026 00:35:34 -0700 Subject: [PATCH] test(grounding): add serper>parallel priority + parallel empty-results coverage --- tests/test_grounding_v3.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tests/test_grounding_v3.py b/tests/test_grounding_v3.py index e881506..99ec312 100644 --- a/tests/test_grounding_v3.py +++ b/tests/test_grounding_v3.py @@ -163,6 +163,12 @@ class ParallelSearchTests(unittest.TestCase): mock_req.call_args.kwargs["headers"]["Authorization"], ) + def test_parallel_search_returns_empty_for_no_results(self): + with patch("lib.grounding.http.request", return_value={"results": []}): + items, artifact = grounding.parallel_search("test", ("2026-02-25", "2026-03-27"), "key") + self.assertEqual([], items) + self.assertEqual(0, artifact["resultCount"]) + class WebSearchDispatchTests(unittest.TestCase): def test_auto_selects_brave_when_key_present(self): @@ -215,6 +221,14 @@ class WebSearchDispatchTests(unittest.TestCase): mock_exa.assert_called_once() mock_serper.assert_not_called() + def test_auto_prefers_serper_over_parallel(self): + config = {"SERPER_API_KEY": "serper-key", "PARALLEL_API_KEY": "parallel-key"} + with patch("lib.grounding.serper_search", return_value=([], {})) as mock_serper, \ + patch("lib.grounding.parallel_search", return_value=([], {})) as mock_parallel: + grounding.web_search("test", ("2026-02-25", "2026-03-27"), config, backend="auto") + mock_serper.assert_called_once() + mock_parallel.assert_not_called() + def test_auto_prefers_brave_when_all_keys_present(self): config = {"BRAVE_API_KEY": "brave-key", "EXA_API_KEY": "exa-key", "SERPER_API_KEY": "serper-key"} with patch("lib.grounding.brave_search", return_value=([], {})) as mock_brave, \