test_workflow_engine_rollback.py 987 B

12345678910111213141516171819202122232425
  1. from app.core.orchestration.migration.cutover import WorkflowCutoverService
  2. from app.core.orchestration.migration.dual_run import DualRunMode
  3. from tests.integration.test_workflow_engine_cutover import Engines, Store
  4. def test_explicit_rollback_disables_kestra_before_reactivating_n8n():
  5. store = Store()
  6. store.mode = DualRunMode.KESTRA_PRIMARY_N8N_STANDBY
  7. engines = Engines()
  8. service = WorkflowCutoverService(store=store, engines=engines)
  9. result = service.rollback_to_n8n(
  10. dataflow_uid="01900000-0000-7000-8000-000000000094",
  11. environment="test",
  12. idempotency_key="rollback:orders:v55",
  13. correlation_id="01900000-0000-7000-8000-000000000095",
  14. )
  15. assert result["status"] == "succeeded"
  16. assert result["mode"] == "n8n_primary_kestra_shadow"
  17. assert engines.calls == [
  18. ("deactivate_kestra", "kestra-orders"),
  19. ("activate_n8n", "n8n-orders"),
  20. ]
  21. assert store.mode is DualRunMode.N8N_PRIMARY_KESTRA_SHADOW