python-sdk/tests/test_open_feature_api.py

55 lines
1.4 KiB
Python

import pytest
from open_feature.exception.error_code import ErrorCode
from open_feature.exception.exceptions import GeneralError
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_not_raise_exception_with_noop_client():
# Given
# No provider has been set
# When
client = get_client(name="Default Provider", version="1.0")
# Then
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():
# Given
set_provider(NoOpProvider())
# When
client = get_client(name="No-op Provider", version="1.0")
# Then
assert client.name == "No-op Provider"
assert client.version == "1.0"
assert isinstance(client.provider, NoOpProvider)
def test_should_try_set_provider_and_fail_if_none_provided():
# Given
# When
with pytest.raises(GeneralError) as ge:
set_provider(provider=None)
# Then
assert ge.value.error_message == "No provider"
assert ge.value.error_code == ErrorCode.GENERAL
def test_should_return_a_provider_if_setup_correctly():
# Given
set_provider(NoOpProvider())
# When
provider = get_provider()
# Then
assert provider
assert isinstance(provider, NoOpProvider)