structured tests
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
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
|
||||
Reference in New Issue
Block a user