Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions open_feature/open_feature_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from open_feature.exception.exceptions import GeneralError
from open_feature.open_feature_client import OpenFeatureClient
from open_feature.provider.metadata import Metadata
from open_feature.provider.no_op_provider import NoOpProvider
from open_feature.provider.provider import AbstractProvider

Expand All @@ -24,3 +25,8 @@ def set_provider(provider: AbstractProvider):
def get_provider() -> typing.Optional[AbstractProvider]:
global _provider
return _provider


def get_provider_metadata() -> typing.Optional[Metadata]:
global _provider
return _provider.get_metadata()
20 changes: 19 additions & 1 deletion tests/test_open_feature_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

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.open_feature_api import (
get_client,
get_provider,
set_provider,
get_provider_metadata,
)
from open_feature.provider.metadata import Metadata
from open_feature.provider.no_op_provider import NoOpProvider


Expand Down Expand Up @@ -52,3 +58,15 @@ def test_should_return_a_provider_if_setup_correctly():
# Then
assert provider
assert isinstance(provider, NoOpProvider)


def test_should_retrieve_metadata_for_configured_provider():
# Given
set_provider(NoOpProvider())

# When
metadata = get_provider_metadata()

# Then
assert isinstance(metadata, Metadata)
assert metadata.name == "No-op Provider"