moved llist of apis to global variable and imported in test

Signed-off-by: Francisco Javier Arceo <farceo@redhat.com>
This commit is contained in:
Francisco Javier Arceo 2025-09-16 20:22:18 -04:00
parent e3d98059fc
commit 6db4c39401
2 changed files with 18 additions and 10 deletions

View file

@ -26,6 +26,9 @@ from llama_stack.providers.datatypes import (
logger = get_logger(name=__name__, category="core") logger = get_logger(name=__name__, category="core")
INTERNAL_APIS = {Api.inspect, Api.providers, Api.prompts}
def stack_apis() -> list[Api]: def stack_apis() -> list[Api]:
return list(Api) return list(Api)
@ -70,8 +73,7 @@ def builtin_automatically_routed_apis() -> list[AutoRoutedApiInfo]:
def providable_apis() -> list[Api]: def providable_apis() -> list[Api]:
routing_table_apis = {x.routing_table_api for x in builtin_automatically_routed_apis()} 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: def _load_remote_provider_spec(spec_data: dict[str, Any], api: Api) -> ProviderSpec:

View file

@ -12,7 +12,7 @@ import yaml
from pydantic import BaseModel, Field, ValidationError from pydantic import BaseModel, Field, ValidationError
from llama_stack.core.datatypes import Api, Provider, StackRunConfig 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 from llama_stack.providers.datatypes import ProviderSpec
@ -153,16 +153,22 @@ class TestProviderRegistry:
assert registry[Api.inference]["test_provider"].api == Api.inference assert registry[Api.inference]["test_provider"].api == Api.inference
def test_internal_apis_excluded(self): def test_internal_apis_excluded(self):
"""Test that internal APIs are excluded and other APIs are included in providable APIs.""" """Test that internal APIs are excluded and APIs without provider registries are marked as internal."""
apis = providable_apis() import importlib
internal_apis = {Api.inspect, Api.providers, Api.prompts}
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" 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 apis:
for api in included_apis: module_name = f"llama_stack.providers.registry.{api.name.lower()}"
assert api in apis, f"API {api} should be in providable_apis" 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): def test_external_remote_providers(self, api_directories, mock_providers, base_config, provider_spec_yaml):
"""Test loading external remote providers from YAML files.""" """Test loading external remote providers from YAML files."""