test_gateway_migration.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. from pathlib import Path
  2. ROOT = Path(__file__).resolve().parents[2]
  3. MIGRATION = (
  4. ROOT / "migrations" / "versions" / "20260719_80_mcp_gateway_control_plane.py"
  5. )
  6. def test_v53_migration_adds_persistent_scope_canary_and_operation_state():
  7. source = MIGRATION.read_text(encoding="utf-8")
  8. assert 'revision = "20260719_80"' in source
  9. assert 'down_revision = "20260719_70"' in source
  10. assert "business_domain" in source
  11. assert "created_by_subject" in source
  12. assert "workflow_canary_evidence" in source
  13. assert "workflow_gateway_operations" in source
  14. assert "UNIQUE (action, idempotency_key)" in source
  15. assert "workflow_plan_audits" in source
  16. assert "actor_subject" in source
  17. assert "idempotent_replay" in source
  18. assert "parent_run_id" in source
  19. assert "run_metadata" in source
  20. def test_v53_migration_has_a_safe_explicit_downgrade():
  21. source = MIGRATION.read_text(encoding="utf-8")
  22. downgrade = source.split("def downgrade() -> None:", 1)[1]
  23. assert "DROP TABLE IF EXISTS public.workflow_gateway_operations" in downgrade
  24. assert "DROP TABLE IF EXISTS public.workflow_canary_evidence" in downgrade
  25. assert "DROP COLUMN IF EXISTS business_domain" in downgrade
  26. assert "DROP COLUMN IF EXISTS actor_subject" in downgrade
  27. assert "DROP COLUMN IF EXISTS parent_run_id" in downgrade