diff --git a/test/services/test_netbox.py b/test/services/test_netbox.py index 0daf5dfd83a9c2f352e54582909ec5ebeb2821a2..d5e47b6a132bf274da63eb0bfb548803b8e462c7 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 == ""