Skip to content
Snippets Groups Projects
cancel_subscription.py 1.04 KiB
Newer Older
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"