Add select selector for blueprints (#45803)

Co-authored-by: Paulus Schoutsen <paulus@home-assistant.io>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
This commit is contained in:
Matteo Agnoletto 2021-02-08 14:03:26 +01:00 committed by GitHub
parent 2744d64a3e
commit eaa2d371a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 32 additions and 0 deletions

View File

@ -176,3 +176,12 @@ class StringSelector(Selector):
"""Selector for a multi-line text string."""
CONFIG_SCHEMA = vol.Schema({vol.Optional("multiline", default=False): bool})
@SELECTORS.register("select")
class SelectSelector(Selector):
"""Selector for an single-choice input select."""
CONFIG_SCHEMA = vol.Schema(
{vol.Required("options"): vol.All([str], vol.Length(min=1))}
)

View File

@ -187,3 +187,26 @@ def test_object_selector_schema(schema):
def test_text_selector_schema(schema):
"""Test text selector."""
selector.validate_selector({"text": schema})
@pytest.mark.parametrize(
"schema",
({"options": ["red", "green", "blue"]},),
)
def test_select_selector_schema(schema):
"""Test select selector."""
selector.validate_selector({"select": schema})
@pytest.mark.parametrize(
"schema",
(
{},
{"options": {"hello": "World"}},
{"options": []},
),
)
def test_select_selector_schema_error(schema):
"""Test select selector."""
with pytest.raises(vol.Invalid):
selector.validate_selector({"select": schema})