Files
prompts/tests/integration/catalog/test_tool_fallback.py
T
2026-06-20 20:37:09 -05:00

95 lines
2.5 KiB
Python

from __future__ import annotations
import asyncio
import pytest
from personal_mcp import mcp as mcp_module
def _listed_tool_names() -> set[str]:
tools = asyncio.run(mcp_module.mcp.list_tools())
return {tool.name for tool in tools}
@pytest.fixture
def listed_tool_names() -> set[str]:
return _listed_tool_names()
def test_canonical_step6_tools_are_listed(listed_tool_names: set[str]) -> None:
assert {
"list_resources",
"read_resource",
"search_patterns",
"get_pattern_by_id",
"get_skill_document_by_id",
"search_prompts",
"get_prompt_by_id",
}.issubset(listed_tool_names)
def test_catalog_compatibility_alias_tools_are_listed(
listed_tool_names: set[str],
) -> None:
assert {
"catalog_search_patterns",
"catalog_get_pattern_by_id",
"catalog_get_skill_document_by_id",
"catalog_search_prompts",
"catalog_get_prompt_by_id",
}.issubset(listed_tool_names)
@pytest.mark.parametrize(
"skill_id",
[mcp_module.REGISTRY.skills_in_load_order[0], "missing-step6-skill"],
)
def test_skill_document_alias_matches_canonical_payload(skill_id: str) -> None:
canonical = mcp_module.get_skill_document_by_id(skill_id)
alias = mcp_module.catalog_get_skill_document_by_id(skill_id)
assert alias == canonical
def test_search_and_pattern_aliases_match_canonical_payloads() -> None:
search_canonical = mcp_module.search_patterns(
query="mcp",
tags=[],
skip=0,
limit=5,
)
search_alias = mcp_module.catalog_search_patterns(
query="mcp",
tags=[],
skip=0,
limit=5,
)
assert search_alias == search_canonical
sample_skill_id = mcp_module.REGISTRY.skills_in_load_order[0]
pattern_canonical = mcp_module.get_pattern_by_id(sample_skill_id)
pattern_alias = mcp_module.catalog_get_pattern_by_id(sample_skill_id)
assert pattern_alias == pattern_canonical
def test_prompt_aliases_match_canonical_payloads() -> None:
search_canonical = mcp_module.search_prompts(
query="test",
tags=[],
skip=0,
limit=5,
)
search_alias = mcp_module.catalog_search_prompts(
query="test",
tags=[],
skip=0,
limit=5,
)
assert search_alias == search_canonical
sample_prompt_id = mcp_module.REGISTRY.prompts_in_load_order[0]
prompt_canonical = mcp_module.get_prompt_by_id(sample_prompt_id)
prompt_alias = mcp_module.catalog_get_prompt_by_id(sample_prompt_id)
assert prompt_alias == prompt_canonical