diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py index 43b43e8c454a2dba2b419149f3dceffe59974025..8c782fa04fca3437fed4185ab3423c5fc6e68285 100644 --- a/gso/workflows/iptrunk/migrate_iptrunk.py +++ b/gso/workflows/iptrunk/migrate_iptrunk.py @@ -631,6 +631,7 @@ def restore_isis_metric( } return { + "subscription": subscription, "playbook_name": "gap_ansible/playbooks/iptrunks.yaml", "inventory": { "all": { diff --git a/test/workflows/iptrunk/test_migrate_iptrunk.py b/test/workflows/iptrunk/test_migrate_iptrunk.py index 525ce49bf67833f33eb1f62530efdf40d0bef3ad..74c80af387544fc686ea69451d14ff22d008da01 100644 --- a/test/workflows/iptrunk/test_migrate_iptrunk.py +++ b/test/workflows/iptrunk/test_migrate_iptrunk.py @@ -109,6 +109,7 @@ def interface_lists_are_equal(list1, list2): [UseJuniperSide.NONE, UseJuniperSide.SIDE_A, UseJuniperSide.SIDE_B, UseJuniperSide.SIDE_BOTH], indirect=True, ) +@pytest.mark.parametrize("restore_isis_metric", [True, False]) @pytest.mark.workflow() @patch("gso.services.infoblox.create_host_by_ip") @patch("gso.services.infoblox.delete_host_by_ip") @@ -122,7 +123,7 @@ def interface_lists_are_equal(list1, list2): @patch("gso.services.netbox_client.NetboxClient.free_interface") @patch("gso.services.netbox_client.NetboxClient.delete_interface") @patch("gso.workflows.iptrunk.migrate_iptrunk.SharePointClient") -def test_migrate_iptrunk_success( +def test_migrate_iptrunk_success( # noqa: PLR0915 mock_sharepoint_client, mocked_delete_interface, mocked_free_interface, @@ -136,6 +137,7 @@ def test_migrate_iptrunk_success( mock_delete_host_by_ip, mock_create_host_by_ip, migrate_form_input, + restore_isis_metric, data_config_filename: PathLike, ): # Set up mock return values @@ -150,6 +152,7 @@ def test_migrate_iptrunk_success( mocked_delete_interface.return_value = mocked_netbox.delete_interface() mock_sharepoint_client.return_value = MockedSharePointClient + migrate_form_input[1]["restore_isis_metric"] = restore_isis_metric result, process_stat, step_log = run_workflow("migrate_iptrunk", migrate_form_input) for _ in range(8): @@ -161,10 +164,10 @@ def test_migrate_iptrunk_success( for _ in range(8): result, step_log = assert_lso_interaction_success(result, process_stat, step_log) - assert_suspended(result) - result, step_log = resume_workflow(process_stat, step_log, input_data=USER_CONFIRM_EMPTY_FORM) + if restore_isis_metric: + assert_suspended(result) + result, step_log = resume_workflow(process_stat, step_log, input_data=USER_CONFIRM_EMPTY_FORM) - for _ in range(1): result, step_log = assert_lso_interaction_success(result, process_stat, step_log) # Continue workflow after it has displayed a checklist URL. @@ -178,7 +181,7 @@ def test_migrate_iptrunk_success( subscription = Iptrunk.from_subscription(subscription_id) assert subscription.status == "active" - assert mock_execute_playbook.call_count == 17 + assert mock_execute_playbook.call_count == 17 if restore_isis_metric else 16 assert mock_create_host_by_ip.call_count == 1 assert mock_delete_host_by_ip.call_count == 1 @@ -216,3 +219,4 @@ def test_migrate_iptrunk_success( assert subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_iface == new_lag_interface existing_members = subscription.iptrunk.iptrunk_sides[0].iptrunk_side_ae_members assert interface_lists_are_equal(new_lag_member_interfaces, existing_members) + assert (subscription.iptrunk.iptrunk_isis_metric == 999999) != restore_isis_metric