From c605af6ccc45015e4543e3f26b35cd2afb2d7e75 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Thu, 7 May 2020 08:32:10 +0200 Subject: [PATCH] Add discovery support for new ozw integration (#1701) --- supervisor/discovery/services/zwave_mqtt.py | 21 ++++++++++++++++++ tests/discovery/test_zwave_mqtt.py | 24 +++++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 supervisor/discovery/services/zwave_mqtt.py create mode 100644 tests/discovery/test_zwave_mqtt.py diff --git a/supervisor/discovery/services/zwave_mqtt.py b/supervisor/discovery/services/zwave_mqtt.py new file mode 100644 index 000000000..543b17664 --- /dev/null +++ b/supervisor/discovery/services/zwave_mqtt.py @@ -0,0 +1,21 @@ +"""Discovery service for Zwave MQTT.""" +import voluptuous as vol + +from supervisor.validate import network_port + +from ..const import ( + ATTR_HOST, + ATTR_PASSWORD, + ATTR_PORT, + ATTR_USERNAME, +) + +# pylint: disable=no-value-for-parameter +SCHEMA = vol.Schema( + { + vol.Required(ATTR_HOST): vol.Coerce(str), + vol.Required(ATTR_PORT): network_port, + vol.Required(ATTR_USERNAME): vol.Coerce(str), + vol.Required(ATTR_PASSWORD): vol.Coerce(str), + } +) diff --git a/tests/discovery/test_zwave_mqtt.py b/tests/discovery/test_zwave_mqtt.py new file mode 100644 index 000000000..d5d60cecc --- /dev/null +++ b/tests/discovery/test_zwave_mqtt.py @@ -0,0 +1,24 @@ +"""Test Zwave MQTT discovery.""" + +import voluptuous as vol +import pytest + +from supervisor.discovery.validate import valid_discovery_config + + +def test_good_config(): + """Test good zwave mqtt config.""" + + valid_discovery_config( + "zwave_mqtt", + {"host": "test", "port": 3812, "username": "bla", "password": "test"}, + ) + + +def test_bad_config(): + """Test good zwave mqtt config.""" + + with pytest.raises(vol.Invalid): + valid_discovery_config( + "zwave_mqtt", {"host": "test", "username": "bla", "ssl": True} + )