From ce701d37c0e1432883e18334447cfd47edeca11c Mon Sep 17 00:00:00 2001 From: seven7763 Date: Sun, 6 Sep 2026 10:39:36 +0800 Subject: [PATCH] test: add param mapping and URL construction coverage for daoxe provider --- .../llms/openai_like/test_daoxe_provider.py | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) diff --git a/tests/test_litellm/llms/openai_like/test_daoxe_provider.py b/tests/test_litellm/llms/openai_like/test_daoxe_provider.py index 743e5961737..e1d7f9d2d96 100644 --- a/tests/test_litellm/llms/openai_like/test_daoxe_provider.py +++ b/tests/test_litellm/llms/openai_like/test_daoxe_provider.py @@ -46,3 +46,114 @@ def test_daoxe_responses_api_config(): ) assert config is not None assert config.custom_llm_provider == "daoxe" + + +def test_daoxe_max_completion_tokens_mapped(): + from litellm.llms.openai_like.dynamic_config import create_config_class + from litellm.llms.openai_like.json_loader import JSONProviderRegistry + + provider = JSONProviderRegistry.get("daoxe") + assert provider is not None + config = create_config_class(provider)() + + optional_params = config.map_openai_params( + non_default_params={"max_completion_tokens": 512}, + optional_params={}, + model="account-model", + drop_params=False, + ) + assert optional_params["max_tokens"] == 512 + assert "max_completion_tokens" not in optional_params + + +def test_daoxe_passthrough_params_kept(): + from litellm.llms.openai_like.dynamic_config import create_config_class + from litellm.llms.openai_like.json_loader import JSONProviderRegistry + + provider = JSONProviderRegistry.get("daoxe") + assert provider is not None + config = create_config_class(provider)() + + optional_params = config.map_openai_params( + non_default_params={"temperature": 0.4, "top_p": 0.9}, + optional_params={}, + model="account-model", + drop_params=False, + ) + assert optional_params["temperature"] == 0.4 + assert optional_params["top_p"] == 0.9 + + +def test_daoxe_chat_completions_url(): + from litellm.llms.openai_like.dynamic_config import create_config_class + from litellm.llms.openai_like.json_loader import JSONProviderRegistry + + provider = JSONProviderRegistry.get("daoxe") + assert provider is not None + config = create_config_class(provider)() + + url = config.get_complete_url( + api_base=None, + api_key="test-key", + model="account-model", + optional_params={}, + litellm_params={}, + ) + assert url == "https://daoxe.com/v1/chat/completions" + + +def test_daoxe_chat_completions_url_custom_base(): + from litellm.llms.openai_like.dynamic_config import create_config_class + from litellm.llms.openai_like.json_loader import JSONProviderRegistry + + provider = JSONProviderRegistry.get("daoxe") + assert provider is not None + config = create_config_class(provider)() + + url = config.get_complete_url( + api_base="https://api.daoxe.com/v1", + api_key="test-key", + model="account-model", + optional_params={}, + litellm_params={}, + ) + assert url == "https://api.daoxe.com/v1/chat/completions" + + +def test_daoxe_responses_url(): + from litellm.utils import ProviderConfigManager + + config = ProviderConfigManager.get_provider_responses_api_config( + provider="daoxe", + model="daoxe/account-model", + ) + assert config is not None + url = config.get_complete_url(api_base=None, litellm_params={}) + assert url == "https://daoxe.com/v1/responses" + + +def test_daoxe_env_base_overrides_default(monkeypatch): + from litellm.llms.openai_like.dynamic_config import create_config_class + from litellm.llms.openai_like.json_loader import JSONProviderRegistry + + monkeypatch.setenv("DAOXE_API_BASE", "https://api.daoxe.com/v1") + provider = JSONProviderRegistry.get("daoxe") + assert provider is not None + config = create_config_class(provider)() + + resolved_base, _resolved_key = config._get_openai_compatible_provider_info( + None, None + ) + assert resolved_base == "https://api.daoxe.com/v1" + + +def test_daoxe_responses_config_url_construction(): + from litellm.utils import ProviderConfigManager + + config = ProviderConfigManager.get_provider_responses_api_config( + provider="daoxe", + model="daoxe/account-model", + ) + assert config is not None + url = config.get_complete_url(api_base=None, litellm_params={}) + assert url == "https://daoxe.com/v1/responses"