Introduce pytest smoke tests, run/verify scripts, and Makefile targets so the bridge can be developed and validated without a full cluster deploy. Document the local workflow and agent quickstart in README.
36 lines
1.0 KiB
Bash
Executable File
36 lines
1.0 KiB
Bash
Executable File
#!/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." |