Skip to content

Commit 135d9cf

Browse files
fix(client): correct base_url setter implementation (#919)
Co-Authored-By: tomoish <[email protected]>
1 parent 4233bcd commit 135d9cf

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/openai/_base_client.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ def base_url(self) -> URL:
592592

593593
@base_url.setter
594594
def base_url(self, url: URL | str) -> None:
595-
self._client.base_url = url if isinstance(url, URL) else URL(url)
595+
self._base_url = self._enforce_trailing_slash(url if isinstance(url, URL) else URL(url))
596596

597597
@lru_cache(maxsize=None)
598598
def platform_headers(self) -> Dict[str, str]:

tests/test_client.py

+18
Original file line numberDiff line numberDiff line change
@@ -445,6 +445,14 @@ class Model(BaseModel):
445445
assert isinstance(response, Model)
446446
assert response.foo == 2
447447

448+
def test_base_url_setter(self) -> None:
449+
client = OpenAI(base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True)
450+
assert client.base_url == "https://example.com/from_init/"
451+
452+
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
453+
454+
assert client.base_url == "https://example.com/from_setter/"
455+
448456
def test_base_url_env(self) -> None:
449457
with update_env(OPENAI_BASE_URL="http://localhost:5000/from/env"):
450458
client = OpenAI(api_key=api_key, _strict_response_validation=True)
@@ -1102,6 +1110,16 @@ class Model(BaseModel):
11021110
assert isinstance(response, Model)
11031111
assert response.foo == 2
11041112

1113+
def test_base_url_setter(self) -> None:
1114+
client = AsyncOpenAI(
1115+
base_url="https://example.com/from_init", api_key=api_key, _strict_response_validation=True
1116+
)
1117+
assert client.base_url == "https://example.com/from_init/"
1118+
1119+
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
1120+
1121+
assert client.base_url == "https://example.com/from_setter/"
1122+
11051123
def test_base_url_env(self) -> None:
11061124
with update_env(OPENAI_BASE_URL="http://localhost:5000/from/env"):
11071125
client = AsyncOpenAI(api_key=api_key, _strict_response_validation=True)

0 commit comments

Comments
 (0)