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} + )