tests(get_iface): add unittests

This commit is contained in:
Mark Paronyan 2025-03-23 14:28:58 +00:00
parent bab173ee52
commit f21887dbab
No known key found for this signature in database
GPG Key ID: 8DC7338A87FE22F8

View File

@ -423,3 +423,86 @@ class TestLinkRoutes:
assert mock.called
assert response.status_code == status.HTTP_200_OK
assert response.json() == FILTERS
async def test_get_udp_interface(self, app: FastAPI, client: AsyncClient, project: Project) -> None:
"""
Test getting UDP tunnel interface information from a link.
"""
link = Link(project)
project._links = {link.id: link}
cloud_node = MagicMock()
cloud_node.node_type = "cloud"
cloud_node.id = "cloud-node-id"
cloud_node.name = "Cloud1"
compute = MagicMock()
response = MagicMock()
response.json = {
"ports_mapping": [
{
"port_number": 1,
"type": "udp",
"lport": 20000,
"rhost": "127.0.0.1",
"rport": 30000,
"name": "UDP tunnel 1"
}
]
}
compute.get = AsyncioMagicMock(return_value=response)
cloud_node.compute = compute
link._nodes = [{"node": cloud_node, "port_number": 1}]
response = await client.get(app.url_path_for("get_iface", project_id=project.id, link_id=link.id))
assert response.status_code == status.HTTP_200_OK
result = response.json()
assert "cloud-node-id" in result
udp_info = result["cloud-node-id"]
assert udp_info["lport"] == 20000
assert udp_info["rhost"] == "127.0.0.1"
assert udp_info["rport"] == 30000
assert udp_info["type"] == "udp"
async def test_get_ethernet_interface(self, app: FastAPI, client: AsyncClient, project: Project) -> None:
"""
Test getting ethernet interface information from a link.
"""
link = Link(project)
project._links = {link.id: link}
cloud_node = MagicMock()
cloud_node.node_type = "cloud"
cloud_node.id = "cloud-node-id"
cloud_node.name = "Cloud1"
compute = MagicMock()
response = MagicMock()
response.json = {
"ports_mapping": [
{
"port_number": 1,
"type": "ethernet",
"interface": "eth0",
"name": "Ethernet 1"
}
]
}
compute.get = AsyncioMagicMock(return_value=response)
cloud_node.compute = compute
link._nodes = [{"node": cloud_node, "port_number": 1}]
response = await client.get(app.url_path_for("get_iface", project_id=project.id, link_id=link.id))
assert response.status_code == status.HTTP_200_OK
result = response.json()
assert "cloud-node-id" in result
interface_info = result["cloud-node-id"]
assert interface_info["interface"] == "eth0"
assert interface_info["type"] == "ethernet"