Improve ecobee service schemas (#26955)
* Validate date and time in create vaction Improve validation with utility functions. * Improve validate ATTR_VACATION_NAME * Add tests for ecobee.util functions * Revise tests as standalone functions
This commit is contained in:
parent
1c72a246a0
commit
2dfdc5f6f8
3 changed files with 67 additions and 6 deletions
|
@ -37,6 +37,7 @@ from homeassistant.util.temperature import convert
|
|||
import homeassistant.helpers.config_validation as cv
|
||||
|
||||
from .const import DOMAIN, _LOGGER
|
||||
from .util import ecobee_date, ecobee_time
|
||||
|
||||
ATTR_COOL_TEMP = "cool_temp"
|
||||
ATTR_END_DATE = "end_date"
|
||||
|
@ -106,13 +107,17 @@ DTGROUP_INCLUSIVE_MSG = (
|
|||
CREATE_VACATION_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_ENTITY_ID): cv.entity_id,
|
||||
vol.Required(ATTR_VACATION_NAME): cv.string,
|
||||
vol.Required(ATTR_VACATION_NAME): vol.All(cv.string, vol.Length(max=12)),
|
||||
vol.Required(ATTR_COOL_TEMP): vol.Coerce(float),
|
||||
vol.Required(ATTR_HEAT_TEMP): vol.Coerce(float),
|
||||
vol.Inclusive(ATTR_START_DATE, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG): cv.string,
|
||||
vol.Inclusive(ATTR_START_TIME, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG): cv.string,
|
||||
vol.Inclusive(ATTR_END_DATE, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG): cv.string,
|
||||
vol.Inclusive(ATTR_END_TIME, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG): cv.string,
|
||||
vol.Inclusive(
|
||||
ATTR_START_DATE, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG
|
||||
): ecobee_date,
|
||||
vol.Inclusive(
|
||||
ATTR_START_TIME, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG
|
||||
): ecobee_time,
|
||||
vol.Inclusive(ATTR_END_DATE, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG): ecobee_date,
|
||||
vol.Inclusive(ATTR_END_TIME, "dtgroup", msg=DTGROUP_INCLUSIVE_MSG): ecobee_time,
|
||||
vol.Optional(ATTR_FAN_MODE, default="auto"): vol.Any("auto", "on"),
|
||||
vol.Optional(ATTR_FAN_MIN_ON_TIME, default=0): vol.All(
|
||||
int, vol.Range(min=0, max=60)
|
||||
|
@ -123,7 +128,7 @@ CREATE_VACATION_SCHEMA = vol.Schema(
|
|||
DELETE_VACATION_SCHEMA = vol.Schema(
|
||||
{
|
||||
vol.Required(ATTR_ENTITY_ID): cv.entity_id,
|
||||
vol.Required(ATTR_VACATION_NAME): cv.string,
|
||||
vol.Required(ATTR_VACATION_NAME): vol.All(cv.string, vol.Length(max=12)),
|
||||
}
|
||||
)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue