diff --git a/test/workflows/iptrunk/test_terminate_iptrunk.py b/test/workflows/iptrunk/test_terminate_iptrunk.py index 2234f29f643d39268b483d742b8e3be4822f0dca..834fdfa6fdd23be3935857a49d8f779f15ca84bf 100644 --- a/test/workflows/iptrunk/test_terminate_iptrunk.py +++ b/test/workflows/iptrunk/test_terminate_iptrunk.py @@ -13,6 +13,46 @@ from test.workflows import ( ) +class MockedNetboxClient: + class BaseMockObject: + def __init__(self, **kwargs): + for key, value in kwargs.items(): + setattr(self, key, value) + + def get_device_by_name(self): + return self.BaseMockObject(id=1, name="test") + + def get_interface_by_name_and_by_device_id(self): + return self.BaseMockObject(id=1, name="test") + + def delete_interface(self): + return None + + def clear_interface(self): + return self.BaseMockObject(id=1, name="test") + + +@pytest.fixture +def netbox_client_mock(): + # Mock NetboxClient methods + with ( + patch("gso.services.netbox_client.NetboxClient.get_device_by_name") as mock_get_device_by_name, + patch( + "gso.services.netbox_client.NetboxClient.get_interface_by_name_and_by_device_id" + ) as mock_get_interface_by_name_and_by_device_id, + patch("gso.services.netbox_client.NetboxClient.delete_interface") as mock_delete_interface, + patch("gso.services.netbox_client.NetboxClient.clear_interface") as mock_clear_interface, + ): + mock_get_device_by_name.return_value = MockedNetboxClient().get_device_by_name() + mock_get_interface_by_name_and_by_device_id.return_value = ( + MockedNetboxClient().get_interface_by_name_and_by_device_id() + ) + mock_delete_interface.return_value = MockedNetboxClient().delete_interface() + mock_clear_interface.return_value = MockedNetboxClient().clear_interface() + + yield + + @pytest.mark.workflow @patch("gso.workflows.iptrunk.terminate_iptrunk.provisioning_proxy.provision_ip_trunk") @patch("gso.workflows.iptrunk.terminate_iptrunk.provisioning_proxy.deprovision_ip_trunk") @@ -23,6 +63,7 @@ def test_iptrunk_modify_isis_metric_success( mock_provision_ip_trunk, iptrunk_subscription_factory, faker, + netbox_client_mock, ): # Set up mock return values product_id = iptrunk_subscription_factory()