32 lines
1.3 KiB
Python
32 lines
1.3 KiB
Python
"""Verify the campaign_period_comparisons migration creates the table with a unique campaign_id."""
|
|
|
|
import importlib
|
|
|
|
import sqlalchemy as sa
|
|
from alembic.migration import MigrationContext
|
|
from alembic.operations import Operations
|
|
|
|
|
|
def test_period_comparisons_migration_creates_table(tmp_path, monkeypatch):
|
|
engine = sa.create_engine(f"sqlite:///{tmp_path / 'comparisons.db'}")
|
|
|
|
with engine.begin() as connection:
|
|
operations = Operations(MigrationContext.configure(connection))
|
|
migration = importlib.import_module(
|
|
"migrations.versions.f2a9b7c34d18_add_campaign_period_comparisons"
|
|
)
|
|
monkeypatch.setattr(migration, "op", operations)
|
|
migration.upgrade()
|
|
|
|
inspector = sa.inspect(connection)
|
|
assert "campaign_period_comparisons" in inspector.get_table_names()
|
|
|
|
columns = {c["name"] for c in inspector.get_columns("campaign_period_comparisons")}
|
|
assert {
|
|
"id", "campaign_id", "baseline_campaign_id", "status", "result",
|
|
"model_config_id", "error", "triggered_by", "created_at", "updated_at",
|
|
} <= columns
|
|
|
|
uniques = inspector.get_unique_constraints("campaign_period_comparisons")
|
|
assert any(uc["column_names"] == ["campaign_id"] for uc in uniques)
|