| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- from pathlib import Path
- ROOT = Path(__file__).resolve().parents[1]
- MIGRATION = (
- ROOT
- / "migrations"
- / "versions"
- / "20260718_60_workflow_engine_abstraction.py"
- )
- def test_engine_abstraction_migration_preserves_n8n_and_adds_generic_tables():
- migration = MIGRATION.read_text(encoding="utf-8")
- assert 'revision = "20260718_60"' in migration
- assert 'down_revision = "20260718_50"' in migration
- assert "engine_type" in migration
- assert "engine_definition_id" in migration
- assert "engine_revision" in migration
- assert "deployment_metadata" in migration
- assert "workflow_spec" in migration
- assert "schedule_plan" in migration
- assert "UPDATE public.dataflow_workflow_versions" in migration
- assert "n8n_workflow_id" in migration
- for table in (
- "workflow_schedules",
- "workflow_runs",
- "workflow_task_runs",
- "workflow_engine_bindings",
- "workflow_plan_audits",
- ):
- assert table in migration
- def test_database_enforces_one_enabled_primary_engine_per_dataflow_environment():
- migration = MIGRATION.read_text(encoding="utf-8")
- assert "uq_workflow_engine_primary_environment" in migration
- assert "WHERE role = 'primary' AND status = 'enabled'" in migration
- assert "uq_workflow_engine_shadow_environment" in migration
- def test_v50_migration_has_an_explicit_rollback():
- migration = MIGRATION.read_text(encoding="utf-8")
- downgrade = migration.split("def downgrade() -> None:", 1)[1]
- assert "DROP TABLE IF EXISTS public.workflow_plan_audits" in downgrade
- assert "DROP COLUMN IF EXISTS engine_type" in downgrade
|