Commit f6f38a9b
Changed files (2)
src
openai
tests
src/openai/_base_client.py
@@ -592,7 +592,7 @@ class BaseClient(Generic[_HttpxClientT, _DefaultStreamT]):
@base_url.setter
def base_url(self, url: URL | str) -> None:
- self._client.base_url = url if isinstance(url, URL) else URL(url)
+ self._base_url = self._enforce_trailing_slash(url if isinstance(url, URL) else URL(url))
@lru_cache(maxsize=None)
def platform_headers(self) -> Dict[str, str]:
tests/test_client.py
@@ -445,6 +445,14 @@ class TestOpenAI:
assert isinstance(response, Model)
assert response.foo == 2
+ def test_base_url_setter(self) -> None:
+ client = OpenAI(base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True)
+ assert client.base_url == "https://example.com/from_init/"
+
+ client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
+
+ assert client.base_url == "https://example.com/from_setter/"
+
def test_base_url_env(self) -> None:
with update_env(OPENAI_BASE_URL="http://localhost:5000/from/env"):
client = OpenAI(api_key=api_key, _strict_response_validation=True)
@@ -1102,6 +1110,16 @@ class TestAsyncOpenAI:
assert isinstance(response, Model)
assert response.foo == 2
+ def test_base_url_setter(self) -> None:
+ client = AsyncOpenAI(
+ base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True
+ )
+ assert client.base_url == "https://example.com/from_init/"
+
+ client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
+
+ assert client.base_url == "https://example.com/from_setter/"
+
def test_base_url_env(self) -> None:
with update_env(OPENAI_BASE_URL="http://localhost:5000/from/env"):
client = AsyncOpenAI(api_key=api_key, _strict_response_validation=True)