Skip to content

Commit 7883ff3

Browse files
Adding warn message
Signed-off-by: Thomas Poignant <thomas.poignant@gofeatureflag.org>
1 parent 4af0a11 commit 7883ff3

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import logging
12
import re
23
from collections.abc import Mapping, Sequence
34
from datetime import datetime, timedelta, timezone
@@ -30,6 +31,8 @@
3031

3132
__all__ = ["OFREPProvider"]
3233

34+
logger = logging.getLogger("openfeature.contrib.ofrep")
35+
3336

3437
TypeMap = dict[
3538
FlagType,
@@ -188,6 +191,9 @@ def _handle_error(self, exception: requests.RequestException) -> NoReturn:
188191
try:
189192
error_code = ErrorCode(data["errorCode"])
190193
except ValueError:
194+
logger.warning(
195+
"Invalid errorCode %r, falling back to GENERAL", data.get("errorCode")
196+
)
191197
error_code = ErrorCode.GENERAL
192198
error_details = data["errorDetails"]
193199

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

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import logging
2+
13
import pytest
24

35
from openfeature.contrib.provider.ofrep import OFREPProvider
@@ -155,6 +157,28 @@ def test_provider_invalid_context(ofrep_provider, requests_mock):
155157
ofrep_provider.resolve_boolean_details("flag_key", False)
156158

157159

160+
def test_provider_invalid_error_code_logs_warning(
161+
ofrep_provider, requests_mock, caplog
162+
):
163+
requests_mock.post(
164+
"http://localhost:8080/ofrep/v1/evaluate/flags/flag_key",
165+
status_code=400,
166+
json={
167+
"key": "flag_key",
168+
"errorCode": "UNKNOWN_CODE",
169+
"errorDetails": "Something went wrong",
170+
},
171+
)
172+
173+
with (
174+
caplog.at_level(logging.WARNING, logger="openfeature.contrib.ofrep"),
175+
pytest.raises(GeneralError),
176+
):
177+
ofrep_provider.resolve_boolean_details("flag_key", False)
178+
179+
assert any("UNKNOWN_CODE" in record.message for record in caplog.records)
180+
181+
158182
def test_provider_invalid_response(ofrep_provider, requests_mock):
159183
requests_mock.post(
160184
"http://localhost:8080/ofrep/v1/evaluate/flags/flag_key", text="invalid"

0 commit comments

Comments
 (0)