mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 04:37:06 +00:00
add tcp/udp port to config validation (#2854)
This commit is contained in:
parent
781fe9c54e
commit
4fcfffc172
@ -62,8 +62,7 @@ CONFIG_SCHEMA = vol.Schema({
|
|||||||
vol.Required(CONF_CODE): cv.string,
|
vol.Required(CONF_CODE): cv.string,
|
||||||
vol.Optional(CONF_ZONES): {vol.Coerce(int): ZONE_SCHEMA},
|
vol.Optional(CONF_ZONES): {vol.Coerce(int): ZONE_SCHEMA},
|
||||||
vol.Optional(CONF_PARTITIONS): {vol.Coerce(int): PARTITION_SCHEMA},
|
vol.Optional(CONF_PARTITIONS): {vol.Coerce(int): PARTITION_SCHEMA},
|
||||||
vol.Optional(CONF_EVL_PORT, default=DEFAULT_PORT):
|
vol.Optional(CONF_EVL_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.All(vol.Coerce(int), vol.Range(min=1, max=65535)),
|
|
||||||
vol.Optional(CONF_EVL_VERSION, default=DEFAULT_EVL_VERSION):
|
vol.Optional(CONF_EVL_VERSION, default=DEFAULT_EVL_VERSION):
|
||||||
vol.All(vol.Coerce(int), vol.Range(min=3, max=4)),
|
vol.All(vol.Coerce(int), vol.Range(min=3, max=4)),
|
||||||
vol.Optional(CONF_EVL_KEEPALIVE, default=DEFAULT_KEEPALIVE):
|
vol.Optional(CONF_EVL_KEEPALIVE, default=DEFAULT_KEEPALIVE):
|
||||||
|
@ -10,6 +10,7 @@ import logging
|
|||||||
from functools import partial
|
from functools import partial
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
|
import homeassistant.helpers.config_validation as cv
|
||||||
from homeassistant.const import (EVENT_HOMEASSISTANT_STOP, STATE_UNKNOWN,
|
from homeassistant.const import (EVENT_HOMEASSISTANT_STOP, STATE_UNKNOWN,
|
||||||
CONF_USERNAME, CONF_PASSWORD)
|
CONF_USERNAME, CONF_PASSWORD)
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
@ -97,25 +98,21 @@ CONF_RESOLVENAMES = 'resolvenames'
|
|||||||
CONF_DELAY = 'delay'
|
CONF_DELAY = 'delay'
|
||||||
|
|
||||||
PLATFORM_SCHEMA = vol.Schema({
|
PLATFORM_SCHEMA = vol.Schema({
|
||||||
vol.Required(CONF_LOCAL_IP): vol.Coerce(str),
|
vol.Required(CONF_LOCAL_IP): cv.string,
|
||||||
vol.Optional(CONF_LOCAL_PORT, default=8943):
|
vol.Optional(CONF_LOCAL_PORT, default=8943): cv.port,
|
||||||
vol.All(vol.Coerce(int),
|
vol.Required(CONF_REMOTE_IP): cv.string,
|
||||||
vol.Range(min=1, max=65535)),
|
vol.Optional(CONF_REMOTE_PORT, default=2001): cv.port,
|
||||||
vol.Required(CONF_REMOTE_IP): vol.Coerce(str),
|
|
||||||
vol.Optional(CONF_REMOTE_PORT, default=2001):
|
|
||||||
vol.All(vol.Coerce(int),
|
|
||||||
vol.Range(min=1, max=65535)),
|
|
||||||
vol.Optional(CONF_RESOLVENAMES, default=False):
|
vol.Optional(CONF_RESOLVENAMES, default=False):
|
||||||
vol.In(CONF_RESOLVENAMES_OPTIONS),
|
vol.In(CONF_RESOLVENAMES_OPTIONS),
|
||||||
vol.Optional(CONF_USERNAME, default="Admin"): vol.Coerce(str),
|
vol.Optional(CONF_USERNAME, default="Admin"): cv.string,
|
||||||
vol.Optional(CONF_PASSWORD, default=""): vol.Coerce(str),
|
vol.Optional(CONF_PASSWORD, default=""): cv.string,
|
||||||
vol.Optional(CONF_DELAY, default=0.5): vol.Coerce(float)
|
vol.Optional(CONF_DELAY, default=0.5): cv.string,
|
||||||
})
|
})
|
||||||
|
|
||||||
SCHEMA_SERVICE_VIRTUALKEY = vol.Schema({
|
SCHEMA_SERVICE_VIRTUALKEY = vol.Schema({
|
||||||
vol.Required(ATTR_ADDRESS): vol.Coerce(str),
|
vol.Required(ATTR_ADDRESS): cv.string,
|
||||||
vol.Required(ATTR_CHANNEL): vol.Coerce(int),
|
vol.Required(ATTR_CHANNEL): vol.Coerce(int),
|
||||||
vol.Required(ATTR_PARAM): vol.Coerce(str)
|
vol.Required(ATTR_PARAM): cv.string,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,8 +28,7 @@ PLATFORM_SCHEMA = vol.Schema({
|
|||||||
vol.Required(CONF_USER): cv.string,
|
vol.Required(CONF_USER): cv.string,
|
||||||
vol.Required(CONF_PASSWORD): cv.string,
|
vol.Required(CONF_PASSWORD): cv.string,
|
||||||
vol.Required(CONF_SERVER): cv.string,
|
vol.Required(CONF_SERVER): cv.string,
|
||||||
vol.Optional(CONF_PORT, default=DEFAULT_PORT):
|
vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port,
|
||||||
vol.All(vol.Coerce(int), vol.Range(min=1, max=65535)),
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -28,9 +28,7 @@ PLATFORM_SCHEMA = vol.Schema({
|
|||||||
vol.Optional(CONF_SERVER): cv.string,
|
vol.Optional(CONF_SERVER): cv.string,
|
||||||
vol.Optional(CONF_NAME, default='Plex'): cv.string,
|
vol.Optional(CONF_NAME, default='Plex'): cv.string,
|
||||||
vol.Optional(CONF_HOST, default='localhost'): cv.string,
|
vol.Optional(CONF_HOST, default='localhost'): cv.string,
|
||||||
vol.Optional(CONF_PORT, default=32400): vol.All(vol.Coerce(int),
|
vol.Optional(CONF_PORT, default=32400): cv.port,
|
||||||
vol.Range(min=1,
|
|
||||||
max=65535))
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +29,7 @@ latitude = vol.All(vol.Coerce(float), vol.Range(min=-90, max=90),
|
|||||||
longitude = vol.All(vol.Coerce(float), vol.Range(min=-180, max=180),
|
longitude = vol.All(vol.Coerce(float), vol.Range(min=-180, max=180),
|
||||||
msg='invalid longitude')
|
msg='invalid longitude')
|
||||||
sun_event = vol.All(vol.Lower, vol.Any(SUN_EVENT_SUNSET, SUN_EVENT_SUNRISE))
|
sun_event = vol.All(vol.Lower, vol.Any(SUN_EVENT_SUNSET, SUN_EVENT_SUNRISE))
|
||||||
|
port = vol.All(vol.Coerce(int), vol.Range(min=1, max=65535))
|
||||||
|
|
||||||
# typing typevar
|
# typing typevar
|
||||||
T = TypeVar('T')
|
T = TypeVar('T')
|
||||||
|
@ -47,6 +47,18 @@ def test_longitude():
|
|||||||
schema(value)
|
schema(value)
|
||||||
|
|
||||||
|
|
||||||
|
def test_port():
|
||||||
|
"""Test tcp/udp network port."""
|
||||||
|
schema = vol.Schema(cv.port)
|
||||||
|
|
||||||
|
for value in('invalid', None, -1, 0, 80000, '81000'):
|
||||||
|
with pytest.raises(vol.MultipleInvalid):
|
||||||
|
schema(value)
|
||||||
|
|
||||||
|
for value in ('1000', 21, 24574):
|
||||||
|
schema(value)
|
||||||
|
|
||||||
|
|
||||||
def test_platform_config():
|
def test_platform_config():
|
||||||
"""Test platform config validation."""
|
"""Test platform config validation."""
|
||||||
for value in (
|
for value in (
|
||||||
|
Loading…
x
Reference in New Issue
Block a user