chore: snapshot workflow migration progress
This commit is contained in:
+23
-10
@@ -113,32 +113,44 @@ def parsed_anschlagplatten(parsed_excel_all):
|
||||
|
||||
# ── Test-DB (nutzt separate Test-Datenbank) ──────────────────────────────────
|
||||
|
||||
import os
|
||||
import uuid
|
||||
import pytest_asyncio
|
||||
from typing import AsyncGenerator
|
||||
from httpx import AsyncClient, ASGITransport
|
||||
from sqlalchemy.engine import make_url
|
||||
from sqlalchemy.ext.asyncio import create_async_engine, AsyncSession, async_sessionmaker
|
||||
|
||||
TEST_DB_URL = os.environ.get(
|
||||
"TEST_DATABASE_URL",
|
||||
"postgresql+asyncpg://hartomat:hartomat@localhost:5432/hartomat_test"
|
||||
)
|
||||
from app.config import settings
|
||||
from tests.db_test_utils import reset_public_schema_async, resolve_test_db_url
|
||||
|
||||
|
||||
def _resolve_test_db_url() -> str:
|
||||
return resolve_test_db_url(async_driver=True)
|
||||
|
||||
|
||||
def _sync_settings_to_test_database() -> None:
|
||||
resolved = make_url(resolve_test_db_url(async_driver=False))
|
||||
settings.postgres_host = resolved.host or settings.postgres_host
|
||||
settings.postgres_port = int(resolved.port or settings.postgres_port)
|
||||
settings.postgres_user = resolved.username or settings.postgres_user
|
||||
settings.postgres_password = resolved.password or settings.postgres_password
|
||||
settings.postgres_db = resolved.database or settings.postgres_db
|
||||
|
||||
|
||||
_sync_settings_to_test_database()
|
||||
|
||||
|
||||
@pytest_asyncio.fixture
|
||||
async def test_engine():
|
||||
from app.database import Base
|
||||
from sqlalchemy import text
|
||||
import app.models # noqa - register all models
|
||||
engine = create_async_engine(TEST_DB_URL, echo=False)
|
||||
engine = create_async_engine(_resolve_test_db_url(), echo=False)
|
||||
async with engine.begin() as conn:
|
||||
await reset_public_schema_async(conn)
|
||||
await conn.run_sync(Base.metadata.create_all)
|
||||
yield engine
|
||||
# Use CASCADE to handle circular FK dependencies in drop
|
||||
async with engine.begin() as conn:
|
||||
await conn.execute(text("DROP SCHEMA public CASCADE"))
|
||||
await conn.execute(text("CREATE SCHEMA public"))
|
||||
await reset_public_schema_async(conn)
|
||||
await engine.dispose()
|
||||
|
||||
|
||||
@@ -229,6 +241,7 @@ def mock_celery_tasks(monkeypatch):
|
||||
task_paths = [
|
||||
"app.domains.materials.tasks.refresh_asset_library_catalog",
|
||||
"app.tasks.step_tasks.process_step_file",
|
||||
"app.tasks.step_tasks.render_graph_thumbnail",
|
||||
"app.tasks.step_tasks.render_step_thumbnail",
|
||||
"app.domains.imports.tasks.validate_excel_import",
|
||||
"app.domains.rendering.tasks.render_still_task",
|
||||
|
||||
Reference in New Issue
Block a user