mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-04-21 19:57:15 +00:00
89 lines
2.3 KiB
Python
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"]
|