Skip to content

Commit 9276d35

Browse files
tcarriobeeme1mr
andauthored
feat: defaults to NoOpProvider (#66)
* feat: defaults to NoOpProvider ensures a provider will always be returned Signed-off-by: Tom Carrio <[email protected]> * test: update for default provider being safe with default Signed-off-by: Tom Carrio <[email protected]> * chore: fix misspelling in test case Co-authored-by: Michael Beemer <[email protected]> Signed-off-by: Tom Carrio <[email protected]> Signed-off-by: Tom Carrio <[email protected]> Co-authored-by: Michael Beemer <[email protected]>
1 parent 3e2c102 commit 9276d35

File tree

2 files changed

+9
-14
lines changed

2 files changed

+9
-14
lines changed

open_feature/open_feature_api.py

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,15 @@
22

33
from open_feature.exception.exceptions import GeneralError
44
from open_feature.open_feature_client import OpenFeatureClient
5+
from open_feature.provider.no_op_provider import NoOpProvider
56
from open_feature.provider.provider import AbstractProvider
67

7-
_provider: typing.Optional[AbstractProvider] = None
8+
_provider: AbstractProvider = NoOpProvider()
89

910

1011
def get_client(
1112
name: typing.Optional[str] = None, version: typing.Optional[str] = None
1213
) -> OpenFeatureClient:
13-
if _provider is None:
14-
raise GeneralError(
15-
error_message="Provider not set. Call set_provider before using get_client"
16-
)
1714
return OpenFeatureClient(name=name, version=version, provider=_provider)
1815

1916

tests/test_open_feature_api.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,16 @@
66
from open_feature.provider.no_op_provider import NoOpProvider
77

88

9-
def test_should_raise_exception_with_nop_client():
9+
def test_should_not_raise_exception_with_noop_client():
1010
# Given
11+
# No provider has been set
1112
# When
12-
with pytest.raises(GeneralError) as ge:
13-
get_client()
13+
client = get_client(name="Default Provider", version="1.0")
14+
1415
# Then
15-
assert ge.value
16-
assert (
17-
ge.value.error_message
18-
== "Provider not set. Call set_provider before using get_client"
19-
)
20-
assert ge.value.error_code == ErrorCode.GENERAL
16+
assert client.name == "Default Provider"
17+
assert client.version == "1.0"
18+
assert isinstance(client.provider, NoOpProvider)
2119

2220

2321
def test_should_return_open_feature_client_when_configured_correctly():

0 commit comments

Comments
 (0)