Skip to content

Commit 2a14ffa

Browse files
authored
fix: FlagNotFound not raised for non-existing features
1 parent 897350a commit 2a14ffa

2 files changed

Lines changed: 23 additions & 0 deletions

File tree

‎openfeature_flagsmith/provider.py‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,10 @@ def _resolve(
278278
) -> FlagResolutionDetails:
279279
try:
280280
flag = self._get_flags(evaluation_context).get_flag(flag_key)
281+
except FlagsmithFeatureDoesNotExistError as e:
282+
raise FlagNotFoundError(
283+
error_message="Flag '%s' was not found." % flag_key
284+
) from e
281285
except FlagsmithClientError as e:
282286
raise FlagsmithProviderError(
283287
error_code=ErrorCode.GENERAL,

‎tests/test_provider.py‎

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,25 @@ def test_resolve_string_details_when_flagsmith_error(
293293
)
294294

295295

296+
def test_resolve_string_details_when_feature_does_not_exist(
297+
mock_flagsmith_client: MagicMock,
298+
) -> None:
299+
# Given
300+
key = "my_feature"
301+
default_value = "default"
302+
303+
provider = FlagsmithProvider(mock_flagsmith_client)
304+
mock_flagsmith_client.get_environment_flags.return_value = Flags({})
305+
306+
# When
307+
with pytest.raises(FlagNotFoundError) as e:
308+
provider.resolve_string_details(key, default_value=default_value)
309+
310+
# Then
311+
assert e.value.error_code == ErrorCode.FLAG_NOT_FOUND
312+
assert e.value.error_message == f"Flag '{key}' was not found."
313+
314+
296315
def test_identity_flags_are_used_if_targeting_key_provided(
297316
mock_flagsmith_client: MagicMock,
298317
) -> None:

0 commit comments

Comments
 (0)