diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py index 4a754ae0ae540e8d52d93d11231d9278321b10f7..55984e4ab9fdf2f380ed36aa9fb577921d596f52 100644 --- a/gso/workflows/iptrunk/migrate_iptrunk.py +++ b/gso/workflows/iptrunk/migrate_iptrunk.py @@ -24,13 +24,13 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form from pydantic import validator from pydantic_forms.core import ReadOnlyField from pynetbox.models.dcim import Interfaces -from services.infoblox import DeletionError from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock from gso.products.product_blocks.router import RouterVendor from gso.products.product_types.iptrunk import Iptrunk from gso.products.product_types.router import Router from gso.services import infoblox +from gso.services.infoblox import DeletionError from gso.services.netbox_client import NetboxClient from gso.services.provisioning_proxy import execute_playbook, pp_interaction from gso.services.subscriptions import get_active_router_subscriptions diff --git a/test/conftest.py b/test/conftest.py index 21462485edece90219aa3620f946837dee654325..7d53941eb84cdcf806ce3efa34985570b269973a 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -1,5 +1,4 @@ import contextlib -import ipaddress import json import logging import os diff --git a/test/workflows/iptrunk/test_migrate_iptrunk.py b/test/workflows/iptrunk/test_migrate_iptrunk.py index 9a791b6569658dc0970e290da3775bd49d0d17c2..e7852bc13a2d0cfd61f9b1942690e94e0ffb01b2 100644 --- a/test/workflows/iptrunk/test_migrate_iptrunk.py +++ b/test/workflows/iptrunk/test_migrate_iptrunk.py @@ -36,7 +36,7 @@ def migrate_form_input( old_subscription = Iptrunk.from_subscription(product_id) new_router = juniper_router_subscription_factory() replace_side = str(old_subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.subscription.subscription_id) - new_side_ae_members = faker.generate_juniper_members_list()[0:2] + new_side_ae_members = faker.link_members_juniper()[0:2] lag_name = "ae1" elif use_juniper == UseJuniperSide.SIDE_B: # Juniper -> Nokia @@ -48,7 +48,7 @@ def migrate_form_input( old_subscription = Iptrunk.from_subscription(product_id) new_router = nokia_router_subscription_factory() replace_side = str(old_subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.subscription.subscription_id) - new_side_ae_members = faker.generate_nokia_members_list()[0:2] + new_side_ae_members = faker.link_members_nokia()[0:2] lag_name = "LAG1" elif use_juniper == UseJuniperSide.SIDE_BOTH: # Juniper -> Juniper @@ -60,7 +60,7 @@ def migrate_form_input( old_subscription = Iptrunk.from_subscription(product_id) new_router = juniper_router_subscription_factory() replace_side = str(old_subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.subscription.subscription_id) - new_side_ae_members = faker.generate_juniper_members_list()[0:2] + new_side_ae_members = faker.link_members_juniper()[0:2] lag_name = "ae1" else: # Nokia -> Nokia @@ -68,7 +68,7 @@ def migrate_form_input( old_subscription = Iptrunk.from_subscription(product_id) new_router = nokia_router_subscription_factory() replace_side = str(old_subscription.iptrunk.iptrunk_sides[0].iptrunk_side_node.subscription.subscription_id) - new_side_ae_members = faker.generate_nokia_members_list()[0:2] + new_side_ae_members = faker.link_members_nokia()[0:2] lag_name = "LAG1" return [ @@ -107,6 +107,10 @@ def interface_lists_are_equal(list1, list2): indirect=True, ) @pytest.mark.workflow() +@patch("gso.services.infoblox.create_host_by_ip") +@patch("gso.services.infoblox.find_v6_host_by_fqdn") +@patch("gso.services.infoblox.find_host_by_fqdn") +@patch("gso.services.infoblox.delete_host_by_fqdn") @patch("gso.services.provisioning_proxy._send_request") @patch("gso.services.netbox_client.NetboxClient.get_available_interfaces") @patch("gso.services.netbox_client.NetboxClient.get_available_lags") @@ -126,6 +130,10 @@ def test_migrate_iptrunk_success( mocked_get_available_lags, mocked_get_available_interfaces, mock_execute_playbook, + mock_delete_host_by_fqdn, + mock_find_host_by_fqdn, + mock_find_v6_host_by_fqdn, + mock_create_host_by_ip, migrate_form_input, data_config_filename: PathLike, ): @@ -164,6 +172,10 @@ def test_migrate_iptrunk_success( assert subscription.status == "active" assert mock_execute_playbook.call_count == 9 + assert mock_find_host_by_fqdn.call_count == 1 + assert mock_find_v6_host_by_fqdn.call_count == 1 + assert mock_create_host_by_ip.call_count == 1 + assert mock_delete_host_by_fqdn.call_count == 1 # get some values from form new_router = migrate_form_input[2]["new_node"]