TorbatYar/backend/services/hospitality/app/tests/test_migration.py
Mortezakoohjani 5c6a2e78cf feat(platform): seed service registry, deploy all modules, and fix homepage catalog.
Register all active platform services and base features in core DB so admin can manage them, add delivery/hospitality/sports-center backend phases, update apps catalog and production deploy tooling.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-27 12:39:51 +03:30

74 lines
1.8 KiB
Python

"""Migration / metadata validation."""
from pathlib import Path
from alembic.config import Config
from alembic.script import ScriptDirectory
from app.core.database import Base
import app.models # noqa: F401
EXPECTED_TABLES = {
"venues",
"branches",
"dining_areas",
"dining_tables",
"menus",
"menu_categories",
"menu_items",
"bundle_definitions",
"tenant_bundles",
"feature_toggles",
"hospitality_roles",
"hospitality_permissions",
"hospitality_configurations",
"hospitality_events",
"hospitality_settings",
"hospitality_audit_logs",
"allergens",
"modifier_groups",
"modifier_options",
"menu_item_modifiers",
"menu_item_allergens",
"availability_windows",
"menu_media_refs",
"menu_localizations",
"qr_codes",
"qr_menu_sessions",
"qr_ordering_sessions",
"carts",
"cart_lines",
"reservations",
"table_assignments",
"service_requests",
"waitlist_entries",
"pos_registers",
"pos_shifts",
"pos_tickets",
"pos_ticket_lines",
"pos_payments",
"pos_discounts",
"pos_tax_lines",
"pos_floor_plans",
"pos_stations",
"kitchen_stations",
"kitchen_tickets",
"kitchen_ticket_items",
"connector_registrations",
"connector_dispatches",
"analytics_report_definitions",
"analytics_snapshots",
}
def test_alembic_head_is_phase_128():
root = Path(__file__).resolve().parents[2]
cfg = Config(str(root / "alembic.ini"))
script = ScriptDirectory.from_config(cfg)
assert script.get_current_head() == "0009_phase_128_analytics"
def test_metadata_contains_foundation_and_catalog_tables():
names = set(Base.metadata.tables.keys())
assert EXPECTED_TABLES.issubset(names)