From 6db4c39401f7b7761c5919b6a82b9a66dddbcfcd Mon Sep 17 00:00:00 2001 From: Francisco Javier Arceo Date: Tue, 16 Sep 2025 20:22:18 -0400 Subject: [PATCH] moved llist of apis to global variable and imported in test Signed-off-by: Francisco Javier Arceo --- llama_stack/core/distribution.py | 6 ++++-- tests/unit/distribution/test_distribution.py | 22 +++++++++++++------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/llama_stack/core/distribution.py b/llama_stack/core/distribution.py index 3e09f0ccc..c104b6764 100644 --- a/llama_stack/core/distribution.py +++ b/llama_stack/core/distribution.py @@ -26,6 +26,9 @@ from llama_stack.providers.datatypes import ( logger = get_logger(name=__name__, category="core") +INTERNAL_APIS = {Api.inspect, Api.providers, Api.prompts} + + def stack_apis() -> list[Api]: return list(Api) @@ -70,8 +73,7 @@ def builtin_automatically_routed_apis() -> list[AutoRoutedApiInfo]: def providable_apis() -> list[Api]: routing_table_apis = {x.routing_table_api for x in builtin_automatically_routed_apis()} - internal_apis = {Api.inspect, Api.providers, Api.prompts} - return [api for api in Api if api not in routing_table_apis and api not in internal_apis] + return [api for api in Api if api not in routing_table_apis and api not in INTERNAL_APIS] def _load_remote_provider_spec(spec_data: dict[str, Any], api: Api) -> ProviderSpec: diff --git a/tests/unit/distribution/test_distribution.py b/tests/unit/distribution/test_distribution.py index 00f7170d5..c6c2eb2c7 100644 --- a/tests/unit/distribution/test_distribution.py +++ b/tests/unit/distribution/test_distribution.py @@ -12,7 +12,7 @@ import yaml from pydantic import BaseModel, Field, ValidationError from llama_stack.core.datatypes import Api, Provider, StackRunConfig -from llama_stack.core.distribution import get_provider_registry, providable_apis +from llama_stack.core.distribution import INTERNAL_APIS, get_provider_registry, providable_apis from llama_stack.providers.datatypes import ProviderSpec @@ -153,16 +153,22 @@ class TestProviderRegistry: assert registry[Api.inference]["test_provider"].api == Api.inference def test_internal_apis_excluded(self): - """Test that internal APIs are excluded and other APIs are included in providable APIs.""" - apis = providable_apis() - internal_apis = {Api.inspect, Api.providers, Api.prompts} + """Test that internal APIs are excluded and APIs without provider registries are marked as internal.""" + import importlib - for internal_api in internal_apis: + apis = providable_apis() + + for internal_api in INTERNAL_APIS: assert internal_api not in apis, f"Internal API {internal_api} should not be in providable_apis" - included_apis = {Api.inference, Api.safety, Api.agents} - for api in included_apis: - assert api in apis, f"API {api} should be in providable_apis" + for api in apis: + module_name = f"llama_stack.providers.registry.{api.name.lower()}" + try: + importlib.import_module(module_name) + except ImportError as err: + raise AssertionError( + f"API {api} is in providable_apis but has no provider registry module ({module_name})" + ) from err def test_external_remote_providers(self, api_directories, mock_providers, base_config, provider_spec_yaml): """Test loading external remote providers from YAML files."""