Add test to cover combined usage objects

This commit is contained in:
Liam McDonald 2026-06-02 11:10:08 -07:00
parent 926b40041b
commit 4d02f18ab6

View file

@ -385,6 +385,51 @@ def test_handle_realtime_stream_cost_calculation():
assert cost == 0.0 # No usage, no cost
def test_realtime_stream_combines_text_and_audio_token_details():
"""Realtime response.done usage with input_token_details / output_token_details."""
from litellm.cost_calculator import RealtimeAPITokenUsageProcessor
results: OpenAIRealtimeStreamList = [
{"type": "session.created", "session": {"model": "gpt-4o-realtime-preview"}},
{
"type": "response.done",
"response": {
"usage": {
"input_tokens": 10,
"output_tokens": 20,
"total_tokens": 30,
"input_token_details": {"text_tokens": 8, "audio_tokens": 2},
"output_token_details": {"text_tokens": 12, "audio_tokens": 8},
}
},
},
{
"type": "response.done",
"response": {
"usage": {
"input_tokens": 5,
"output_tokens": 15,
"total_tokens": 20,
"input_token_details": {"text_tokens": 3, "audio_tokens": 2},
"output_token_details": {"text_tokens": 5, "audio_tokens": 10},
}
},
},
]
combined = RealtimeAPITokenUsageProcessor.collect_and_combine_usage_from_realtime_stream_results(
results=results,
)
assert combined.prompt_tokens_details is not None
assert combined.prompt_tokens_details.text_tokens == 11
assert combined.prompt_tokens_details.audio_tokens == 4
assert combined.completion_tokens_details is not None
assert combined.completion_tokens_details.text_tokens == 17
assert combined.completion_tokens_details.audio_tokens == 18
def test_custom_pricing_with_router_model_id():
from litellm import Router