#!/usr/bin/env bash # Local verification harness: pytest smoke tests + optional live HTTP checks. set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" cd "$ROOT" BASE_URL="${BASE_URL:-http://127.0.0.1:8080}" RUN_LIVE="${RUN_LIVE:-0}" if [[ ! -d .venv ]]; then python3 -m venv .venv fi # shellcheck disable=SC1091 source .venv/bin/activate pip install -q -r requirements-dev.txt echo "==> Running pytest smoke tests" pytest -q if [[ "$RUN_LIVE" == "1" ]]; then echo "==> Live HTTP smoke against ${BASE_URL}" curl -fsS "${BASE_URL}/healthz" | python3 -m json.tool curl -fsS "${BASE_URL}/mcp/schema" | python3 -c " import json, sys schema = json.load(sys.stdin) assert 'tools' in schema and 'resources' in schema and 'prompts' in schema print(f\"tools={len(schema['tools'])} resources={len(schema['resources'])} prompts={len(schema['prompts'])}\") " echo "Live smoke passed." else echo "Skipping live HTTP checks (set RUN_LIVE=1 to curl a running server)." fi echo "Local verification complete."