Coverage for scripts / mcp_install_smoke.py: 100.00%
28 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-09-14 22:07 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-09-14 22:07 +0000
1"""Smoke-test that an installed GCO exposes a working, self-contained gco-mcp.
3Run with the target environment interpreter:
5 <venv>/bin/python scripts/mcp_install_smoke.py
7Asserts the package imports from site-packages (not a working-tree checkout),
8the PyPI mcp SDK is not shadowed by gco_mcp, main() is callable, and the server
9resolves its OWN bundled gco CLI rather than an unrelated one earlier on PATH.
10"""
12import sys
13from pathlib import Path
15import mcp
17import gco_mcp
18import gco_mcp.cli_runner as cli_runner
19import gco_mcp.run_mcp as run_mcp
21bindir = str(Path(sys.executable).parent)
22pkg = gco_mcp.__file__ or (list(gco_mcp.__path__)[0] if gco_mcp.__path__ else "")
23mcp_file = mcp.__file__ or ""
24gco_exe = cli_runner._gco_executable()
26problems = []
27if "site-packages" not in str(pkg):
28 problems.append("gco_mcp not imported from site-packages: " + str(pkg))
29if not callable(getattr(run_mcp, "main", None)):
30 problems.append("gco_mcp.run_mcp.main is not callable")
31if "site-packages/mcp/" not in mcp_file:
32 problems.append("mcp SDK shadowed by gco_mcp: " + mcp_file)
33if not gco_exe.startswith(bindir):
34 problems.append("server resolved a non-bundled gco: " + gco_exe)
36if problems:
37 print("MCP install smoke test FAILED:")
38 for p in problems:
39 print("- " + p)
40 sys.exit(1)
42print("MCP install smoke test OK")
43print("gco_mcp: " + str(pkg))
44print("mcp SDK: " + str(mcp.__file__))
45print("bundled gco: " + gco_exe)