Files
maskanx_cm_backend/tests/test_campaign_migration.py

58 lines
1.4 KiB
Python

# -*- coding: utf-8 -*-
"""The campaign schema migration must be registered and reversible."""
from adclaw.db.migrations import MIGRATIONS
VERSION = "202608010001"
def _migration():
return next((m for m in MIGRATIONS if m.version == VERSION), None)
def test_campaign_migration_is_registered():
assert _migration() is not None
def test_campaign_migration_creates_expected_tables():
up = _migration().up_sql
for table in (
"maskanx_campaign_adsets",
"maskanx_campaign_ads",
"maskanx_campaign_events",
"maskanx_campaign_insights",
):
assert f"CREATE TABLE IF NOT EXISTS {table}" in up
def test_campaign_migration_adds_columns_to_campaigns():
up = _migration().up_sql
for column in (
"origin",
"ad_account_id",
"budget",
"guardrails",
"targeting",
"advanced",
"meta_campaign_id",
"sync_status",
"sync_error",
"last_synced_at",
"approved_by",
"approved_at",
"launched_at",
"stopped_at",
"deleted_in_meta_at",
):
assert f"ADD COLUMN IF NOT EXISTS {column}" in up
def test_campaign_migration_down_drops_new_tables():
down = _migration().down_sql
for table in (
"maskanx_campaign_insights",
"maskanx_campaign_events",
"maskanx_campaign_ads",
"maskanx_campaign_adsets",
):
assert f"DROP TABLE IF EXISTS {table}" in down