fix: multiuser test — memory_mb + zip invalid + early return

This commit is contained in:
Naeel
2026-03-22 15:00:55 +03:00
parent dca98aac97
commit 9b5dec4dde
+11 -4
View File
@@ -51,11 +51,14 @@ make_fake_jwt() {
# make_py_zip zipfile — создаёт zip с Python-функцией + requirements.txt. # make_py_zip zipfile — создаёт zip с Python-функцией + requirements.txt.
# Функция: CREATE TABLE IF NOT EXISTS → INSERT → SELECT COUNT(*) → return. # Функция: CREATE TABLE IF NOT EXISTS → INSERT → SELECT COUNT(*) → return.
# Таблица приходит через env TEST_TABLE (изоляция по namespace). # Таблица приходит через env TEST_TABLE (изоляция по namespace).
# Важно: zipfile не должен существовать до вызова zip (иначе zip пытается его
# открыть как существующий архив → "Zip file structure invalid").
# --------------------------------------------------------------------------- # ---------------------------------------------------------------------------
make_py_zip() { make_py_zip() {
local zipfile="$1" local zipfile="$1"
local tmpdir local tmpdir
tmpdir=$(mktemp -d) tmpdir=$(mktemp -d)
rm -f "$zipfile" # гарантируем чистый файл — zip создаёт с нуля
# Одинарные кавычки в EOF — чтобы bash не раскрывал $ внутри heredoc # Одинарные кавычки в EOF — чтобы bash не раскрывал $ внутри heredoc
cat > "$tmpdir/pg_tester.py" << 'PYEOF' cat > "$tmpdir/pg_tester.py" << 'PYEOF'
# pg_tester.py — тестовая функция: INSERT/SELECT в PG через env_vars. # pg_tester.py — тестовая функция: INSERT/SELECT в PG через env_vars.
@@ -164,23 +167,27 @@ run_user_test() {
fi fi
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
# U-2: Create service с PG env_vars # U-2: Create service с PG env_vars + memory_mb (обязательное поле, мин 1)
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------
local create_json local create_json
create_json=$(printf \ create_json=$(printf \
'{"name":"%s","runtime":"python3.11","entrypoint":"pg_tester.handle","env_vars":{"PGHOST":"%s","PGDATABASE":"%s","PGUSER":"%s","PGPASSWORD":"%s","TEST_TABLE":"%s"}}' \ '{"name":"%s","runtime":"python3.11","entrypoint":"pg_tester.handle","memory_mb":128,"env_vars":{"PGHOST":"%s","PGDATABASE":"%s","PGUSER":"%s","PGPASSWORD":"%s","TEST_TABLE":"%s"}}' \
"$svc" "$PG_HOST" "$PG_DB" "$PG_USER" "$PG_PASS" "$table") "$svc" "$PG_HOST" "$PG_DB" "$PG_USER" "$PG_PASS" "$table")
code=$(curl -s -o /dev/null -w "%{http_code}" -X POST \ local create_body
create_body=$(curl -s -w "\n%{http_code}" -X POST \
"$API_BASE/namespaces/${ns}/services" \ "$API_BASE/namespaces/${ns}/services" \
-H "Authorization: Bearer $token" \ -H "Authorization: Bearer $token" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "$create_json") -d "$create_json")
code=$(printf '%s' "$create_body" | tail -1)
if [[ "$code" == "201" ]]; then if [[ "$code" == "201" ]]; then
echo "U${n}-2 PASS create($code)" echo "U${n}-2 PASS create($code)"
(( pass++ )) (( pass++ ))
else else
echo "U${n}-2 FAIL create=$code" echo "U${n}-2 FAIL create=$code body=$(printf '%s' "$create_body" | head -1)"
(( fail++ )) (( fail++ ))
printf '%d %d\n' "$pass" "$fail" > "$RESULTS_DIR/user_${n}.result"
return
fi fi
# ----------------------------------------------------------------------- # -----------------------------------------------------------------------