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