mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 15:17:35 +00:00
Validate min/max for input_text config (#148909)
This commit is contained in:
parent
b33a556ca5
commit
40cabc8d70
@ -15,6 +15,7 @@ from homeassistant.const import (
|
||||
CONF_MODE,
|
||||
CONF_NAME,
|
||||
CONF_UNIT_OF_MEASUREMENT,
|
||||
MAX_LENGTH_STATE_STATE,
|
||||
SERVICE_RELOAD,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant, ServiceCall, callback
|
||||
@ -51,8 +52,12 @@ STORAGE_VERSION = 1
|
||||
|
||||
STORAGE_FIELDS: VolDictType = {
|
||||
vol.Required(CONF_NAME): vol.All(str, vol.Length(min=1)),
|
||||
vol.Optional(CONF_MIN, default=CONF_MIN_VALUE): vol.Coerce(int),
|
||||
vol.Optional(CONF_MAX, default=CONF_MAX_VALUE): vol.Coerce(int),
|
||||
vol.Optional(CONF_MIN, default=CONF_MIN_VALUE): vol.All(
|
||||
vol.Coerce(int), vol.Range(0, MAX_LENGTH_STATE_STATE)
|
||||
),
|
||||
vol.Optional(CONF_MAX, default=CONF_MAX_VALUE): vol.All(
|
||||
vol.Coerce(int), vol.Range(1, MAX_LENGTH_STATE_STATE)
|
||||
),
|
||||
vol.Optional(CONF_INITIAL, ""): cv.string,
|
||||
vol.Optional(CONF_ICON): cv.icon,
|
||||
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
|
||||
@ -84,8 +89,12 @@ CONFIG_SCHEMA = vol.Schema(
|
||||
lambda value: value or {},
|
||||
{
|
||||
vol.Optional(CONF_NAME): cv.string,
|
||||
vol.Optional(CONF_MIN, default=CONF_MIN_VALUE): vol.Coerce(int),
|
||||
vol.Optional(CONF_MAX, default=CONF_MAX_VALUE): vol.Coerce(int),
|
||||
vol.Optional(CONF_MIN, default=CONF_MIN_VALUE): vol.All(
|
||||
vol.Coerce(int), vol.Range(0, MAX_LENGTH_STATE_STATE)
|
||||
),
|
||||
vol.Optional(CONF_MAX, default=CONF_MAX_VALUE): vol.All(
|
||||
vol.Coerce(int), vol.Range(1, MAX_LENGTH_STATE_STATE)
|
||||
),
|
||||
vol.Optional(CONF_INITIAL): cv.string,
|
||||
vol.Optional(CONF_ICON): cv.icon,
|
||||
vol.Optional(CONF_UNIT_OF_MEASUREMENT): cv.string,
|
||||
|
@ -81,16 +81,21 @@ async def async_set_value(hass: HomeAssistant, entity_id: str, value: str) -> No
|
||||
)
|
||||
|
||||
|
||||
async def test_config(hass: HomeAssistant) -> None:
|
||||
"""Test config."""
|
||||
invalid_configs = [
|
||||
@pytest.mark.parametrize(
|
||||
"invalid_config",
|
||||
[
|
||||
None,
|
||||
{},
|
||||
{"name with space": None},
|
||||
{"test_1": {"min": 50, "max": 50}},
|
||||
]
|
||||
for cfg in invalid_configs:
|
||||
assert not await async_setup_component(hass, DOMAIN, {DOMAIN: cfg})
|
||||
{"test_1": {"min": 51, "max": 50}},
|
||||
{"test_1": {"min": -1, "max": 100}},
|
||||
{"test_1": {"min": 0, "max": 256}},
|
||||
{"test_1": {"min": 0, "max": 3, "initial": "aaaaa"}},
|
||||
],
|
||||
)
|
||||
async def test_config(hass: HomeAssistant, invalid_config) -> None:
|
||||
"""Test config."""
|
||||
|
||||
assert not await async_setup_component(hass, DOMAIN, {DOMAIN: invalid_config})
|
||||
|
||||
|
||||
async def test_set_value(hass: HomeAssistant) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user