Includes: - Odoo 19 framework (odoo/) - 27 custom EnCoach addons (new_project/custom_addons/) - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media - encoach_courseware, encoach_communication, encoach_subscription - encoach_notification, encoach_approval, encoach_branding - encoach_classroom, encoach_registration, encoach_stats - encoach_faq, encoach_ticket, encoach_training, encoach_resources - encoach_adaptive_ai, encoach_sis - 21 OpenEduCat Enterprise modules (new_project/enterprise-19/) - 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/) - Configuration: odoo.conf, requirements.txt, scripts - 200+ REST API endpoints with JWT authentication - SRS and test documentation Made-with: Cursor
63 lines
3.0 KiB
Bash
Executable File
63 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Authenticated REST smoke test (Odoo :8069). Login: admin@admin.com / admin
|
|
set -euo pipefail
|
|
BASE="${1:-http://127.0.0.1:8069}"
|
|
LOGIN_JSON='{"login":"admin@admin.com","password":"admin"}'
|
|
|
|
fail() { echo "FAIL: $*" >&2; exit 1; }
|
|
|
|
TOKEN=$(curl -s -X POST "$BASE/api/login" -H "Content-Type: application/json" -d "$LOGIN_JSON" | python3 -c "import sys,json; print(json.load(sys.stdin).get('token',''))" 2>/dev/null || true)
|
|
[[ -n "$TOKEN" ]] || fail "No JWT — check $BASE/api/login"
|
|
|
|
AUTH=(-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json")
|
|
|
|
get() {
|
|
curl -s -o /dev/null -w "%{http_code}" "${AUTH[@]}" "$BASE$1"
|
|
}
|
|
|
|
post() {
|
|
curl -s -o /dev/null -w "%{http_code}" -X POST "${AUTH[@]}" "$BASE$1" -d "${2:-{}}"
|
|
}
|
|
|
|
errs=0
|
|
expect2xx() {
|
|
local method="$1" path="$2" code="$3"
|
|
if [[ "$code" =~ ^2[0-9][0-9]$ ]]; then
|
|
echo "OK $method $path ($code)"
|
|
else
|
|
echo "BAD $method $path -> $code" >&2
|
|
errs=$((errs + 1))
|
|
fi
|
|
}
|
|
|
|
c=$(get /api/user) && expect2xx GET /api/user "$c"
|
|
c=$(get "/api/students?size=5") && expect2xx GET /api/students "$c"
|
|
c=$(get "/api/teachers?size=5") && expect2xx GET /api/teachers "$c"
|
|
c=$(get "/api/courses?size=5") && expect2xx GET /api/courses "$c"
|
|
c=$(get "/api/batches?size=5") && expect2xx GET /api/batches "$c"
|
|
c=$(get "/api/entities?size=5") && expect2xx GET /api/entities "$c"
|
|
c=$(get "/api/users/list?size=5") && expect2xx GET /api/users/list "$c"
|
|
c=$(get "/api/assignments?size=5") && expect2xx GET /api/assignments "$c"
|
|
c=$(get "/api/tickets?size=5") && expect2xx GET /api/tickets "$c"
|
|
c=$(get "/api/groups?size=5") && expect2xx GET /api/groups "$c"
|
|
c=$(get /api/training/tips) && expect2xx GET /api/training/tips "$c"
|
|
c=$(get /api/ai/alerts) && expect2xx GET /api/ai/alerts "$c"
|
|
c=$(get /api/analytics/student) && expect2xx GET /api/analytics/student "$c"
|
|
c=$(get /api/analytics/class) && expect2xx GET /api/analytics/class "$c"
|
|
c=$(get /api/analytics/subject) && expect2xx GET /api/analytics/subject "$c"
|
|
c=$(get /api/analytics/content-gaps) && expect2xx GET /api/analytics/content-gaps "$c"
|
|
c=$(get "/api/academic-years?size=5") && expect2xx GET /api/academic-years "$c"
|
|
c=$(get "/api/departments?size=5") && expect2xx GET /api/departments "$c"
|
|
c=$(get "/api/admissions?size=5") && expect2xx GET /api/admissions "$c"
|
|
c=$(get "/api/admission-registers?size=5") && expect2xx GET /api/admission-registers "$c"
|
|
c=$(get "/api/packages?size=5") && expect2xx GET /api/packages "$c"
|
|
c=$(get "/api/resources?size=5") && expect2xx GET /api/resources "$c"
|
|
c=$(get "/api/subject-registrations?size=5") && expect2xx GET /api/subject-registrations "$c"
|
|
c=$(get "/api/inst-exam-sessions?size=5") && expect2xx GET /api/inst-exam-sessions "$c"
|
|
c=$(get "/api/marksheets?size=5") && expect2xx GET /api/marksheets "$c"
|
|
c=$(get "/api/course-assignments?size=5") && expect2xx GET /api/course-assignments "$c"
|
|
c=$(post /api/ai/insights '{}') && expect2xx POST /api/ai/insights "$c"
|
|
|
|
[[ "$errs" -eq 0 ]] || exit 1
|
|
echo "All smoke checks passed ($BASE)."
|