fix(openai): treat empty api_key as unset for WIF resolution

This commit is contained in:
Cursor Agent 2026-08-31 19:54:45 +00:00
parent e7dc0213bd
commit ae83444a3e
No known key found for this signature in database
2 changed files with 15 additions and 8 deletions

View file

@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Final
from urllib.parse import urlparse
import litellm
from litellm.secret_managers.main import get_secret_str
from litellm.secret_managers.main import get_secret_str, normalize_nonempty_secret_str
from .common_utils import OpenAIError
@ -45,7 +45,10 @@ def resolve_openai_workload_identity_config(
api_key: str | None,
api_base: str | None,
) -> OpenAIWorkloadIdentityConfig | None:
if api_key or get_secret_str("OPENAI_API_KEY"):
static_api_key: Final = normalize_nonempty_secret_str(api_key) or normalize_nonempty_secret_str(
get_secret_str("OPENAI_API_KEY")
)
if static_api_key is not None:
return None
effective_api_base: Final = (
api_base or litellm.api_base or get_secret_str("OPENAI_BASE_URL") or get_secret_str("OPENAI_API_BASE")

View file

@ -63,14 +63,18 @@ class TestResolveConfig:
monkeypatch.setenv("OPENAI_API_KEY", "sk-from-env")
assert resolve_openai_workload_identity_config(api_key=None, api_base=None) is None
def test_empty_env_openai_api_key_counts_as_unset(
self, wif_env: OpenAIWorkloadIdentityConfig, monkeypatch: pytest.MonkeyPatch
@pytest.mark.parametrize("empty_key", ["", " "])
def test_empty_api_key_arg_does_not_disable_wif(
self, wif_env: OpenAIWorkloadIdentityConfig, empty_key: str
) -> None:
monkeypatch.setenv("OPENAI_API_KEY", "")
assert resolve_openai_workload_identity_config(api_key=None, api_base=None) == wif_env
assert resolve_openai_workload_identity_config(api_key=empty_key, api_base=None) == wif_env
def test_empty_api_key_param_counts_as_unset(self, wif_env: OpenAIWorkloadIdentityConfig) -> None:
assert resolve_openai_workload_identity_config(api_key="", api_base=None) == wif_env
@pytest.mark.parametrize("empty_key", ["", " "])
def test_empty_env_openai_api_key_does_not_disable_wif(
self, wif_env: OpenAIWorkloadIdentityConfig, monkeypatch: pytest.MonkeyPatch, empty_key: str
) -> None:
monkeypatch.setenv("OPENAI_API_KEY", empty_key)
assert resolve_openai_workload_identity_config(api_key=None, api_base=None) == wif_env
def test_foreign_api_base_disables(self, wif_env: OpenAIWorkloadIdentityConfig) -> None:
assert resolve_openai_workload_identity_config(api_key=None, api_base="https://my-vllm.internal/v1") is None