refactor(dags): миграция CSV-пайплайна с Greenplum на PostgreSQL
- Зачем: - адаптация пайплайна для работы с чистым PostgreSQL вместо Greenplum - обеспечение совместимости с учебным стендом на базе Docker Compose - Что: - переименованы файлы (greenplum -> postgres) - обновлены DAG-файлы: замена get_gp_conn на get_postgres_conn, адаптация DDL под PostgreSQL - обновлён helpers/postgres.py: замена функций и переменных окружения - добавлен pytest в requirements.txt для запуска тестов - создан tests/conftest.py с функцией patch_postgres_hook - обновлён tests/test_postgres_helpers.py: исправлены импорты - добавлено монтирование папки tests в docker-compose.yml - адаптирован sql/base/orders_ddl.sql под PostgreSQL - Проверка: - docker-compose exec airflow-webserver pytest /opt/airflow/tests/test_postgres_helpers.py
This commit is contained in:
@@ -0,0 +1,20 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def patch_postgres_hook(monkeypatch, fake_hook_class) -> None:
|
||||
"""
|
||||
Патчит PostgresHook для тестирования.
|
||||
|
||||
Args:
|
||||
monkeypatch: pytest monkeypatch fixture
|
||||
fake_hook_class: Класс-имитация PostgresHook
|
||||
"""
|
||||
# Патчим PostgresHook на уровне airflow.providers.postgres.hooks.postgres
|
||||
# Это нужно, так как get_postgres_conn() импортирует его оттуда
|
||||
monkeypatch.setattr(
|
||||
"airflow.providers.postgres.hooks.postgres.PostgresHook",
|
||||
fake_hook_class,
|
||||
raising=False,
|
||||
)
|
||||
Reference in New Issue
Block a user