From be0cb1e4036d6dbd3a7f18ccaa77b9238186b2c1 Mon Sep 17 00:00:00 2001
From: Jorge Sasiain <jorge@jorge03.dev.gap.geant.org>
Date: Fri, 20 Oct 2023 17:21:25 +0000
Subject: [PATCH] NAT-244: add unit test for clear_interface based on branch
 NAT-286

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

diff --git a/test/services/test_netbox.py b/test/services/test_netbox.py
index 0daf5dfd..d5e47b6a 100644
--- a/test/services/test_netbox.py
+++ b/test/services/test_netbox.py
@@ -3,11 +3,11 @@
 import uuid
 from os import PathLike
 from unittest.mock import Mock, patch
-
 import pytest
 from pynetbox.core.response import Record
 
 from gso.products.product_blocks.site import SiteTier
+
 from gso.services.netbox_client import NetboxClient
 from gso.utils.exceptions import WorkflowStateError
 
@@ -289,3 +289,24 @@ def test_attach_interface_to_lag(mock_api, device, interface, lag, data_config_f
     assert lag_interface.lag == lag.id
     assert lag_interface.description == description
     mock_save.assert_called_once()
+
+
+@patch("gso.services.netbox_client.pynetbox.api")
+def test_free_interface(mock_api, device, interface):
+    device_name = "mx1.lab.geant.net"
+    interface_name = "et-0/0/1"
+
+    # Define mock calls
+    mock_api.return_value.dcim.devices.get.return_value = device
+    mock_api.return_value.dcim.interfaces.get.return_value = interface
+
+    # Create a NetboxClient instance
+    netbox_client = NetboxClient()
+
+    # Test clear_interface method on success
+    interface.mark_connected = True
+    interface.enabled = True
+    cleared_interface = netbox_client.free_interface(device_name, interface_name)
+    assert cleared_interface.enabled is False
+    assert cleared_interface.mark_connected is False
+    assert cleared_interface.description == ""
-- 
GitLab