From 82925fc3c0ee9600fc146a5fff6b6160eb247cba Mon Sep 17 00:00:00 2001 From: Yuneng Jiang Date: Tue, 27 Oct 2026 18:08:19 -0700 Subject: [PATCH] test: accept the mirrored cost map's extraction mode, new row fields and openinfer rows The mirrored map carries extraction mode rows, explicit_cache_read_input_token_cost and supports_bedrock_native_structured_output, and openinfer rows for a provider this line has no model set for. stable/1.106.x widened the same checks in ebf92c9a45 and f44d4a70c0 --- tests/unit/test_model_prices_and_context_window.py | 2 +- tests/unit/test_utils.py | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tests/unit/test_model_prices_and_context_window.py b/tests/unit/test_model_prices_and_context_window.py index 5640d959e43..bcfc4e9a6f0 100644 --- a/tests/unit/test_model_prices_and_context_window.py +++ b/tests/unit/test_model_prices_and_context_window.py @@ -632,7 +632,7 @@ class TestBedrockClaude35SonnetContextWindow: assert not set(above_200k_fields).intersection(rows[model]) -PROVIDER_LABELS_WITHOUT_A_MODEL_SET: Final = frozenset({"sagemaker", "bedrock_converse"}) +PROVIDER_LABELS_WITHOUT_A_MODEL_SET: Final = frozenset({"sagemaker", "bedrock_converse", "openinfer"}) MODES_SERVED_OUTSIDE_THE_LLM_PROVIDER_REGISTRY: Final = frozenset({"search", "decisions", "evaluation"}) VERTEX_FAMILIES_A_VERTEX_WILDCARD_GRANT_DOES_NOT_LIST: Final = frozenset( { diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py index 79ae75d582f..7edfb22c121 100644 --- a/tests/unit/test_utils.py +++ b/tests/unit/test_utils.py @@ -951,6 +951,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "cache_creation_input_token_cost_priority": {"type": "number"}, "cache_creation_input_token_cost_ultrafast": {"type": "number"}, "cache_read_input_token_cost": {"type": "number"}, + "explicit_cache_read_input_token_cost": {"type": "number"}, "cache_read_input_token_cost_above_32k_tokens": {"type": "number"}, "cache_read_input_token_cost_above_100k_tokens": {"type": "number"}, "cache_read_input_token_cost_above_100k_tokens_batches": {"type": "number"}, @@ -1058,6 +1059,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "image_edit", "embedding", "evaluation", + "extraction", "guardrail", "image_generation", "video_generation", @@ -1138,6 +1140,7 @@ def test_aaamodel_prices_and_context_window_json_is_valid(): "supports_box_questions": {"type": "boolean"}, "supports_vision": {"type": "boolean"}, "supports_web_search": {"type": "boolean"}, + "supports_bedrock_native_structured_output": {"type": "boolean"}, "token_count_framing": {"type": "integer"}, "token_count_model": { "type": "object", @@ -8683,9 +8686,9 @@ def test_models_by_provider(): continue elif k == "sample_spec": continue - elif v["litellm_provider"] == "sagemaker" or v["litellm_provider"] == "bedrock_converse": + elif v["litellm_provider"] in ("sagemaker", "bedrock_converse", "openinfer"): continue - elif v.get("mode") in ("search", "decisions", "evaluation"): + elif v.get("mode") in ("search", "decisions", "evaluation", "extraction"): continue else: providers.add(v["litellm_provider"])