Complete training workflow and acceptance hardening
This commit is contained in:
parent
4c4b91064f
commit
7237265833
243 changed files with 17014 additions and 1500 deletions
35
scripts/test_isolated_db.sh
Normal file
35
scripts/test_isolated_db.sh
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
project="lct-test-$$-$RANDOM$RANDOM"
|
||||
compose=(docker compose -p "$project" -f "$repo_root/docker-compose.test-db.yml")
|
||||
|
||||
cleanup() {
|
||||
trap - EXIT INT TERM
|
||||
"${compose[@]}" down --volumes --remove-orphans >/dev/null || true
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
printf 'Изолированный тестовый Compose project: %s\n' "$project"
|
||||
"${compose[@]}" up --pull never --detach --wait
|
||||
port_mapping=$("${compose[@]}" port postgres 5432)
|
||||
db_port="${port_mapping##*:}"
|
||||
database_url="postgresql+asyncpg://lct_test:lct_test@127.0.0.1:${db_port}/lct_test"
|
||||
evidence_dir="${LCT_TEST_EVIDENCE_DIR:-$repo_root/.local/evidence}"
|
||||
mkdir -p "$evidence_dir"
|
||||
|
||||
cd "$repo_root/backend"
|
||||
DATABASE_URL="$database_url" uv run --extra dev alembic upgrade head
|
||||
DATABASE_URL="$database_url" uv run --extra dev python scripts/seed.py
|
||||
DATABASE_URL="$database_url" uv run --extra dev python "$repo_root/scripts/load_db.py" \
|
||||
--operations 1000 --workload audit --allow-audit-writes \
|
||||
--output "$evidence_dir/db-audit-write-load-pool-2026-09-25.json"
|
||||
DATABASE_URL="$database_url" uv run --extra dev python "$repo_root/scripts/load_db.py" \
|
||||
--operations 1000 --concurrency 20 --workload audit --allow-audit-writes \
|
||||
--output "$evidence_dir/db-audit-write-load-concurrent-2026-09-25.json"
|
||||
if (($#)); then
|
||||
DATABASE_URL="$database_url" uv run --extra dev pytest -q --tb=short --show-capture=no "$@"
|
||||
else
|
||||
DATABASE_URL="$database_url" uv run --extra dev pytest -q --tb=short --show-capture=no
|
||||
fi
|
||||
Loading…
Reference in a new issue