| 123456789101112131415161718192021222324252627282930 |
- """Migration coverage for per-printer WLED configuration (#1528)."""
- import pytest
- from sqlalchemy import inspect, text
- from sqlalchemy.ext.asyncio import async_sessionmaker
- from backend.app.core.database import run_migrations
- from backend.app.models.printer import Printer
- @pytest.mark.asyncio
- async def test_wled_config_migration_is_additive_and_idempotent(test_engine):
- session_factory = async_sessionmaker(test_engine, expire_on_commit=False)
- async with session_factory() as db:
- db.add(Printer(name="Legacy", serial_number="WLED-LEGACY", ip_address="10.0.0.1", access_code="code"))
- await db.commit()
- async with test_engine.begin() as conn:
- await conn.execute(text("ALTER TABLE printers DROP COLUMN wled_config"))
- await run_migrations(conn)
- await run_migrations(conn)
- columns = await conn.run_sync(
- lambda sync_conn: {col["name"] for col in inspect(sync_conn).get_columns("printers")}
- )
- stored = (
- await conn.execute(text("SELECT wled_config FROM printers WHERE serial_number = 'WLED-LEGACY'"))
- ).scalar_one()
- assert "wled_config" in columns
- assert stored is None
|