TorbatYar/backend/services/loyalty/app/tests/test_migration.py
Mortezakoohjani e41ecfad4c Sync platform docs, infra, and module services with Accounting integration.
Include Loyalty/Communication/Sports Center backends and registry updates alongside production nginx and compose wiring.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-25 22:35:23 +03:30

39 lines
1.3 KiB
Python

"""Migration metadata tests."""
from pathlib import Path
from alembic.config import Config
from alembic.script import ScriptDirectory
def test_alembic_revisions_exist():
root = Path(__file__).resolve().parents[2]
cfg = Config(str(root / "alembic.ini"))
cfg.set_main_option("script_location", str(root / "alembic"))
scripts = ScriptDirectory.from_config(cfg)
revisions = list(scripts.walk_revisions())
assert revisions
assert revisions[0].revision == "0002_phase_71_membership"
assert revisions[-1].revision == "0001_initial"
assert revisions[0].down_revision == "0001_initial"
assert revisions[-1].down_revision is None
def test_migration_upgrade_creates_metadata_tables(db_setup):
from app.core.database import Base
import app.models # noqa: F401
expected = {
"loyalty_programs",
"membership_tiers",
"members",
"point_accounts",
"rewards",
"campaigns",
"loyalty_audit_logs",
"outbox_events",
"membership_lifecycle_events",
}
assert expected.issubset(set(Base.metadata.tables.keys()))
assert "ix_members_tenant_tier" in {
idx.name for table in Base.metadata.tables.values() for idx in table.indexes
}