From dad9c07843036b4a4e93425fa29307db7112a95f Mon Sep 17 00:00:00 2001 From: Xubin Ren Date: Mon, 6 Apr 2026 11:17:00 +0000 Subject: [PATCH] fix(tests): update Tavily usage tests to match actual API response shape The _parse_tavily_usage implementation was updated to use the real {account: {plan_usage, plan_limit, ...}} structure, but the tests still used the old flat {used, limit, breakdown} format. Made-with: Cursor --- tests/utils/test_searchusage.py | 47 ++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/tests/utils/test_searchusage.py b/tests/utils/test_searchusage.py index dd8c62571..205ccd917 100644 --- a/tests/utils/test_searchusage.py +++ b/tests/utils/test_searchusage.py @@ -79,11 +79,18 @@ class TestSearchUsageInfoFormat: class TestParseTavilyUsage: def test_full_response(self): data = { - "used": 142, - "limit": 1000, - "remaining": 858, - "reset_date": "2026-05-01", - "breakdown": {"search": 120, "extract": 15, "crawl": 7}, + "account": { + "current_plan": "Researcher", + "plan_usage": 142, + "plan_limit": 1000, + "search_usage": 120, + "extract_usage": 15, + "crawl_usage": 7, + "map_usage": 0, + "research_usage": 0, + "paygo_usage": 0, + "paygo_limit": None, + }, } info = _parse_tavily_usage(data) assert info.provider == "tavily" @@ -91,26 +98,20 @@ class TestParseTavilyUsage: assert info.used == 142 assert info.limit == 1000 assert info.remaining == 858 - assert info.reset_date == "2026-05-01" assert info.search_used == 120 assert info.extract_used == 15 assert info.crawl_used == 7 - def test_remaining_computed_when_missing(self): - data = {"used": 300, "limit": 1000} + def test_remaining_computed(self): + data = {"account": {"plan_usage": 300, "plan_limit": 1000}} info = _parse_tavily_usage(data) assert info.remaining == 700 def test_remaining_not_negative(self): - data = {"used": 1100, "limit": 1000} + data = {"account": {"plan_usage": 1100, "plan_limit": 1000}} info = _parse_tavily_usage(data) assert info.remaining == 0 - def test_camel_case_reset_date(self): - data = {"used": 10, "limit": 100, "resetDate": "2026-06-01"} - info = _parse_tavily_usage(data) - assert info.reset_date == "2026-06-01" - def test_empty_response(self): info = _parse_tavily_usage({}) assert info.provider == "tavily" @@ -118,8 +119,8 @@ class TestParseTavilyUsage: assert info.used is None assert info.limit is None - def test_no_breakdown_key(self): - data = {"used": 5, "limit": 50} + def test_no_breakdown_fields(self): + data = {"account": {"plan_usage": 5, "plan_limit": 50}} info = _parse_tavily_usage(data) assert info.search_used is None assert info.extract_used is None @@ -175,11 +176,14 @@ class TestFetchSearchUsageRouting: mock_response = MagicMock() mock_response.status_code = 200 mock_response.json.return_value = { - "used": 142, - "limit": 1000, - "remaining": 858, - "reset_date": "2026-05-01", - "breakdown": {"search": 120, "extract": 15, "crawl": 7}, + "account": { + "current_plan": "Researcher", + "plan_usage": 142, + "plan_limit": 1000, + "search_usage": 120, + "extract_usage": 15, + "crawl_usage": 7, + }, } mock_response.raise_for_status = MagicMock() @@ -197,7 +201,6 @@ class TestFetchSearchUsageRouting: assert info.used == 142 assert info.limit == 1000 assert info.remaining == 858 - assert info.reset_date == "2026-05-01" assert info.search_used == 120 @pytest.mark.asyncio