#!/usr/bin/env python3 import importlib.util import json import os import tempfile from pathlib import Path def load_module(root: Path, runtime: Path): os.environ.update({ "ATHENA_REPO_ROOT": str(root), "ATHENA_RUNTIME_FILE": str(runtime), }) source = Path(__file__).parents[1] / "platform/mcp/platform_context_mcp.py" spec = importlib.util.spec_from_file_location("platform_context_mcp_test", source) module = importlib.util.module_from_spec(spec) assert spec.loader spec.loader.exec_module(module) return module def main(): with tempfile.TemporaryDirectory() as tmp: root = Path(tmp) / "repo" runtime = Path(tmp) / "runtime.json" (root / "docs").mkdir(parents=True) (root / "config").mkdir(parents=True) (root / "ATHENA.md").write_text("# Athena\nOne short source of truth.\n") (root / "docs/OPERATIONS.md").write_text("# Operations\nRecovery detail.\n") (root / "config/service-catalog.json").write_text(json.dumps({ "services": [{"id": "test", "name": "Test", "address": "127.0.0.1", "port": 9, "protocol": "tcp"}], })) runtime.write_text(json.dumps({ "generated_at": "2100-01-01T00:00:00Z", "source_commit": "abc", "containers": [{"name": "mike-ai-test", "status": "Up"}], "active_inference_profiles": ["fast"], "gpus": [], })) m = load_module(root, runtime) assert len(m.TOOLS) == 5 assert m.overview()["source"] == "ATHENA.md" assert m.current_state()["active_inference_profiles"] == ["fast"] assert m.external_services()["services"][0]["id"] == "test" assert m.search_reference({"query": "Recovery"})["matches"] assert "Operations" in m.read_reference({"path": "docs/OPERATIONS.md"})["content"] missing = m.read_reference({"path": "docs/MISSING.md"}) assert missing["ok"] is False and missing["retry"] is False blocked = m.read_reference({"path": "config/secret.env"}) assert blocked["ok"] is False and blocked["retry"] is False for tool in m.TOOLS: for prop in tool["inputSchema"].get("properties", {}).values(): pattern = prop.get("pattern") if pattern: assert pattern.startswith("^") and pattern.endswith("$") print("PLATFORM_CONTEXT_MCP_TEST_OK") if __name__ == "__main__": main()