supervisor/tests/api/test_os.py
2021-10-04 22:46:28 +02:00

89 lines
2.3 KiB
Python

"""Test OS API."""
from pathlib import Path
import pytest
from supervisor.coresys import CoreSys
from supervisor.hardware.data import Device
# pylint: disable=protected-access
@pytest.mark.asyncio
async def test_api_os_info(api_client):
"""Test docker info api."""
resp = await api_client.get("/os/info")
result = await resp.json()
for attr in (
"version",
"version_latest",
"update_available",
"board",
"boot",
"data_disk",
):
assert attr in result["data"]
@pytest.mark.asyncio
async def test_api_os_info_with_agent(api_client, coresys: CoreSys):
"""Test docker info api."""
await coresys.dbus.agent.connect()
await coresys.dbus.agent.update()
resp = await api_client.get("/os/info")
result = await resp.json()
assert result["data"]["data_disk"] == "/dev/sda"
@pytest.mark.asyncio
async def test_api_os_datadisk_move(api_client, coresys: CoreSys):
"""Test datadisk move without exists disk."""
await coresys.dbus.agent.connect()
await coresys.dbus.agent.update()
coresys.os._available = True
resp = await api_client.post("/os/datadisk/move", json={"device": "/dev/sdaaaa"})
result = await resp.json()
assert result["message"] == "'/dev/sdaaaa' don't exists on the host!"
@pytest.mark.asyncio
async def test_api_os_datadisk_list(api_client, coresys: CoreSys):
"""Test datadisk list function."""
await coresys.dbus.agent.connect()
await coresys.dbus.agent.update()
coresys.hardware.update_device(
Device(
"sda",
Path("/dev/sda"),
Path("/sys/bus/usb/000"),
"block",
None,
[Path("/dev/serial/by-id/test")],
{"ID_NAME": "xy", "MINOR": "0", "DEVTYPE": "disk"},
[],
)
)
coresys.hardware.update_device(
Device(
"sda1",
Path("/dev/sda1"),
Path("/sys/bus/usb/000/1"),
"block",
None,
[Path("/dev/serial/by-id/test1")],
{"ID_NAME": "xy", "MINOR": "1", "DEVTYPE": "partition"},
[],
)
)
resp = await api_client.get("/os/datadisk/list")
result = await resp.json()
assert result["data"]["devices"] == ["/dev/sda"]