feat: defaults to NoOpProvider (#66)
* feat: defaults to NoOpProvider ensures a provider will always be returned Signed-off-by: Tom Carrio <tom@carrio.dev> * test: update for default provider being safe with default Signed-off-by: Tom Carrio <tom@carrio.dev> * chore: fix misspelling in test case Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com> Signed-off-by: Tom Carrio <tom@carrio.dev> Signed-off-by: Tom Carrio <tom@carrio.dev> Co-authored-by: Michael Beemer <beeme1mr@users.noreply.github.com>
This commit is contained in:
parent
3e2c10212a
commit
9276d35798
|
|
@ -2,18 +2,15 @@ import typing
|
|||
|
||||
from open_feature.exception.exceptions import GeneralError
|
||||
from open_feature.open_feature_client import OpenFeatureClient
|
||||
from open_feature.provider.no_op_provider import NoOpProvider
|
||||
from open_feature.provider.provider import AbstractProvider
|
||||
|
||||
_provider: typing.Optional[AbstractProvider] = None
|
||||
_provider: AbstractProvider = NoOpProvider()
|
||||
|
||||
|
||||
def get_client(
|
||||
name: typing.Optional[str] = None, version: typing.Optional[str] = None
|
||||
) -> OpenFeatureClient:
|
||||
if _provider is None:
|
||||
raise GeneralError(
|
||||
error_message="Provider not set. Call set_provider before using get_client"
|
||||
)
|
||||
return OpenFeatureClient(name=name, version=version, provider=_provider)
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -6,18 +6,16 @@ from open_feature.open_feature_api import get_client, get_provider, set_provider
|
|||
from open_feature.provider.no_op_provider import NoOpProvider
|
||||
|
||||
|
||||
def test_should_raise_exception_with_nop_client():
|
||||
def test_should_not_raise_exception_with_noop_client():
|
||||
# Given
|
||||
# No provider has been set
|
||||
# When
|
||||
with pytest.raises(GeneralError) as ge:
|
||||
get_client()
|
||||
client = get_client(name="Default Provider", version="1.0")
|
||||
|
||||
# Then
|
||||
assert ge.value
|
||||
assert (
|
||||
ge.value.error_message
|
||||
== "Provider not set. Call set_provider before using get_client"
|
||||
)
|
||||
assert ge.value.error_code == ErrorCode.GENERAL
|
||||
assert client.name == "Default Provider"
|
||||
assert client.version == "1.0"
|
||||
assert isinstance(client.provider, NoOpProvider)
|
||||
|
||||
|
||||
def test_should_return_open_feature_client_when_configured_correctly():
|
||||
|
|
|
|||
Loading…
Reference in New Issue