From d768b2fa1e9673079bc065831116d711ee0db9f2 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Mon, 8 Feb 2021 21:37:44 +0100 Subject: [PATCH] Fix UI options without filter (#2536) --- supervisor/addons/options.py | 2 +- tests/addons/test_options.py | 47 ++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/supervisor/addons/options.py b/supervisor/addons/options.py index ab5299c9e..1b7caf3b7 100644 --- a/supervisor/addons/options.py +++ b/supervisor/addons/options.py @@ -317,7 +317,7 @@ class UiOptions(CoreSysAttributes): else: ui_node["options"] = [ (device.by_id or device.path).as_posix() - for device in self.sys_hardware.devices() + for device in self.sys_hardware.devices ] ui_schema.append(ui_node) diff --git a/tests/addons/test_options.py b/tests/addons/test_options.py index 165dc2cf2..1cd52171c 100644 --- a/tests/addons/test_options.py +++ b/tests/addons/test_options.py @@ -252,3 +252,50 @@ def test_ui_simple_device_schema(coresys): ] ) assert data[-1]["type"] == "select" + + +def test_ui_simple_device_schema_no_filter(coresys): + """Test with simple schema without filter.""" + for device in ( + Device( + "ttyACM0", + Path("/dev/ttyACM0"), + Path("/sys/bus/usb/002"), + "tty", + [], + {"ID_VENDOR": "xy"}, + ), + Device( + "ttyUSB0", + Path("/dev/ttyUSB0"), + Path("/sys/bus/usb/001"), + "tty", + [Path("/dev/ttyS1"), Path("/dev/serial/by-id/xyx")], + {"ID_VENDOR": "xy"}, + ), + Device("ttyS0", Path("/dev/ttyS0"), Path("/sys/bus/usb/003"), "tty", [], {}), + Device( + "video1", + Path("/dev/video1"), + Path("/sys/bus/usb/004"), + "misc", + [], + {"ID_VENDOR": "xy"}, + ), + ): + coresys.hardware.update_device(device) + + data = UiOptions(coresys)( + { + "name": "str", + "password": "password", + "fires": "bool", + "alias": "str?", + "input": "device", + }, + ) + + assert sorted(data[-1]["options"]) == sorted( + ["/dev/serial/by-id/xyx", "/dev/ttyACM0", "/dev/ttyS0", "/dev/video1"] + ) + assert data[-1]["type"] == "select"