From 0a708d563214bbe2db284010a6ce4751fe33c28d Mon Sep 17 00:00:00 2001 From: Jorge Sasiain <jorge@jorge03.dev.gap.geant.org> Date: Fri, 20 Oct 2023 17:33:22 +0000 Subject: [PATCH] NAT-244: update terminate_iptrunk workflow test with nextbox client --- .../iptrunk/test_terminate_iptrunk.py | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/test/workflows/iptrunk/test_terminate_iptrunk.py b/test/workflows/iptrunk/test_terminate_iptrunk.py index 2234f29f..834fdfa6 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() -- GitLab