Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve validation of device trigger config #26910

Merged

Conversation

@emontnemery
Copy link
Contributor

commented Sep 25, 2019

Description:

Improve validation of device trigger config.
This only includes trigger part from #26830

Improve both when loading at startup, and when an automation is modified through the automation editor UI.

Checklist:

  • The code change is tested and works locally.
  • Local tests pass with tox. Your PR cannot be merged unless tests pass
  • There is no commented out code in this PR.
  • I have followed the [development checklist][dev-checklist]

If the code does not interact with devices:

  • Tests have been added to verify that the new code works.
@@ -375,6 +381,63 @@ def device_state_attributes(self):
return {CONF_ID: self._id}


async def async_validate_config_item(hass, config, full_config):

This comment has been minimized.

Copy link
@balloob

balloob Sep 25, 2019

Member

Let's move this into a new file config.py

This comment has been minimized.

Copy link
@emontnemery

emontnemery Sep 26, 2019

Author Contributor

Fixed

return config


async def async_validate_config(hass, config):

This comment has been minimized.

Copy link
@balloob

balloob Sep 25, 2019

Member

This too .

This comment has been minimized.

Copy link
@emontnemery

emontnemery Sep 26, 2019

Author Contributor

Fixed

@@ -1,18 +1,28 @@
"""Offer device oriented automation."""
import voluptuous as vol

from homeassistant.const import CONF_DOMAIN, CONF_PLATFORM
import homeassistant.components.device_automation as device_automation
from homeassistant.const import CONF_DEVICE_ID, CONF_DOMAIN, CONF_PLATFORM
from homeassistant.loader import async_get_integration


# mypy: allow-untyped-defs, no-check-untyped-defs

TRIGGER_SCHEMA = vol.Schema(

This comment has been minimized.

Copy link
@balloob

balloob Sep 25, 2019

Member

We should expand the TRIGGER_BASE_SCHEMA from device_automation and add extra=vol.ALLOW_EXTRA

This comment has been minimized.

Copy link
@balloob

balloob Sep 25, 2019

Member
Suggested change
TRIGGER_SCHEMA = vol.Schema(
TRIGGER_SCHEMA = device_automation.TRIGGER_BASE_SCHEMA.extend(

This comment has been minimized.

Copy link
@emontnemery

emontnemery Sep 26, 2019

Author Contributor

Fixed

extra=vol.ALLOW_EXTRA,
)


async def async_validate_trigger_config(hass, config):
"""Validate config."""
return await device_automation.async_validate_trigger_config(hass, config)

This comment has been minimized.

Copy link
@balloob

balloob Sep 25, 2019

Member

Let's inline this function here.

This comment has been minimized.

Copy link
@emontnemery

emontnemery Sep 26, 2019

Author Contributor

Fixed

# Check if the integration has a custom config validator
config_validator = None
try:
config_validator = integration.get_platform("config")

This comment has been minimized.

Copy link
@balloob

balloob Sep 25, 2019

Member

Note, we should add dev docs for this right away.

emontnemery added 3 commits Sep 26, 2019
Dev automation moved this from Needs review to Reviewer approved Sep 27, 2019
@emontnemery emontnemery merged commit e57e7e8 into home-assistant:dev Sep 27, 2019
11 checks passed
11 checks passed
CI Build #20190927.33 succeeded
Details
CI (FullCheck Mypy) FullCheck Mypy succeeded
Details
CI (FullCheck Pylint) FullCheck Pylint succeeded
Details
CI (Overview CheckFormat) Overview CheckFormat succeeded
Details
CI (Overview Lint) Overview Lint succeeded
Details
CI (Overview Validate) Overview Validate succeeded
Details
CI (Tests PyTest Python36) Tests PyTest Python36 succeeded
Details
CI (Tests PyTest Python37) Tests PyTest Python37 succeeded
Details
cla-bot Everyone involved has signed the CLA
codecov/patch 100% of diff hit (target 94.16%)
Details
codecov/project 94.19% (target 90%)
Details
Dev automation moved this from Reviewer approved to Done Sep 27, 2019
@lock lock bot locked and limited conversation to collaborators Sep 28, 2019
@emontnemery emontnemery deleted the emontnemery:device_trigger_config_validation branch Oct 3, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
Dev
  
Done
3 participants
You can’t perform that action at this time.