diff --git a/test/workflows/l2_circuit/test_modify_layer_2_circuit.py b/test/workflows/l2_circuit/test_modify_layer_2_circuit.py new file mode 100644 index 0000000000000000000000000000000000000000..aee47662a2bc51c09c9f4bfbe94d6fe3b304b14d --- /dev/null +++ b/test/workflows/l2_circuit/test_modify_layer_2_circuit.py @@ -0,0 +1,73 @@ +import pytest +from orchestrator.types import SubscriptionLifecycle + +from gso.products import ProductName +from gso.products.product_blocks.layer_2_circuit import Layer2CircuitType +from gso.products.product_types.layer_2_circuit import Layer2Circuit +from test.workflows import assert_complete, extract_state, run_workflow + + +@pytest.mark.parametrize("layer_2_circuit_service_type", [ProductName.GEANT_PLUS, ProductName.EXPRESSROUTE]) +@pytest.mark.workflow() +def test_modify_layer_2_circuit_change_policer_bandwidth( + layer_2_circuit_service_type, + layer_2_circuit_subscription_factory, + faker, + partner_factory, + data_config_filename, +): + subscription_id = layer_2_circuit_subscription_factory(layer_2_circuit_service_type=layer_2_circuit_service_type) + subscription = Layer2Circuit.from_subscription(subscription_id) + input_form_data = [ + {"subscription_id": subscription_id}, + { + "tt_number": faker.tt_number(), + "layer_2_circuit_type": Layer2CircuitType.TAGGED, + "policer_enabled": False, + }, + { + "vlan_range_lower_bound": subscription.layer_2_circuit.vlan_range_lower_bound, + "vlan_range_upper_bound": subscription.layer_2_circuit.vlan_range_upper_bound, + "policer_bandwidth": None, + } + ] + result, _, _ = run_workflow("modify_layer_2_circuit", input_form_data) + assert_complete(result) + assert subscription.status == SubscriptionLifecycle.ACTIVE + assert subscription.layer_2_circuit.policer_enabled is False + assert subscription.layer_2_circuit.bandwidth is None + + +@pytest.mark.parametrize("layer_2_circuit_service_type", [ProductName.GEANT_PLUS, ProductName.EXPRESSROUTE]) +@pytest.mark.workflow() +def test_modify_layer_2_circuit_change_circuit_type( + layer_2_circuit_service_type, + layer_2_circuit_subscription_factory, + faker, + partner_factory, + data_config_filename, +): + subscription_id = layer_2_circuit_subscription_factory(layer_2_circuit_service_type=layer_2_circuit_service_type) + subscription = Layer2Circuit.from_subscription(subscription_id) + input_form_data = [ + {"subscription_id": subscription_id}, + { + "tt_number": faker.tt_number(), + "layer_2_circuit_type": Layer2CircuitType.UNTAGGED, + }, + { + "vlan_range_lower_bound": None, + "vlan_range_upper_bound": None, + "policer_bandwidth": subscription.layer_2_circuit.bandwidth, + } + ] + result, _, _ = run_workflow("modify_layer_2_circuit", input_form_data) + assert_complete(result) + state = extract_state(result) + subscription = Layer2Circuit.from_subscription(state["subscription_id"]) + assert subscription.status == SubscriptionLifecycle.ACTIVE + assert subscription.layer_2_circuit.vlan_range_lower_bound is None + assert subscription.layer_2_circuit.vlan_range_upper_bound is None + assert subscription.layer_2_circuit.layer_2_circuit_type == Layer2CircuitType.UNTAGGED + for layer_2_circuit_side in subscription.layer_2_circuit.layer_2_circuit_sides: + assert layer_2_circuit_side.sbp.is_tagged is False