from pathlib import PurePosixPath import pytest from personal_mcp.registry.models.prompt import PromptArgumentEntry from personal_mcp.registry.models.registry import PromptRecord from personal_mcp.registry.models.registry import PromptSummaryPayload pytestmark = pytest.mark.unit def _make_prompt_record() -> PromptRecord: return PromptRecord( prompt_id="demo-prompt", name="demo-prompt", description="demo prompt", version="0.9.0", tags=("testing",), capabilities=("resource://prompts/demo-prompt/document",), arguments={ "topic": PromptArgumentEntry( title="Topic", required=True, description="topic to discuss", ) }, document_uri="resource://prompts/demo-prompt/document", document_relpath=PurePosixPath("prompts/demo-prompt/PROMPT.md"), document_content="# demo", ) def test_prompt_summary_payload_from_record_shape() -> None: record = _make_prompt_record() payload = PromptSummaryPayload.from_record(record).model_dump() assert payload == { "id": "demo-prompt", "name": "demo-prompt", "description": "demo prompt", "tags": ["testing"], "capabilities": ["resource://prompts/demo-prompt/document"], "version": "0.9.0", "document_uri": "resource://prompts/demo-prompt/document", "detail_uri": "resource://catalog/prompts/demo-prompt", }