diff --git a/tests/test_litellm/llms/manus/responses/test_manus_cost_calculation.py b/tests/test_litellm/llms/manus/responses/test_manus_cost_calculation.py index 302fe3c9344..966f434200f 100644 --- a/tests/test_litellm/llms/manus/responses/test_manus_cost_calculation.py +++ b/tests/test_litellm/llms/manus/responses/test_manus_cost_calculation.py @@ -94,7 +94,7 @@ class TestManusResponsesAPICostCalculation: # Verify cost was calculated assert isinstance(result, ResponsesAPIResponse) assert "response_cost" in result._hidden_params - assert result._hidden_params["response_cost"] == 0.00225 + assert result._hidden_params["response_cost"] == pytest.approx(0.00225) @patch("litellm.llms.openai.responses.transformation.generic_cost_per_token") def test_transform_get_response_api_response_extracts_model_from_response( @@ -133,7 +133,7 @@ class TestManusResponsesAPICostCalculation: # Verify cost was calculated using model from response assert isinstance(result, ResponsesAPIResponse) assert "response_cost" in result._hidden_params - assert result._hidden_params["response_cost"] == 0.0015 + assert result._hidden_params["response_cost"] == pytest.approx(0.0015) @patch("litellm.llms.openai.responses.transformation.generic_cost_per_token") def test_transform_get_response_api_response_fallback_to_logging_obj( @@ -174,7 +174,7 @@ class TestManusResponsesAPICostCalculation: # Verify cost was calculated using model from logging_obj assert isinstance(result, ResponsesAPIResponse) assert "response_cost" in result._hidden_params - assert result._hidden_params["response_cost"] == 0.0015 + assert result._hidden_params["response_cost"] == pytest.approx(0.0015) @patch("litellm.llms.openai.responses.transformation.generic_cost_per_token") def test_cost_calculation_with_missing_usage(self, mock_generic_cost): diff --git a/tests/test_litellm/llms/openai/responses/test_openai_responses_cost_calculation.py b/tests/test_litellm/llms/openai/responses/test_openai_responses_cost_calculation.py index c3e632a767d..21ec3017920 100644 --- a/tests/test_litellm/llms/openai/responses/test_openai_responses_cost_calculation.py +++ b/tests/test_litellm/llms/openai/responses/test_openai_responses_cost_calculation.py @@ -2,18 +2,6 @@ Unit tests for Responses API cost calculation functionality. Tests the fix for issue #26475 - ensuring cost calculation works correctly across all 60+ providers inheriting from OpenAIResponsesAPIConfig. -""" -import json -import os -import sys -from unittest.mock import MagicMock, patch - -import httpx -import pytest - -sys.path.insert( - 0, os.path.abspath("../../../../..") -) # Adds the parent directory to the system path from litellm.llms.openai.responses.transformation import OpenAIResponsesAPIConfig from litellm.types.llms.openai import ( diff --git a/tests/test_litellm/llms/volcengine/responses/test_volcengine_cost_calculation.py b/tests/test_litellm/llms/volcengine/responses/test_volcengine_cost_calculation.py index 39d89435bd2..ccf9a966f28 100644 --- a/tests/test_litellm/llms/volcengine/responses/test_volcengine_cost_calculation.py +++ b/tests/test_litellm/llms/volcengine/responses/test_volcengine_cost_calculation.py @@ -63,7 +63,7 @@ class TestVolcEngineResponsesAPICostCalculation: # Verify cost was calculated assert isinstance(result, ResponsesAPIResponse) assert "response_cost" in result._hidden_params - assert result._hidden_params["response_cost"] == 0.003 # 0.002 + 0.001 + assert result._hidden_params["response_cost"] == pytest.approx(0.003) # 0.002 + 0.001 @patch("litellm.llms.openai.responses.transformation.generic_cost_per_token") def test_transform_response_api_response_with_cached_tokens( @@ -104,7 +104,7 @@ class TestVolcEngineResponsesAPICostCalculation: # Verify cost was calculated with caching assert isinstance(result, ResponsesAPIResponse) assert "response_cost" in result._hidden_params - assert result._hidden_params["response_cost"] == 0.007 + assert result._hidden_params["response_cost"] == pytest.approx(0.007) @patch("litellm.llms.openai.responses.transformation.generic_cost_per_token") def test_transform_streaming_response_completed_calculates_cost( @@ -142,7 +142,7 @@ class TestVolcEngineResponsesAPICostCalculation: # Verify cost was calculated and stored in the response object assert "response_cost" in result.response._hidden_params - assert result.response._hidden_params["response_cost"] == 0.00225 + assert result.response._hidden_params["response_cost"] == pytest.approx(0.00225) def test_transform_streaming_response_non_completed_no_cost(self): """Test that non-completed streaming events don't calculate cost""" @@ -197,7 +197,7 @@ class TestVolcEngineResponsesAPICostCalculation: # Should patch missing output and still calculate cost assert isinstance(result, ResponseCompletedEvent) assert "response_cost" in result.response._hidden_params - assert result.response._hidden_params["response_cost"] == 0.0015 + assert result.response._hidden_params["response_cost"] == pytest.approx(0.0015) @patch("litellm.llms.openai.responses.transformation.generic_cost_per_token") def test_cost_calculation_with_zero_tokens(self, mock_generic_cost):