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

1"""Smoke-test that an installed GCO exposes a working, self-contained gco-mcp. 

2 

3Run with the target environment interpreter: 

4 

5 <venv>/bin/python scripts/mcp_install_smoke.py 

6 

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""" 

11 

12import sys 

13from pathlib import Path 

14 

15import mcp 

16 

17import gco_mcp 

18import gco_mcp.cli_runner as cli_runner 

19import gco_mcp.run_mcp as run_mcp 

20 

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() 

25 

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) 

35 

36if problems: 

37 print("MCP install smoke test FAILED:") 

38 for p in problems: 

39 print("- " + p) 

40 sys.exit(1) 

41 

42print("MCP install smoke test OK") 

43print("gco_mcp: " + str(pkg)) 

44print("mcp SDK: " + str(mcp.__file__)) 

45print("bundled gco: " + gco_exe)