diff --git a/test/fixtures.py b/test/fixtures.py index d1775d8e2a53051d9c4afa5058ab58c9b51ae487..f0c55c2190041a837594b7907063abcdce69e04a 100644 --- a/test/fixtures.py +++ b/test/fixtures.py @@ -38,6 +38,7 @@ def site_subscription_factory(faker, geant_partner): site_internal_id=None, site_tier=SiteTier.TIER1, site_ts_address=None, + status: SubscriptionLifecycle | None = None, partner: dict | None = None, ) -> UUIDstr: if partner is None: @@ -70,6 +71,9 @@ def site_subscription_factory(faker, geant_partner): site_subscription = SubscriptionModel.from_other_lifecycle(site_subscription, SubscriptionLifecycle.ACTIVE) site_subscription.description = description site_subscription.start_date = start_date + if status: + site_subscription.status = status + site_subscription.save() db.session.commit() diff --git a/test/workflows/shared/__init__.py b/test/workflows/shared/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/test/workflows/shared/cancel_subscription.py b/test/workflows/shared/cancel_subscription.py new file mode 100644 index 0000000000000000000000000000000000000000..9963b8f21066cfd02408a819b8ce2ae5facf8cba --- /dev/null +++ b/test/workflows/shared/cancel_subscription.py @@ -0,0 +1,30 @@ +import pytest +from orchestrator.domain.base import SubscriptionModel +from orchestrator.types import SubscriptionLifecycle + +from test.workflows import assert_complete, extract_state, run_workflow + + +@pytest.mark.parametrize( + "subscription_factory", + [ + "site_subscription_factory", + "juniper_router_subscription_factory", + "nokia_router_subscription_factory", + "iptrunk_subscription_factory", + ], +) +@pytest.mark.workflow() +def test_cancel_workflow_success(subscription_factory, geant_partner, request): + subscription_id = request.getfixturevalue(subscription_factory)( + status=SubscriptionLifecycle.INITIAL, + partner=geant_partner, + ) + initial_site_data = [{"subscription_id": subscription_id}, {}] + result, _, _ = run_workflow("cancel_subscription", initial_site_data) + assert_complete(result) + + state = extract_state(result) + subscription_id = state["subscription_id"] + subscription = SubscriptionModel.from_subscription(subscription_id) + assert subscription.status == "terminated"