Files
vector/scripts/e2e-analyze.sh
Sadmin 11015a7883 scripts: стемп-бэкфилл для прода + e2e /analyze (login form-urlencoded)
- prod-stamp-backfill.sql: бэкфилл search_models v1 из cases.analysis_log
  (для БД, где таблицы 006 уже созданы create_all — стемп alembic_version).
- e2e-analyze.sh: живая проверка /analyze на CT108 (bike 8yo 2h лес день
  -> max_distance 5.4; login — form-urlencoded, не JSON).
- Мелочь: test-mig-seed.sql ON CONFLICT DO NOTHING.
2026-09-09 18:20:37 +03:00

24 lines
1.1 KiB
Bash

#!/bin/sh
# e2e ВЕКТОРА на CT108 после B14/B15-деплоя: login (form!) -> /analyze -> анализ результата
set -e
TOKEN=$(curl -s -m 8 -X POST localhost:8000/api/v1/auth/login \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'username=admin&password=pass123' \
| python3 -c 'import sys,json; print(json.load(sys.stdin)["access_token"])')
echo "token: ${TOKEN:0:16}..."
echo "=== POST /analyze (bike 8yo 2h лес день) ==="
curl -s -m 90 -X POST localhost:8000/api/v1/analyze \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' --data @/tmp/analyze-req.json > /tmp/analyze-result.json
python3 - <<'PY'
import json
d = json.load(open('/tmp/analyze-result.json'))
print('max_distance_km:', d.get('max_distance_km'))
print('urgency:', d.get('urgency'))
print('coefficients:', d.get('coefficients'))
print('profiles:', [p.get('name') for p in d.get('active_profiles', [])])
print('zones:', len(d.get('primary_zones', [])))
print('fallback_used:', d.get('fallback_used'))
assert abs(d['max_distance_km'] - 5.4) < 1e-6, 'REGRESSION: max_distance != 5.4'
print('REGRESSION 5.4 OK')
PY