From 7e843edf3136a042c8635b8034ef6f5fc894db11 Mon Sep 17 00:00:00 2001 From: wakqasahmed Date: Sun, 16 Aug 2026 14:51:51 +0200 Subject: [PATCH] test: type exa search transformation test helpers --- .../test_exa_ai_search_transformation.py | 25 ++++++++++++++----- 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/tests/test_litellm/llms/exa_ai/search/test_exa_ai_search_transformation.py b/tests/test_litellm/llms/exa_ai/search/test_exa_ai_search_transformation.py index d91809d719b..648a25e3b2a 100644 --- a/tests/test_litellm/llms/exa_ai/search/test_exa_ai_search_transformation.py +++ b/tests/test_litellm/llms/exa_ai/search/test_exa_ai_search_transformation.py @@ -1,26 +1,39 @@ -import json +from typing import Final, TypedDict from unittest.mock import Mock from litellm.llms.exa_ai.search.transformation import ExaAISearchConfig +class _ExaSearchResult(TypedDict, total=False): + title: str + url: str + publishedDate: str + text: str + highlights: list[str] + summary: str + + +class _ExaSearchPayload(TypedDict): + results: list[_ExaSearchResult] + + def _config() -> ExaAISearchConfig: return ExaAISearchConfig() -def _resp(payload): - r = Mock() +def _resp(payload: _ExaSearchPayload) -> Mock: + r: Final = Mock() r.json.return_value = payload return r -def _result(**overrides): - base = { +def _result(**overrides: str | list[str]) -> _ExaSearchResult: + base: Final[_ExaSearchResult] = { "title": "Lion Finance Group (LON:BGEO) Q1 2026 Earnings Call Transcript & Audio", "url": "https://stockanalysis.com/quote/lon/BGEO/transcripts/557900-q1-2026/", "publishedDate": "2026-05-01T00:00:00.000Z", } - return {**base, **overrides} + return {**base, **overrides} # type: ignore[return-value] def test_transform_search_response_uses_text_when_present():