Skip to main content
Glama
aserper

RTFD (Read The F*****g Docs)

by aserper
test_discovery.py2.75 kB
"""Tests for provider auto-discovery mechanism.""" from src.RTFD.providers import discover_providers, get_provider_metadata_all from src.RTFD.providers.base import BaseProvider, ProviderMetadata def test_discover_providers_finds_all(): """Test that discovery finds all providers.""" providers = discover_providers() assert len(providers) == 8 assert "pypi" in providers assert "godocs" in providers assert "github" in providers assert "npm" in providers assert "crates" in providers assert "zig" in providers assert "dockerhub" in providers assert "gcp" in providers def test_all_providers_are_base_provider_subclasses(): """Test that all discovered providers are BaseProvider subclasses.""" providers = discover_providers() for _name, provider_class in providers.items(): assert issubclass(provider_class, BaseProvider) assert provider_class is not BaseProvider def test_provider_metadata(): """Test that all providers have valid metadata.""" providers = discover_providers() for name, provider_class in providers.items(): instance = provider_class(lambda: None) metadata = instance.get_metadata() assert isinstance(metadata, ProviderMetadata) assert metadata.name == name assert isinstance(metadata.description, str) assert isinstance(metadata.expose_as_tool, bool) assert isinstance(metadata.tool_names, list) assert isinstance(metadata.supports_library_search, bool) def test_get_provider_metadata_all(): """Test get_provider_metadata_all returns metadata for all providers.""" metadata_list = get_provider_metadata_all() assert len(metadata_list) == 8 metadata_names = {m.name for m in metadata_list} assert metadata_names == { "pypi", "godocs", "github", "npm", "crates", "zig", "dockerhub", "gcp", } def test_discovery_caches_results(): """Test that discovery caches results and doesn't re-import.""" providers1 = discover_providers() providers2 = discover_providers() # Should return the same dict object (cached) assert providers1 is providers2 def test_provider_tools_metadata(): """Test that providers with expose_as_tool=True have tool_names.""" providers = discover_providers() for _name, provider_class in providers.items(): instance = provider_class(lambda: None) metadata = instance.get_metadata() if metadata.expose_as_tool: assert len(metadata.tool_names) > 0 for tool_name in metadata.tool_names: assert isinstance(tool_name, str) assert len(tool_name) > 0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/aserper/RTFD'

If you have feedback or need assistance with the MCP directory API, please join our Discord server