From 437ef7742fb00a5cb09f681f57fd2eae432094ab Mon Sep 17 00:00:00 2001 From: Hakan Calim <hakan.calim@fau.de> Date: Sun, 22 Oct 2023 19:58:56 +0200 Subject: [PATCH] NAT-286: added attach interface to lag test --- test/services/test_netbox.py | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/test/services/test_netbox.py b/test/services/test_netbox.py index 7329143a..0ba7824c 100644 --- a/test/services/test_netbox.py +++ b/test/services/test_netbox.py @@ -64,6 +64,16 @@ def interface(): return Record(values, None, None) +@pytest.fixture(scope="module") +def lag(): + values = { + "id": 1, + "name": "lag-1", + "type": "lag", + } + return Record(values, None, None) + + @patch("gso.services.netbox_client.pynetbox.api") def test_create_device( mock_api, device, device_type, device_role, site, device_bay, card_type, data_config_filename: PathLike @@ -255,3 +265,36 @@ def test_get_interfaces_by_device(mock_api, device, interface, data_config_filen assert interfaces is not None assert len(interfaces) == 2 + + +@patch("gso.services.netbox_client.pynetbox.api") +def test_attach_interface_to_lag(mock_api, device, interface, lag, data_config_filename: PathLike): + """ + Test if a interface is attached correctly to a lag interface + """ + + # Define site effect function + def get_side_effect(**kwargs): + if kwargs.get("device_id") == 1 and kwargs.get("name") == "lag-1": + return lag + return interface + + # Define a description + description = "test123" + + # Mock netbox api + mock_api.return_value.dcim.devices.get.return_value = device + mock_api.return_value.dcim.interfaces.get.side_effect = get_side_effect + + # mock save method + mock_save = Mock() + mock_save.save.return_value = interface + interface.save = mock_save + + # Check if interface attached to lag + lag_interface = NetboxClient().attach_interface_to_lag(device.name, lag.name, interface.name, description) + + assert lag_interface is not None + assert lag_interface.lag == lag.id + assert lag_interface.description == description + mock_save.assert_called_once() -- GitLab