Skip to main content
Glama

MCP Agent Mail

test_cli.py2.77 kB
import asyncio from typing import Any from typer.testing import CliRunner from mcp_agent_mail.cli import app from mcp_agent_mail.db import ensure_schema, get_session from mcp_agent_mail.models import Agent, Project def test_cli_lint(monkeypatch): runner = CliRunner() captured: list[list[str]] = [] def fake_run(command: list[str]) -> None: captured.append(command) monkeypatch.setattr("mcp_agent_mail.cli._run_command", fake_run) result = runner.invoke(app, ["lint"]) assert result.exit_code == 0 assert captured == [["ruff", "check", "--fix", "--unsafe-fixes"]] def test_cli_typecheck(monkeypatch): runner = CliRunner() captured: list[list[str]] = [] def fake_run(command: list[str]) -> None: captured.append(command) monkeypatch.setattr("mcp_agent_mail.cli._run_command", fake_run) result = runner.invoke(app, ["typecheck"]) assert result.exit_code == 0 assert captured == [["uvx", "ty", "check"]] def test_cli_serve_http_uses_settings(isolated_env, monkeypatch): runner = CliRunner() call_args: dict[str, Any] = {} def fake_uvicorn_run(app, host, port, log_level="info"): call_args["app"] = app call_args["host"] = host call_args["port"] = port call_args["log_level"] = log_level monkeypatch.setattr("uvicorn.run", fake_uvicorn_run) result = runner.invoke(app, ["serve-http"]) assert result.exit_code == 0 assert call_args["host"] == "127.0.0.1" assert call_args["port"] == 8765 def test_cli_migrate(monkeypatch): runner = CliRunner() invoked: dict[str, bool] = {"called": False} async def fake_migrate(settings): invoked["called"] = True monkeypatch.setattr("mcp_agent_mail.cli.ensure_schema", fake_migrate) result = runner.invoke(app, ["migrate"]) assert result.exit_code == 0 assert invoked["called"] is True def test_cli_list_projects(isolated_env): runner = CliRunner() async def seed() -> None: await ensure_schema() async with get_session() as session: project = Project(slug="demo", human_key="Demo") session.add(project) await session.commit() await session.refresh(project) session.add( Agent( project_id=project.id, name="BlueLake", program="codex", model="gpt-5", task_description="", ) ) await session.commit() asyncio.run(seed()) result = runner.invoke(app, ["list-projects", "--include-agents"]) assert result.exit_code == 0 assert "demo" in result.stdout assert "BlueLake" not in result.stdout

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/Dicklesworthstone/mcp_agent_mail'

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