Skip to content

Commit 09402df

Browse files
authored
fix: Allow configuring ofrep provider requests to api at base … (#142)
Signed-off-by: atmask <[email protected]>
1 parent 8a5106d commit 09402df

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

providers/openfeature-provider-ofrep/src/openfeature/contrib/provider/ofrep/__init__.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,12 @@ def resolve_object_details(
107107
FlagType.OBJECT, flag_key, default_value, evaluation_context
108108
)
109109

110+
def _get_ofrep_api_url(self, api_version: str = "v1") -> str:
111+
ofrep_base_url = (
112+
self.base_url if self.base_url.endswith("/") else f"{self.base_url}/"
113+
)
114+
return urljoin(ofrep_base_url, f"ofrep/{api_version}/")
115+
110116
def _resolve(
111117
self,
112118
flag_type: FlagType,
@@ -124,7 +130,7 @@ def _resolve(
124130

125131
try:
126132
response = self.session.post(
127-
urljoin(self.base_url, f"/ofrep/v1/evaluate/flags/{flag_key}"),
133+
urljoin(self._get_ofrep_api_url(), f"evaluate/flags/{flag_key}"),
128134
json=_build_request_data(evaluation_context),
129135
timeout=self.timeout,
130136
headers=self.headers_factory() if self.headers_factory else None,

providers/openfeature-provider-ofrep/tests/test_provider.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,3 +164,17 @@ def test_provider_typecheck_flag_value(ofrep_provider, requests_mock):
164164

165165
with pytest.raises(TypeMismatchError):
166166
ofrep_provider.resolve_boolean_details("flag_key", False)
167+
168+
169+
@pytest.mark.parametrize(
170+
"base_url",
171+
[
172+
"https://localhost:8080",
173+
"https://localhost:8080/",
174+
"https://localhost:8080/tools/feature_flags",
175+
"https://localhost:8080/tools/feature_flags/",
176+
],
177+
)
178+
def test_provider_api_path_resolution(base_url):
179+
provider = OFREPProvider(base_url=base_url)
180+
assert provider._get_ofrep_api_url() == f"{base_url.rstrip('/')}/ofrep/v1/"

0 commit comments

Comments
 (0)