Skip to main content
Glama
test_search_processes.py4.04 kB
"""Unit tests for search_processes MCP tool. Tests the search_processes tool implementation per mcp-tools.json contract. """ from __future__ import annotations from typing import TYPE_CHECKING if TYPE_CHECKING: from pathlib import Path class TestSearchProcessesImpl: """Tests for search_processes_impl function (T023).""" def test_search_processes_impl_success(self, temp_dir: Path) -> None: """Test successful process search.""" from sso_mcp_server.processes.service import ProcessService from sso_mcp_server.tools.search_processes import search_processes_impl (temp_dir / "deploy.md").write_text( """--- name: Deployment Process description: How to deploy --- Deploy to production. """ ) (temp_dir / "review.md").write_text( """--- name: Code Review description: Review code --- Review process. """ ) service = ProcessService(temp_dir) result = search_processes_impl("deploy", service) assert "error" not in result assert result["query"] == "deploy" assert result["count"] >= 1 assert result["total_processes"] == 2 assert "results" in result assert result["results"][0]["name"] == "Deployment Process" def test_search_processes_impl_no_matches(self, temp_dir: Path) -> None: """Test search with no matches returns message.""" from sso_mcp_server.processes.service import ProcessService from sso_mcp_server.tools.search_processes import search_processes_impl (temp_dir / "test.md").write_text( """--- name: Test Process --- Content. """ ) service = ProcessService(temp_dir) result = search_processes_impl("nonexistent", service) assert "error" not in result assert result["count"] == 0 assert result["results"] == [] assert "message" in result # Should have helpful message def test_search_processes_impl_includes_relevance(self, temp_dir: Path) -> None: """Test that search results include relevance score.""" from sso_mcp_server.processes.service import ProcessService from sso_mcp_server.tools.search_processes import search_processes_impl (temp_dir / "deploy.md").write_text( """--- name: Deploy Guide description: Deployment guide --- Deploy steps. """ ) service = ProcessService(temp_dir) result = search_processes_impl("deploy", service) assert len(result["results"]) == 1 assert "relevance_score" in result["results"][0] assert result["results"][0]["relevance_score"] > 0 def test_search_processes_impl_includes_snippet(self, temp_dir: Path) -> None: """Test that search results include content snippets.""" from sso_mcp_server.processes.service import ProcessService from sso_mcp_server.tools.search_processes import search_processes_impl (temp_dir / "guide.md").write_text( """--- name: Guide --- This guide covers deployment in detail. """ ) service = ProcessService(temp_dir) result = search_processes_impl("deployment", service) assert len(result["results"]) == 1 assert "snippet" in result["results"][0] def test_search_processes_impl_max_50_results(self, temp_dir: Path) -> None: """Test that search returns max 50 results (FR-012a).""" from sso_mcp_server.processes.service import ProcessService from sso_mcp_server.tools.search_processes import search_processes_impl # Create 60 files for i in range(60): (temp_dir / f"process-{i}.md").write_text( f"""--- name: Process {i} description: keyword test --- Content with keyword. """ ) service = ProcessService(temp_dir) result = search_processes_impl("keyword", service) assert result["count"] <= 50 assert len(result["results"]) <= 50 assert result["total_processes"] == 60

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/DauQuangThanh/sso-mcp-server'

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