From 9f028d0728cc746f3f92364ae5bec83e73d2f3e4 Mon Sep 17 00:00:00 2001 From: Dmitry Dementev Date: Thu, 11 Dec 2025 11:09:05 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BF=D0=BE=20full=20smoke=20=D1=82=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- scripts/e2e_smoke.sh | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f6ece16..618b28d 100644 --- a/README.md +++ b/README.md @@ -421,6 +421,6 @@ load_bookings_to_stg = PostgresOperator( - Локальные проверки: `make test` (pytest). Для форматирования — `make fmt`, для проверки — `make lint`. - Пошаговый сценарий с Docker (включая негативные кейсы и reset) — см. `TESTING.md`. -- Полный smoke-тест стенда (сносит volumes!): `make e2e-smoke` — поднимает стек с нуля и прогоняет `csv_to_greenplum` и `bookings_to_gp_stage` через `airflow dags test`. +- Полный smoke-тест стенда (сносит volumes!): `make e2e-smoke` — поднимает стек с нуля, прогоняет `csv_to_greenplum` и `bookings_to_gp_stage` через `airflow dags test` и проверяет, что в `public.orders` и `stg.bookings` появились строки. Удачи в изучении Data Engineering! 🚀 diff --git a/scripts/e2e_smoke.sh b/scripts/e2e_smoke.sh index 4846a85..66d3962 100755 --- a/scripts/e2e_smoke.sh +++ b/scripts/e2e_smoke.sh @@ -47,7 +47,21 @@ make test warn "Airflow DAG test: csv_to_greenplum" docker compose -f docker-compose.yml exec airflow-webserver airflow dags test csv_to_greenplum 2024-01-01 +warn "Check orders count in Greenplum" +ORDERS_COUNT=$(docker compose -f docker-compose.yml exec greenplum bash -lc "su - gpadmin -c \"/usr/local/greenplum-db/bin/psql -t -A -d gp_dwh -c 'SELECT COUNT(*) FROM public.orders;'\"") +if [ "${ORDERS_COUNT:-0}" -le 0 ]; then + echo "orders table is empty after csv_to_greenplum (COUNT=${ORDERS_COUNT:-0})" >&2 + exit 1 +fi + warn "Airflow DAG test: bookings_to_gp_stage" docker compose -f docker-compose.yml exec airflow-webserver airflow dags test bookings_to_gp_stage 2024-01-01 +warn "Check stg.bookings count in Greenplum" +BOOKINGS_COUNT=$(docker compose -f docker-compose.yml exec greenplum bash -lc "su - gpadmin -c \"/usr/local/greenplum-db/bin/psql -t -A -d gp_dwh -c 'SELECT COUNT(*) FROM stg.bookings;'\"") +if [ "${BOOKINGS_COUNT:-0}" -le 0 ]; then + echo "stg.bookings is empty after bookings_to_gp_stage (COUNT=${BOOKINGS_COUNT:-0})" >&2 + exit 1 +fi + warn "Smoke test completed successfully"