diff --git a/openbb_sdk/sdk/core/pyproject.toml b/openbb_sdk/sdk/core/pyproject.toml index 99d6bdbf9ee..753b43804c4 100644 --- a/openbb_sdk/sdk/core/pyproject.toml +++ b/openbb_sdk/sdk/core/pyproject.toml @@ -26,6 +26,7 @@ openbb-provider = { path = "../provider" } [tool.poetry.group.dev.dependencies] openbb-provider = { path = "../provider" } +pytest = "^6.2.2" [build-system] requires = ["poetry-core"] diff --git a/openbb_sdk/sdk/core/tests/test_provider_interface.py b/openbb_sdk/sdk/core/tests/test_provider_interface.py new file mode 100644 index 00000000000..e61fdda19ca --- /dev/null +++ b/openbb_sdk/sdk/core/tests/test_provider_interface.py @@ -0,0 +1,100 @@ +"""Test provider interface.""" +# pylint: disable=redefined-outer-name + +import pytest +from openbb_core.app.provider_interface import ( + ProviderChoices, + ProviderInterface, + ProviderRegistry, + get_provider_interface, +) + + +@pytest.fixture(scope="module") +def provider_interface(): + """Set up provider_interface.""" + return ProviderInterface() + + +def test_init(provider_interface): + """Test init.""" + assert provider_interface + + +def test_get_provider_interface(): + """Test get provider interface.""" + assert isinstance(get_provider_interface(), ProviderInterface) + + +def test_map(provider_interface): + """Test map.""" + provider_interface_map = provider_interface.map + assert isinstance(provider_interface_map, dict) + assert len(provider_interface_map) > 0 + assert "StockEOD" in provider_interface_map + + +def test_required_credentials(provider_interface): + """Test required credentials.""" + required_credentials = provider_interface.required_credentials + assert isinstance(required_credentials, dict) + assert len(required_credentials) > 0 + + +def test_model_providers(provider_interface): + """Test model providers.""" + model_providers = provider_interface.model_providers + assert isinstance(model_providers, dict) + assert len(model_providers) > 0 + + +def test_params(provider_interface): + """Test params.""" + params = provider_interface.params + assert isinstance(params, dict) + assert len(params) > 0 + assert "StockEOD" in params + + +def test_data(provider_interface): + """Test data.""" + data = provider_interface.data + assert isinstance(data, dict) + assert len(data) > 0 + assert "StockEOD" in data + + +def test_merged_data(provider_interface): + """Test merged data.""" + merged_data = provider_interface.merged_data + assert isinstance(merged_data, dict) + assert len(merged_data) > 0 + assert "StockEOD" in merged_data + + +def test_providers_literal(provider_interface): + """Test providers literal.""" + providers_literal = provider_interface.providers_literal + assert isinstance(type(providers_literal), type) + assert len(providers_literal.__args__) > 0 + assert "openbb" not in providers_literal.__args__ + + +def test_provider_choices(provider_interface): + """Test provider choices.""" + provider_choices = provider_interface.provider_choices + assert isinstance(provider_choices, type(ProviderChoices)) + + +def test_models(provider_interface): + """Test models.""" + models = provider_interface.models + assert isinstance(models, list) + assert len(models) > 0 + assert "StockEOD" in models + + +def test_build_registry(provider_interface): + """Test build registry.""" + build_registry = provider_interface.build_registry() + assert isinstance(build_registry, ProviderRegistry)