Skip to content
Snippets Groups Projects
Commit 437ef774 authored by Hakan Calim's avatar Hakan Calim
Browse files

NAT-286: added attach interface to lag test

parent 354e314d
No related branches found
No related tags found
1 merge request!89Feature/nat 286 create unit tests for netbox client
Pipeline #84266 failed
...@@ -64,6 +64,16 @@ def interface(): ...@@ -64,6 +64,16 @@ def interface():
return Record(values, None, None) 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") @patch("gso.services.netbox_client.pynetbox.api")
def test_create_device( def test_create_device(
mock_api, device, device_type, device_role, site, device_bay, card_type, data_config_filename: PathLike 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 ...@@ -255,3 +265,36 @@ def test_get_interfaces_by_device(mock_api, device, interface, data_config_filen
assert interfaces is not None assert interfaces is not None
assert len(interfaces) == 2 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()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment