Better validation error messages

This commit is contained in:
Otto Winter 2018-11-12 21:00:17 +01:00
parent c3b3ba4923
commit 4f375757a5
No known key found for this signature in database
GPG key ID: DB66C0BE6013F97E
2 changed files with 6 additions and 2 deletions

View file

@ -44,7 +44,8 @@ def validate_recursive_action(value):
item.setdefault(CONF_ACTION_ID, None) item.setdefault(CONF_ACTION_ID, None)
key2 = next((x for x in item if x != CONF_ACTION_ID and x != key), None) key2 = next((x for x in item if x != CONF_ACTION_ID and x != key), None)
if key2 is not None: if key2 is not None:
raise vol.Invalid(u"Cannot have two actions in one item. Key {} overrides {}!" raise vol.Invalid(u"Cannot have two actions in one item. Key '{}' overrides '{}'! "
u"Did you forget to indent the action?"
u"".format(key, key2)) u"".format(key, key2))
validator = ACTION_REGISTRY[key][0] validator = ACTION_REGISTRY[key][0]
value[i] = { value[i] = {
@ -94,6 +95,8 @@ def validate_automation(extra_schema=None, extra_validators=None, single=False):
try: try:
return vol.Schema([schema])(value) return vol.Schema([schema])(value)
except vol.Invalid as err2: except vol.Invalid as err2:
if 'Unable to find action' in str(err):
raise err2
raise vol.MultipleInvalid([err, err2]) raise vol.MultipleInvalid([err, err2])
elif isinstance(value, dict): elif isinstance(value, dict):
if CONF_THEN in value: if CONF_THEN in value:

View file

@ -221,6 +221,7 @@ def is_ip_address(host):
def resolve_ip_address(host): def resolve_ip_address(host):
if is_ip_address(host): if is_ip_address(host):
_LOGGER.info("Connecting to %s", host)
return host return host
_LOGGER.info("Resolving IP Address of %s", host) _LOGGER.info("Resolving IP Address of %s", host)
@ -240,7 +241,7 @@ def resolve_ip_address(host):
host) host)
_LOGGER.error("(If this error persists, please set a static IP address: " _LOGGER.error("(If this error persists, please set a static IP address: "
"https://esphomelib.com/esphomeyaml/components/wifi.html#manual-ips") "https://esphomelib.com/esphomeyaml/components/wifi.html#manual-ips)")
raise OTAError("Errors: {}".format(', '.join(str(x) for x in errors))) raise OTAError("Errors: {}".format(', '.join(str(x) for x in errors)))
_LOGGER.info(" -> %s", ip) _LOGGER.info(" -> %s", ip)