From 68ccf6d025871fe086b31df6b08033379fd23730 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Thu, 12 Mar 2026 04:11:42 +0000 Subject: [PATCH] fix(ci): add _read_image_bytes to recursive ignore list, add new model price schema properties - Add _read_image_bytes to IGNORE_FUNCTIONS in recursive_detector.py (bounded recursion: only recurses once when input is a list, same pattern as already-ignored _read_all_bytes in vertex_ai) - Add supports_multimodal, uses_embed_content, input_cost_per_token_above_256k_tokens, output_cost_per_token_above_256k_tokens to test_utils.py JSON schema (new properties added to model_prices_and_context_window.json) Co-authored-by: yuneng-jiang --- tests/code_coverage_tests/recursive_detector.py | 1 + tests/test_litellm/test_utils.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/tests/code_coverage_tests/recursive_detector.py b/tests/code_coverage_tests/recursive_detector.py index 3710971229b..d01bb44bfea 100644 --- a/tests/code_coverage_tests/recursive_detector.py +++ b/tests/code_coverage_tests/recursive_detector.py @@ -32,6 +32,7 @@ IGNORE_FUNCTIONS = [ "_redact_base64", # max depth set. "_contains_vision_content", # max depth set. "_read_all_bytes", # max depth set. + "_read_image_bytes", # bounded recursion: only recurses once when input is a list. "_fix_enum_types", # max depth set. "_collect_argument_paths", # max depth set. "_split_text", # max depth set. diff --git a/tests/test_litellm/test_utils.py b/tests/test_litellm/test_utils.py index fec516336fd..818ecd769dd 100644 --- a/tests/test_litellm/test_utils.py +++ b/tests/test_litellm/test_utils.py @@ -619,6 +619,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "input_cost_per_image_above_128k_tokens": {"type": "number"}, "input_cost_per_image_token": {"type": "number"}, "input_cost_per_token_above_200k_tokens": {"type": "number"}, + "input_cost_per_token_above_256k_tokens": {"type": "number"}, "input_cost_per_token_above_272k_tokens": {"type": "number"}, "cache_read_input_token_cost_flex": {"type": "number"}, "cache_read_input_token_cost_priority": {"type": "number"}, @@ -700,6 +701,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "output_cost_per_token": {"type": "number"}, "output_cost_per_token_above_128k_tokens": {"type": "number"}, "output_cost_per_token_above_200k_tokens": {"type": "number"}, + "output_cost_per_token_above_256k_tokens": {"type": "number"}, "output_cost_per_token_above_272k_tokens": {"type": "number"}, "output_cost_per_image_above_1024_and_1024_pixels": {"type": "number"}, "output_cost_per_image_above_1024_and_1024_pixels_and_premium_image": { @@ -738,6 +740,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "supports_vision": {"type": "boolean"}, "supports_web_search": {"type": "boolean"}, "supports_url_context": {"type": "boolean"}, + "supports_multimodal": {"type": "boolean"}, "supports_reasoning": {"type": "boolean"}, "supports_none_reasoning_effort": {"type": "boolean"}, "supports_xhigh_reasoning_effort": {"type": "boolean"}, @@ -745,6 +748,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "supports_preset": {"type": "boolean"}, "tool_use_system_prompt_tokens": {"type": "number"}, "tpm": {"type": "number"}, + "uses_embed_content": {"type": "boolean"}, "provider_specific_entry": {"type": "object"}, "supported_endpoints": { "type": "array",