Skip to content
Snippets Groups Projects

Feature/nat 286 create unit tests for netbox client

Merged Hakan Calim requested to merge feature/NAT-286-create-unit-tests-for-netbox-client into develop
1 file
+ 43
0
Compare changes
  • Side-by-side
  • Inline
  • 437ef774
    NAT-286: added attach interface to lag test · 437ef774
    Hakan Calim authored
@@ -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()
Loading