/
Pitonx
/
MyFinanceBackend
Обзор
Документация
Войти
/
Pitonx
/
MyFinanceBackend
Код
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
test-before-commit.sh
58 строк
2 KB
agent
v11.15.0 — test-before-commit.sh + GitHub Actions CI (smoke tests)
14 июн 2026, 21:58
14 июн 2026, 21:58
76b8345
Код
Авторство
О чём код?
#!/bin/bash # Smoke-test перед коммитом # Запускать из корня backend: bash test-before-commit.sh set -e echo "=== [1/4] Сборка бэкенда ===" cd "$(dirname "$0")" echo "=== [2/4] Проверка импортов ===" python -c "import django; print('Django:', django.__version__)" python -c " import os, django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings') django.setup() from apps.documents.report_views import ReportViewSet print('ReportViewSet импортируется OK') " echo "=== [3/4] Проверка миграций ===" python manage.py makemigrations --check --dry-run 2>/dev/null || echo "⚠️ Есть unmigrated changes" echo "=== [4/4] Smoke tests API ===" # SQLite + testserver для быстрого подъёма python manage.py testserver --addrport 8999 & PID=$! sleep 4 test_endpoint() { local url=$1 local expected=$2 local name=$3 STATUS=$(curl -s -o /dev/null -w "%{http_code}" "$url" || echo "000") if [ "$STATUS" = "$expected" ]; then echo " ✅ $name ($STATUS)" else echo " ❌ $name (ожидал $expected, получил $STATUS)" kill $PID 2>/dev/null exit 1 fi } BASE="http://localhost:8999/api/v1" test_endpoint "$BASE/reports/dynamics/?date_from=2026-06-01&date_to=2026-06-14" "200" "dynamics" test_endpoint "$BASE/reports/structure/?date_from=2026-06-01&date_to=2026-06-14" "200" "structure" test_endpoint "$BASE/reports/by_category/?date_from=2026-06-01&date_to=2026-06-14" "200" "by_category" test_endpoint "$BASE/reports/budget_vs_actual/?date_from=2026-06-01&date_to=2026-06-14" "200" "budget_vs_actual" test_endpoint "$BASE/reports/account_flow/?date_from=2026-06-01&date_to=2026-06-14" "200" "account_flow" test_endpoint "$BASE/reports/loans/?date_from=2026-06-01&date_to=2026-06-14" "200" "loans" test_endpoint "$BASE/reports/deposits/?date_from=2026-06-01&date_to=2026-06-14" "200" "deposits" test_endpoint "$BASE/reports/top_n/?date_from=2026-06-01&date_to=2026-06-14" "200" "top_n" test_endpoint "$BASE/reports/period_compare/?date_from=2026-06-01&date_to=2026-06-14" "200" "period_compare" test_endpoint "$BASE/reports/cashflow/?date_from=2026-06-01&date_to=2026-06-14" "200" "cashflow" kill $PID 2>/dev/null echo "" echo "=== ✅ Все smoke tests пройдены ==="