1
0
mirror of https://github.com/home-assistant/supervisor.git synced 2025-12-24 12:29:08 +00:00
Files
supervisor/tests/hardware/test_policy.py
Pascal Vizeli a0ac8ced31 Fix handling with full access / blocked devices (#2581)
* Fix handling with full access / blocked devices

* address comment

* Use name

* Add validation warning

* add GPIO check too

* remove warning

* return directly

* fix tests
2021-02-17 15:48:48 +01:00

86 lines
2.0 KiB
Python

"""Test HardwareManager Module."""
from pathlib import Path
from supervisor.hardware.const import PolicyGroup
from supervisor.hardware.data import Device
# pylint: disable=protected-access
def test_device_policy(coresys):
"""Test device cgroup policy."""
device = Device(
"ttyACM0",
Path("/dev/ttyACM0"),
Path("/sys/bus/usb/001"),
"tty",
[],
{"MAJOR": "5", "MINOR": "10"},
)
assert coresys.hardware.policy.get_cgroups_rule(device) == "c 5:10 rwm"
disk = Device(
"sda0",
Path("/dev/sda0"),
Path("/sys/bus/usb/001"),
"block",
[],
{"MAJOR": "5", "MINOR": "10"},
)
assert coresys.hardware.policy.get_cgroups_rule(disk) == "b 5:10 rwm"
def test_policy_group(coresys):
"""Test policy group generator."""
assert coresys.hardware.policy.get_cgroups_rules(PolicyGroup.VIDEO) == [
"c 239:* rwm",
"c 29:* rwm",
"c 81:* rwm",
"c 251:* rwm",
"c 242:* rwm",
"c 226:* rwm",
]
def test_device_in_policy(coresys):
"""Test device cgroup policy."""
device = Device(
"ttyACM0",
Path("/dev/ttyACM0"),
Path("/sys/bus/usb/001"),
"tty",
[],
{"MAJOR": "204", "MINOR": "10"},
)
assert coresys.hardware.policy.is_match_cgroup(PolicyGroup.UART, device)
assert not coresys.hardware.policy.is_match_cgroup(PolicyGroup.GPIO, device)
def test_allowed_access(coresys):
"""Test if is allow to access for device."""
disk = Device(
"sda0",
Path("/dev/sda0"),
Path("/sys/bus/usb/001"),
"block",
[],
{"MAJOR": "5", "MINOR": "10", "ID_FS_LABEL": "hassos-overlay"},
)
assert not coresys.hardware.policy.allowed_for_access(disk)
device = Device(
"ttyACM0",
Path("/dev/ttyACM0"),
Path("/sys/bus/usb/001"),
"tty",
[],
{"MAJOR": "204", "MINOR": "10"},
)
assert coresys.hardware.policy.allowed_for_access(device)