Files
AI-Profile-Router/dev/test_platform_context_mcp.py
T

62 lines
2.4 KiB
Python

#!/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()