From 56c71c896aaa0d28287fd5a2dcba41b9ce09bc25 Mon Sep 17 00:00:00 2001 From: shrey kharbanda Date: Thu, 24 Sep 2026 16:34:08 +0000 Subject: [PATCH] test(integration): pin Sail service tier pricing, completion_window wire and Responses extra_body billing Regression sweep cell for PR 42840. Extends pricing/test_service_tier_pricing.py with balanced and flex tier billing, base-rate fallback, non-Sail extra_body.metadata shallow overwrite and the sail/ completion_window translation, adds pricing/test_responses_extra_body_pricing.py and providers/test_sail_audio_transcription.py (BUG skip, the tip answers 500), and records scripted-scenario POST bodies in the harness upstream so the tests can assert the whole outbound body. MUTATIONS.md holds the review evidence and is not for merge --- MUTATIONS.md | 188 ++++++++++++++++++ tests/integration/_support/upstream.py | 13 ++ .../test_responses_extra_body_pricing.py | 155 +++++++++++++++ .../pricing/test_service_tier_pricing.py | 125 +++++++++++- .../test_sail_audio_transcription.py | 33 +++ 5 files changed, 503 insertions(+), 11 deletions(-) create mode 100644 MUTATIONS.md create mode 100644 tests/integration/pricing/test_responses_extra_body_pricing.py create mode 100644 tests/integration/providers/test_sail_audio_transcription.py diff --git a/MUTATIONS.md b/MUTATIONS.md new file mode 100644 index 00000000000..b507e54ecc1 --- /dev/null +++ b/MUTATIONS.md @@ -0,0 +1,188 @@ +# Mutation evidence for litellm_sail_tests_integration + +Review evidence for the tests/integration cell of the PR 42840 regression sweep. Not for merge + +Tip: d7bc17fa47ee9acacd441e6b3349c7aa9e1c6c62 (litellm_add_sail_provider). Base: 0c1c3e18d5250ec3a0e1e3f287e0b93e2906d900 + +Every run below used the existing integration harness against a real proxy (`LITELLM_LOCAL_MODEL_COST_MAP=True`, +`STORE_MODEL_IN_DB=True`, `num_retries: 0`), Postgres, Redis and the scripted upstream from +`tests/integration/_support/upstream.py`. Two stacks ran side by side: tip (upstream 8190, proxy 4000, database +`integration_tip`) and base (upstream 8191, proxy 4001, database `integration_base`). The proxy was restarted after +every apply and after every restore so the mutated module was actually the one serving + +Runner used for every pytest invocation (paths shortened below as `run