| #!/usr/bin/env bash |
| set -euo pipefail |
|
|
| SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" |
| BACKEND_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)" |
| cd "${BACKEND_DIR}" |
|
|
| WITH_OPENAI=0 |
| FULL=0 |
| INSTALL=0 |
|
|
| for arg in "$@"; do |
| case "${arg}" in |
| --with-openai) WITH_OPENAI=1 ;; |
| --full) FULL=1 ;; |
| --install) INSTALL=1 ;; |
| *) |
| echo "Unknown arg: ${arg}" |
| echo "Usage: scripts/test_backend.sh [--with-openai] [--full] [--install]" |
| exit 2 |
| ;; |
| esac |
| done |
|
|
| if [[ -f ".env.test" ]]; then |
| set -a |
| |
| source ".env.test" |
| set +a |
| elif [[ -f ".env.codex" ]]; then |
| set -a |
| |
| source ".env.codex" |
| set +a |
| fi |
|
|
| if [[ ! -x ".venv/bin/python" ]]; then |
| python3 -m venv .venv |
| INSTALL=1 |
| fi |
|
|
| if [[ "${INSTALL}" -eq 1 ]] || ! .venv/bin/python -c "import pytest" >/dev/null 2>&1; then |
| .venv/bin/python -m pip install --upgrade pip |
| .venv/bin/python -m pip install -r requirements.txt |
| fi |
|
|
| export PYTHONPATH="${BACKEND_DIR}:${PYTHONPATH:-}" |
| export ROUTER_RAG_ENABLE_RERANK="${ROUTER_RAG_ENABLE_RERANK:-false}" |
| export POTS_ENABLE_RERANK="${POTS_ENABLE_RERANK:-false}" |
| export MASTERS_ENABLE_RERANK="${MASTERS_ENABLE_RERANK:-false}" |
|
|
| if [[ "${WITH_OPENAI}" -eq 1 ]]; then |
| if ! .venv/bin/python - <<'PY' |
| import os,sys |
| k = str(os.getenv("OPENAI_API_KEY", "")).strip() |
| ku = k.upper() |
| bad = (not k) or ku.startswith("YOUR_KEY") or ku in {"<YOUR_OPENAI_API_KEY>", "YOUR_OPENAI_API_KEY"} |
| sys.exit(1 if bad else 0) |
| PY |
| then |
| echo "ERROR: OPENAI_API_KEY is missing or placeholder. Set a real key, then rerun with --with-openai." |
| exit 2 |
| fi |
| else |
| export OPENAI_API_KEY="" |
| fi |
|
|
| if [[ "${FULL}" -eq 1 ]]; then |
| .venv/bin/python -m pytest -q app |
| else |
| .venv/bin/python -m pytest -q \ |
| app/test_router_rag_module.py \ |
| app/test_router_rag_api.py \ |
| app/test_auth.py \ |
| app/test_router_csv_sanity.py \ |
| app/test_router_workbook_query_bank.py |
| fi |
|
|
| if [[ "${WITH_OPENAI}" -eq 1 ]]; then |
| .venv/bin/python scripts/router_rag_smoke.py --with-openai |
| else |
| .venv/bin/python scripts/router_rag_smoke.py |
| fi |
|
|