mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-12-11 12:45:48 -06:00
78 lines
2.7 KiB
Python
78 lines
2.7 KiB
Python
"""Test NetwrokInterface API."""
|
|
import pytest
|
|
|
|
from supervisor.const import DOCKER_NETWORK, DOCKER_NETWORK_MASK
|
|
|
|
from tests.const import TEST_INTERFACE
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_api_network_info(api_client, coresys):
|
|
"""Test network manager api."""
|
|
resp = await api_client.get("/network/info")
|
|
result = await resp.json()
|
|
assert TEST_INTERFACE in result["data"]["interfaces"]
|
|
|
|
assert result["data"]["docker"]["interface"] == DOCKER_NETWORK
|
|
assert result["data"]["docker"]["address"] == str(DOCKER_NETWORK_MASK)
|
|
assert result["data"]["docker"]["dns"] == str(coresys.docker.network.dns)
|
|
assert result["data"]["docker"]["gateway"] == str(coresys.docker.network.gateway)
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_api_network_interface_info(api_client):
|
|
"""Test network manager api."""
|
|
resp = await api_client.get(f"/network/interface/{TEST_INTERFACE}/info")
|
|
result = await resp.json()
|
|
assert result["data"]["ip_address"] == "192.168.2.148/24"
|
|
assert result["data"]["interface"] == TEST_INTERFACE
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_api_network_interface_info_default(api_client):
|
|
"""Test network manager default api."""
|
|
resp = await api_client.get("/network/interface/default/info")
|
|
result = await resp.json()
|
|
assert result["data"]["ip_address"] == "192.168.2.148/24"
|
|
assert result["data"]["interface"] == TEST_INTERFACE
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_api_network_interface_update(api_client):
|
|
"""Test network manager api."""
|
|
resp = await api_client.post(
|
|
f"/network/interface/{TEST_INTERFACE}/update",
|
|
json={"method": "static", "dns": ["1.1.1.1"], "address": "192.168.2.148/24"},
|
|
)
|
|
result = await resp.json()
|
|
assert result["result"] == "ok"
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_api_network_interface_info_invalid(api_client):
|
|
"""Test network manager api."""
|
|
resp = await api_client.get("/network/interface/invalid/info")
|
|
result = await resp.json()
|
|
assert not result["data"]
|
|
|
|
|
|
@pytest.mark.asyncio
|
|
async def test_api_network_interface_update_invalid(api_client):
|
|
"""Test network manager api."""
|
|
resp = await api_client.post("/network/interface/invalid/update", json={})
|
|
result = await resp.json()
|
|
assert result["message"] == "Interface invalid does not exsist"
|
|
|
|
resp = await api_client.post(f"/network/interface/{TEST_INTERFACE}/update", json={})
|
|
result = await resp.json()
|
|
assert result["message"] == "You need to supply at least one option to update"
|
|
|
|
resp = await api_client.post(
|
|
f"/network/interface/{TEST_INTERFACE}/update", json={"dns": "1.1.1.1"}
|
|
)
|
|
result = await resp.json()
|
|
assert (
|
|
result["message"]
|
|
== "expected a list for dictionary value @ data['dns']. Got '1.1.1.1'"
|
|
)
|