mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-14 23:21:35 +00:00
increase test coverage
This commit is contained in:
parent
48c7b26fda
commit
d52f4d1821
2 changed files with 105 additions and 0 deletions
|
|
@ -258,6 +258,97 @@ def test_get_models_no_api_key_raises():
|
|||
config.get_models()
|
||||
|
||||
|
||||
def test_get_models_pagination():
|
||||
"""get_models should follow nextPageToken to fetch all pages."""
|
||||
config = FireworksAIConfig()
|
||||
|
||||
page1 = MagicMock()
|
||||
page1.status_code = 200
|
||||
page1.json.return_value = {
|
||||
"models": [{"name": "accounts/fireworks/models/model-a"}],
|
||||
"nextPageToken": "tok2",
|
||||
}
|
||||
|
||||
page2 = MagicMock()
|
||||
page2.status_code = 200
|
||||
page2.json.return_value = {
|
||||
"models": [{"name": "accounts/fireworks/models/model-b"}],
|
||||
}
|
||||
|
||||
with (
|
||||
patch(
|
||||
"litellm.module_level_client.get", side_effect=[page1, page2]
|
||||
) as mock_get,
|
||||
patch(
|
||||
"litellm.llms.fireworks_ai.chat.transformation.get_secret_str",
|
||||
return_value=None,
|
||||
),
|
||||
):
|
||||
result = config.get_models(api_key="test-key")
|
||||
|
||||
assert mock_get.call_count == 2
|
||||
# Second call should include pageToken
|
||||
second_params = mock_get.call_args_list[1].kwargs.get("params", {})
|
||||
assert second_params.get("pageToken") == "tok2"
|
||||
assert result == [
|
||||
"fireworks_ai/accounts/fireworks/models/model-a",
|
||||
"fireworks_ai/accounts/fireworks/models/model-b",
|
||||
]
|
||||
|
||||
|
||||
def test_get_models_api_error_logs_warning():
|
||||
"""get_models should log a warning and return empty on non-200 response."""
|
||||
config = FireworksAIConfig()
|
||||
|
||||
error_response = MagicMock()
|
||||
error_response.status_code = 403
|
||||
error_response.text = "Forbidden"
|
||||
|
||||
with (
|
||||
patch("litellm.module_level_client.get", return_value=error_response),
|
||||
patch(
|
||||
"litellm.llms.fireworks_ai.chat.transformation.get_secret_str",
|
||||
return_value=None,
|
||||
),
|
||||
patch(
|
||||
"litellm.llms.fireworks_ai.chat.transformation.verbose_logger"
|
||||
) as mock_logger,
|
||||
):
|
||||
result = config.get_models(api_key="test-key")
|
||||
|
||||
assert result == []
|
||||
mock_logger.warning.assert_called_once()
|
||||
assert "Fireworks AI" in mock_logger.warning.call_args[0][0]
|
||||
|
||||
|
||||
def test_get_models_account_id_equals_fireworks_no_duplicate_query():
|
||||
"""When FIREWORKS_ACCOUNT_ID is 'fireworks', should not query the same account twice."""
|
||||
config = FireworksAIConfig()
|
||||
|
||||
mock_response = MagicMock()
|
||||
mock_response.status_code = 200
|
||||
mock_response.json.return_value = {
|
||||
"models": [{"name": "accounts/fireworks/models/deepseek-v3p2"}]
|
||||
}
|
||||
|
||||
with (
|
||||
patch(
|
||||
"litellm.module_level_client.get", return_value=mock_response
|
||||
) as mock_get,
|
||||
patch(
|
||||
"litellm.llms.fireworks_ai.chat.transformation.get_secret_str",
|
||||
side_effect=lambda key: (
|
||||
"fireworks" if key == "FIREWORKS_ACCOUNT_ID" else None
|
||||
),
|
||||
),
|
||||
):
|
||||
result = config.get_models(api_key="test-key")
|
||||
|
||||
# Should only query once (not duplicate for account_id == "fireworks")
|
||||
mock_get.assert_called_once()
|
||||
assert result == ["fireworks_ai/accounts/fireworks/models/deepseek-v3p2"]
|
||||
|
||||
|
||||
def test_transform_messages_helper_removes_provider_specific_fields():
|
||||
"""
|
||||
Test that _transform_messages_helper removes provider_specific_fields from messages.
|
||||
|
|
|
|||
|
|
@ -108,6 +108,20 @@ class TestValidateAnthropicMessagesEnvironment:
|
|||
)
|
||||
assert api_base == "https://custom.example.com"
|
||||
|
||||
def test_should_not_set_auth_when_no_key_available(self, config):
|
||||
with patch(
|
||||
"litellm.llms.fireworks_ai.messages.transformation.get_secret_str",
|
||||
return_value=None,
|
||||
):
|
||||
headers, _ = config.validate_anthropic_messages_environment(
|
||||
headers={},
|
||||
model="claude-3-5-sonnet",
|
||||
messages=[],
|
||||
optional_params={},
|
||||
litellm_params={},
|
||||
)
|
||||
assert "Authorization" not in headers
|
||||
|
||||
|
||||
class TestGetCompleteUrl:
|
||||
"""Tests for get_complete_url."""
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue