Skip to content

Commit 5e04fa7

Browse files
fix(client): correct base_url setter implementation (#207)
1 parent 7c920a3 commit 5e04fa7

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/finch/_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

+20
Original file line numberDiff line numberDiff line change
@@ -441,6 +441,16 @@ class Model(BaseModel):
441441
assert isinstance(response, Model)
442442
assert response.foo == 2
443443

444+
def test_base_url_setter(self) -> None:
445+
client = Finch(
446+
base_url="https://example.com/from_init", access_token=access_token, _strict_response_validation=True
447+
)
448+
assert client.base_url == "https://example.com/from_init/"
449+
450+
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
451+
452+
assert client.base_url == "https://example.com/from_setter/"
453+
444454
def test_base_url_env(self) -> None:
445455
with update_env(FINCH_BASE_URL="http://localhost:5000/from/env"):
446456
client = Finch(access_token=access_token, _strict_response_validation=True)
@@ -1135,6 +1145,16 @@ class Model(BaseModel):
11351145
assert isinstance(response, Model)
11361146
assert response.foo == 2
11371147

1148+
def test_base_url_setter(self) -> None:
1149+
client = AsyncFinch(
1150+
base_url="https://example.com/from_init", access_token=access_token, _strict_response_validation=True
1151+
)
1152+
assert client.base_url == "https://example.com/from_init/"
1153+
1154+
client.base_url = "https://example.com/from_setter" # type: ignore[assignment]
1155+
1156+
assert client.base_url == "https://example.com/from_setter/"
1157+
11381158
def test_base_url_env(self) -> None:
11391159
with update_env(FINCH_BASE_URL="http://localhost:5000/from/env"):
11401160
client = AsyncFinch(access_token=access_token, _strict_response_validation=True)

0 commit comments

Comments
 (0)