-
Karel van Klink authoredKarel van Klink authored
conftest.py 4.02 KiB
from typing import Any
from gso.services.kentik_client import NewKentikDevice
class MockedNetboxClient:
class BaseMockObject:
def __init__(self, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)
def get_device_by_name(self):
return self.BaseMockObject(id=1, name="test")
@staticmethod
def get_interface_by_name_and_device(interface_name: str, device_name: str):
return {
"name": f"{interface_name}",
"module": {"display": f"Module{interface_name}"},
"description": f"Description{interface_name}-{device_name}",
}
@staticmethod
def get_available_lags() -> list[str]:
return [f"lag-{lag}" for lag in range(1, 5)]
@staticmethod
def get_available_services_lags() -> list[str]:
return [f"lag-{lag}" for lag in range(21, 50)]
@staticmethod
def get_available_interfaces():
interfaces = []
for interface in range(5):
interface_data = {
"name": f"Interface{interface}",
"module": {"display": f"Module{interface}"},
"description": f"Description{interface}",
}
interfaces.append(interface_data)
return interfaces
def create_interface(self):
return self.BaseMockObject(id=1, name="test")
def attach_interface_to_lag(self):
return self.BaseMockObject(id=1, name="test")
def reserve_interface(self):
return self.BaseMockObject(id=1, name="test")
@staticmethod
def allocate_interface():
return {"id": 1, "name": "test"}
def free_interface(self):
return self.BaseMockObject(id=1, name="test")
@staticmethod
def detach_interfaces_from_lag():
return None
@staticmethod
def delete_interface():
return None
def get_available_lags_in_range(self):
return self.get_available_lags()
class MockedSharePointClient:
class BaseMockObject:
def __init__(self, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)
@staticmethod
def add_list_item(list_name: str, fields: dict[str, str]) -> str:
return f"http://{list_name}/{fields.popitem()}"
class MockedKentikClient:
class BaseMockObject:
def __init__(self, **kwargs):
for key, value in kwargs.items():
setattr(self, key, value)
@staticmethod
def get_devices() -> list[dict[str, Any]]:
return [{"id": 0, "device_name": "device-1.internal"}, {"id": 1, "device_name": "device-2.internal"}]
@staticmethod
def get_device(device_id: str) -> dict[str, Any]:
return {"id": device_id, "device_name": "device-1.internal"}
@staticmethod
def get_device_by_name(fqdn: str) -> dict[str, Any]:
return {"id": 0, "device_name": fqdn}
@staticmethod
def get_sites() -> list[dict[str, Any]]:
return [{"id": 0, "site_name": "AMS"}, {"id": 1, "site_name": "BRU"}, {"id": 2, "site_name": "LUX"}]
@staticmethod
def get_site_by_name(site_name: str) -> dict[str, Any]:
return {"id": 0, "site_name": site_name}
@staticmethod
def get_plans() -> list[dict[str, Any]]:
return [{"id": 0, "plan_name": "kentik-plan-1"}, {"id": 1, "plan_name": "kentik-plan-2"}]
@staticmethod
def get_plan(plan_id: int) -> dict[str, Any]:
return {"id": plan_id, "plan_name": "kentik-mocked-plan"}
@staticmethod
def get_plan_by_name(plan_name: str) -> dict[str, Any]:
return {"id": 0, "plan_name": plan_name}
@staticmethod
def create_device(device: NewKentikDevice) -> dict[str, Any]:
return device.model_dump()
@staticmethod
def update_device(device_id: int, updated_device: dict[str, Any]) -> dict[str, Any]:
return {"id": device_id, **updated_device}
@staticmethod
def remove_device(device_id: int, *, archive: bool) -> None:
pass
@staticmethod
def remove_device_by_fqdn(fqdn: str, *, archive: bool) -> None:
pass