From 65ead28f4f0710c5235a6838f266072909e60aac Mon Sep 17 00:00:00 2001
From: Hakan Calim <hakan.calim@fau.de>
Date: Tue, 17 Oct 2023 10:42:08 +0200
Subject: [PATCH] NAT-286: added test for reservation of interface

---
 test/services/test_netbox.py | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/test/services/test_netbox.py b/test/services/test_netbox.py
index 34d4e2f1..c63d700e 100644
--- a/test/services/test_netbox.py
+++ b/test/services/test_netbox.py
@@ -149,3 +149,24 @@ def test_reserve_interface_exception(mock_api, device, interface, data_config_fi
     with pytest.raises(WorkflowStateError) as test_exception:
         NetBoxClient().reserve_interface(device.name, interface.name)
         assert str(test_exception.value) == exception_message
+
+
+@patch("gso.services.netbox_client.pynetbox.api")
+def test_reserve_interface(mock_api, device, interface, data_config_filename: PathLike):
+    """
+    Test a normal reservation of a interface
+    """
+    # Set interface to not reserved
+    interface.enabled = False
+    interface.api = mock_api
+
+    # Mock netbox api
+    mock_api.return_value.dcim.devices.get.return_value = device
+    mock_api.return_value.dcim.interfaces.get.return_value = interface
+    mock_api.return_value.dcim.interfaces.save.return_value = interface
+
+    # Check reservation of interface
+    updated_interface = NetBoxClient().reserve_interface(device.name, interface.name)
+
+    assert updated_interface is not None
+    assert updated_interface.enabled is not True
-- 
GitLab