mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-11-09 10:59:43 +00:00
It seems that the codebase is not formatted with the latest ruff version. This PR reformats the codebase with ruff 0.5.7.
134 lines
3.4 KiB
Python
134 lines
3.4 KiB
Python
"""Test HardwareManager Module."""
|
|
|
|
from pathlib import Path
|
|
|
|
from supervisor.hardware.const import UdevSubsystem
|
|
from supervisor.hardware.data import Device
|
|
|
|
# pylint: disable=protected-access
|
|
|
|
|
|
def test_initial_device_initialize(coresys):
|
|
"""Initialize the local hardware."""
|
|
|
|
assert not coresys.hardware.devices
|
|
|
|
coresys.hardware._import_devices()
|
|
|
|
assert coresys.hardware.devices
|
|
|
|
|
|
def test_device_path_lookup(coresys):
|
|
"""Test device lookup."""
|
|
for device in (
|
|
Device(
|
|
"ttyACM0",
|
|
Path("/dev/ttyACM0"),
|
|
Path("/sys/bus/usb/001"),
|
|
"tty",
|
|
None,
|
|
[],
|
|
{"ID_VENDOR": "xy"},
|
|
[],
|
|
),
|
|
Device(
|
|
"ttyUSB0",
|
|
Path("/dev/ttyUSB0"),
|
|
Path("/sys/bus/usb/000"),
|
|
"tty",
|
|
None,
|
|
[Path("/dev/ttyS1"), Path("/dev/serial/by-id/xyx")],
|
|
{"ID_VENDOR": "xy"},
|
|
[],
|
|
),
|
|
Device(
|
|
"ttyS0",
|
|
Path("/dev/ttyS0"),
|
|
Path("/sys/bus/usb/002"),
|
|
"tty",
|
|
None,
|
|
[],
|
|
{},
|
|
[],
|
|
),
|
|
Device(
|
|
"video1",
|
|
Path("/dev/video1"),
|
|
Path("/sys/bus/usb/003"),
|
|
"misc",
|
|
None,
|
|
[],
|
|
{"ID_VENDOR": "xy"},
|
|
[],
|
|
),
|
|
):
|
|
coresys.hardware.update_device(device)
|
|
|
|
assert coresys.hardware.exists_device_node(Path("/dev/ttyACM0"))
|
|
assert coresys.hardware.exists_device_node(Path("/dev/ttyS1"))
|
|
assert coresys.hardware.exists_device_node(Path("/dev/ttyS0"))
|
|
assert coresys.hardware.exists_device_node(Path("/dev/serial/by-id/xyx"))
|
|
assert coresys.hardware.exists_device_node(Path("/sys/bus/usb/001"))
|
|
|
|
assert not coresys.hardware.exists_device_node(Path("/dev/ttyS2"))
|
|
assert not coresys.hardware.exists_device_node(Path("/dev/ttyUSB1"))
|
|
|
|
|
|
def test_device_filter(coresys):
|
|
"""Test device filter."""
|
|
for device in (
|
|
Device(
|
|
"ttyACM0",
|
|
Path("/dev/ttyACM0"),
|
|
Path("/sys/bus/usb/000"),
|
|
"tty",
|
|
None,
|
|
[],
|
|
{"ID_VENDOR": "xy"},
|
|
[],
|
|
),
|
|
Device(
|
|
"ttyUSB0",
|
|
Path("/dev/ttyUSB0"),
|
|
Path("/sys/bus/usb/001"),
|
|
"tty",
|
|
None,
|
|
[Path("/dev/ttyS1"), Path("/dev/serial/by-id/xyx")],
|
|
{"ID_VENDOR": "xy"},
|
|
[],
|
|
),
|
|
Device(
|
|
"ttyS0",
|
|
Path("/dev/ttyS0"),
|
|
Path("/sys/bus/usb/002"),
|
|
"tty",
|
|
None,
|
|
[],
|
|
{},
|
|
[],
|
|
),
|
|
Device(
|
|
"video1",
|
|
Path("/dev/video1"),
|
|
Path("/sys/bus/usb/003"),
|
|
"misc",
|
|
None,
|
|
[],
|
|
{"ID_VENDOR": "xy"},
|
|
[],
|
|
),
|
|
):
|
|
coresys.hardware.update_device(device)
|
|
|
|
assert sorted(
|
|
device.path for device in coresys.hardware.filter_devices()
|
|
) == sorted(device.path for device in coresys.hardware.devices)
|
|
assert sorted(
|
|
device.path
|
|
for device in coresys.hardware.filter_devices(subsystem=UdevSubsystem.SERIAL)
|
|
) == sorted(
|
|
device.path
|
|
for device in coresys.hardware.devices
|
|
if device.subsystem == UdevSubsystem.SERIAL
|
|
)
|