From 92408bb893d9a5cf58c294b944b8cb6da4a6e31e Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Thu, 5 Jan 2023 19:58:55 +0100 Subject: [PATCH] Add support for ESPHome dashboard discovery (#4084) --- supervisor/discovery/services/esphome.py | 9 +++++++++ tests/discovery/test_esphome.py | 25 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 supervisor/discovery/services/esphome.py create mode 100644 tests/discovery/test_esphome.py diff --git a/supervisor/discovery/services/esphome.py b/supervisor/discovery/services/esphome.py new file mode 100644 index 000000000..f7693e073 --- /dev/null +++ b/supervisor/discovery/services/esphome.py @@ -0,0 +1,9 @@ +"""Discovery service for the ESPHome Dashboard.""" +import voluptuous as vol + +from ...validate import network_port +from ..const import ATTR_HOST, ATTR_PORT + +SCHEMA = vol.Schema( + {vol.Required(ATTR_HOST): str, vol.Required(ATTR_PORT): network_port} +) diff --git a/tests/discovery/test_esphome.py b/tests/discovery/test_esphome.py new file mode 100644 index 000000000..d7bf2eaab --- /dev/null +++ b/tests/discovery/test_esphome.py @@ -0,0 +1,25 @@ +"""Test ESPHome Dashboard discovery.""" + +import pytest +import voluptuous as vol + +from supervisor.discovery.validate import valid_discovery_config + + +def test_good_config(): + """Test good ESPHome config.""" + + valid_discovery_config("esphome", {"host": "test", "port": 6052}) + + +def test_bad_config(): + """Test bad ESPHome config.""" + + with pytest.raises(vol.Invalid): + valid_discovery_config("esphome", {"host": "test"}) + + with pytest.raises(vol.Invalid): + valid_discovery_config("esphome", {"port": 6052}) + + with pytest.raises(vol.Invalid): + valid_discovery_config("esphome", {"port": -1})