From c1c319d4d1500bcc8054bddba17e16873832b5c3 Mon Sep 17 00:00:00 2001 From: Erik Montnemery Date: Thu, 1 Jun 2023 13:15:48 +0200 Subject: [PATCH] Rename `cv.no_yaml_config_schema` to `cv.config_entry_only_config_schema` (#93908) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Rename cv.no_yaml_config_schema to cv.config_entry_only_config_schema * ✏️ --- .../components/broadlink/__init__.py | 2 +- homeassistant/components/discord/__init__.py | 2 +- homeassistant/components/flux_led/__init__.py | 2 +- .../google_assistant_sdk/__init__.py | 2 +- .../components/google_mail/__init__.py | 2 +- .../components/homeassistant/strings.json | 2 +- .../components/homekit_controller/__init__.py | 2 +- homeassistant/components/mjpeg/__init__.py | 2 +- homeassistant/components/plex/__init__.py | 2 +- homeassistant/components/ps4/__init__.py | 2 +- .../components/pushbullet/__init__.py | 2 +- homeassistant/components/pushover/__init__.py | 2 +- homeassistant/helpers/config_validation.py | 6 ++--- homeassistant/setup.py | 4 +-- tests/helpers/test_config_validation.py | 26 ++++++++++++------- 15 files changed, 33 insertions(+), 27 deletions(-) diff --git a/homeassistant/components/broadlink/__init__.py b/homeassistant/components/broadlink/__init__.py index f9c00b8d4d5..e6a769fd2c4 100644 --- a/homeassistant/components/broadlink/__init__.py +++ b/homeassistant/components/broadlink/__init__.py @@ -12,7 +12,7 @@ from .const import DOMAIN from .device import BroadlinkDevice from .heartbeat import BroadlinkHeartbeat -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) @dataclass diff --git a/homeassistant/components/discord/__init__.py b/homeassistant/components/discord/__init__.py index be6907c4690..329709e88d2 100644 --- a/homeassistant/components/discord/__init__.py +++ b/homeassistant/components/discord/__init__.py @@ -13,7 +13,7 @@ from .const import DATA_HASS_CONFIG, DOMAIN PLATFORMS = [Platform.NOTIFY] -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: diff --git a/homeassistant/components/flux_led/__init__.py b/homeassistant/components/flux_led/__init__.py index 8f141564884..100d63d8bf7 100644 --- a/homeassistant/components/flux_led/__init__.py +++ b/homeassistant/components/flux_led/__init__.py @@ -75,7 +75,7 @@ NAME_TO_WHITE_CHANNEL_TYPE: Final = { option.name.lower(): option for option in WhiteChannelType } -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) @callback diff --git a/homeassistant/components/google_assistant_sdk/__init__.py b/homeassistant/components/google_assistant_sdk/__init__.py index 1542de35e01..e2791f6000f 100644 --- a/homeassistant/components/google_assistant_sdk/__init__.py +++ b/homeassistant/components/google_assistant_sdk/__init__.py @@ -44,7 +44,7 @@ SERVICE_SEND_TEXT_COMMAND_SCHEMA = vol.All( }, ) -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: diff --git a/homeassistant/components/google_mail/__init__.py b/homeassistant/components/google_mail/__init__.py index c6053275a6e..7e5281630bc 100644 --- a/homeassistant/components/google_mail/__init__.py +++ b/homeassistant/components/google_mail/__init__.py @@ -21,7 +21,7 @@ from .services import async_setup_services PLATFORMS = [Platform.NOTIFY, Platform.SENSOR] -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: diff --git a/homeassistant/components/homeassistant/strings.json b/homeassistant/components/homeassistant/strings.json index 6ea8a214dda..74bfa16e471 100644 --- a/homeassistant/components/homeassistant/strings.json +++ b/homeassistant/components/homeassistant/strings.json @@ -12,7 +12,7 @@ "title": "Support for Python {current_python_version} is being removed", "description": "Support for running Home Assistant in the current used Python version {current_python_version} is deprecated and will be removed in Home Assistant {breaks_in_ha_version}. Please upgrade Python to {required_python_version} to prevent your Home Assistant instance from breaking." }, - "integration_key_no_support": { + "config_entry_only": { "title": "The {domain} integration does not support YAML configuration", "description": "The {domain} integration does not support configuration via YAML file. You may not notice any obvious issues with the integration, but any configuration settings defined in YAML are not actually applied.\n\nTo resolve this:\n\n1. If you've not already done so, [set up the integration]({add_integration}).\n\n2. Remove `{domain}:` from your YAML configuration file.\n\n3. Restart Home Assistant." } diff --git a/homeassistant/components/homekit_controller/__init__.py b/homeassistant/components/homekit_controller/__init__.py index 93cc1d5a6ff..ed9b8ca4622 100644 --- a/homeassistant/components/homekit_controller/__init__.py +++ b/homeassistant/components/homekit_controller/__init__.py @@ -26,7 +26,7 @@ from .utils import async_get_controller _LOGGER = logging.getLogger(__name__) -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: diff --git a/homeassistant/components/mjpeg/__init__.py b/homeassistant/components/mjpeg/__init__.py index 9492b595adb..a5bfc49edf6 100644 --- a/homeassistant/components/mjpeg/__init__.py +++ b/homeassistant/components/mjpeg/__init__.py @@ -16,7 +16,7 @@ __all__ = [ "filter_urllib3_logging", ] -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: diff --git a/homeassistant/components/plex/__init__.py b/homeassistant/components/plex/__init__.py index 3c49c0112c0..4ce5a359dcd 100644 --- a/homeassistant/components/plex/__init__.py +++ b/homeassistant/components/plex/__init__.py @@ -58,7 +58,7 @@ from .view import PlexImageView _LOGGER = logging.getLogger(__package__) -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) def is_plex_media_id(media_content_id): diff --git a/homeassistant/components/ps4/__init__.py b/homeassistant/components/ps4/__init__.py index 30c7d475196..1c87a275126 100644 --- a/homeassistant/components/ps4/__init__.py +++ b/homeassistant/components/ps4/__init__.py @@ -53,7 +53,7 @@ PS4_COMMAND_SCHEMA = vol.Schema( PLATFORMS = [Platform.MEDIA_PLAYER] -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) class PS4Data: diff --git a/homeassistant/components/pushbullet/__init__.py b/homeassistant/components/pushbullet/__init__.py index 276842df56c..14d90d4ca0b 100644 --- a/homeassistant/components/pushbullet/__init__.py +++ b/homeassistant/components/pushbullet/__init__.py @@ -24,7 +24,7 @@ PLATFORMS = [Platform.SENSOR] _LOGGER = logging.getLogger(__name__) -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: diff --git a/homeassistant/components/pushover/__init__.py b/homeassistant/components/pushover/__init__.py index 77a6ffbb1ba..c3b15b7c130 100644 --- a/homeassistant/components/pushover/__init__.py +++ b/homeassistant/components/pushover/__init__.py @@ -14,7 +14,7 @@ from .const import CONF_USER_KEY, DATA_HASS_CONFIG, DOMAIN PLATFORMS = [Platform.NOTIFY] -CONFIG_SCHEMA = cv.no_yaml_config_schema(DOMAIN) +CONFIG_SCHEMA = cv.config_entry_only_config_schema(DOMAIN) async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: diff --git a/homeassistant/helpers/config_validation.py b/homeassistant/helpers/config_validation.py index da39913b491..7b8ece69392 100644 --- a/homeassistant/helpers/config_validation.py +++ b/homeassistant/helpers/config_validation.py @@ -1075,7 +1075,7 @@ def empty_config_schema(domain: str) -> Callable[[dict], dict]: return validator -def no_yaml_config_schema(domain: str) -> Callable[[dict], dict]: +def config_entry_only_config_schema(domain: str) -> Callable[[dict], dict]: """Return a config schema which logs if attempted to setup from YAML.""" module = inspect.getmodule(inspect.stack(context=0)[2].frame) @@ -1098,11 +1098,11 @@ def no_yaml_config_schema(domain: str) -> Callable[[dict], dict]: async_create_issue( hass, HOMEASSISTANT_DOMAIN, - f"integration_key_no_support_{domain}", + f"config_entry_only_{domain}", is_fixable=False, issue_domain=domain, severity=IssueSeverity.ERROR, - translation_key="integration_key_no_support", + translation_key="config_entry_only", translation_placeholders={ "domain": domain, "add_integration": add_integration, diff --git a/homeassistant/setup.py b/homeassistant/setup.py index d4b9be05ef4..b6db8c0ebb3 100644 --- a/homeassistant/setup.py +++ b/homeassistant/setup.py @@ -240,11 +240,11 @@ async def _async_setup_component( async_create_issue( hass, HOMEASSISTANT_DOMAIN, - f"integration_key_no_support_{domain}", + f"config_entry_only{domain}", is_fixable=False, severity=IssueSeverity.ERROR, issue_domain=domain, - translation_key="integration_key_no_support", + translation_key="config_entry_only", translation_placeholders={"domain": domain}, ) diff --git a/tests/helpers/test_config_validation.py b/tests/helpers/test_config_validation.py index fb8cbc2f46b..b9b5f989cba 100644 --- a/tests/helpers/test_config_validation.py +++ b/tests/helpers/test_config_validation.py @@ -1501,36 +1501,40 @@ def test_empty_schema_cant_find_module() -> None: cv.empty_config_schema("test_domain")({"test_domain": {"foo": "bar"}}) -def test_no_yaml_schema(hass: HomeAssistant, caplog: pytest.LogCaptureFixture) -> None: - """Test no_yaml_config_schema.""" - expected_issue = "integration_key_no_support_test_domain" +def test_config_entry_only_schema( + hass: HomeAssistant, caplog: pytest.LogCaptureFixture +) -> None: + """Test config_entry_only_config_schema.""" + expected_issue = "config_entry_only_test_domain" expected_message = ( "The test_domain integration does not support YAML setup, please remove " "it from your configuration" ) issue_registry = ir.async_get(hass) - cv.no_yaml_config_schema("test_domain")({}) + cv.config_entry_only_config_schema("test_domain")({}) assert expected_message not in caplog.text assert not issue_registry.async_get_issue(HOMEASSISTANT_DOMAIN, expected_issue) - cv.no_yaml_config_schema("test_domain")({"test_domain": {}}) + cv.config_entry_only_config_schema("test_domain")({"test_domain": {}}) assert expected_message in caplog.text assert issue_registry.async_get_issue(HOMEASSISTANT_DOMAIN, expected_issue) issue_registry.async_delete(HOMEASSISTANT_DOMAIN, expected_issue) - cv.no_yaml_config_schema("test_domain")({"test_domain": {"foo": "bar"}}) + cv.config_entry_only_config_schema("test_domain")({"test_domain": {"foo": "bar"}}) assert expected_message in caplog.text assert issue_registry.async_get_issue(HOMEASSISTANT_DOMAIN, expected_issue) -def test_no_yaml_schema_cant_find_module() -> None: +def test_config_entry_only_schema_cant_find_module() -> None: """Test if the current module cannot be inspected.""" with patch("inspect.getmodule", return_value=None): - cv.no_yaml_config_schema("test_domain")({"test_domain": {"foo": "bar"}}) + cv.config_entry_only_config_schema("test_domain")( + {"test_domain": {"foo": "bar"}} + ) -def test_no_yaml_schema_no_hass( +def test_config_entry_only_schema_no_hass( hass: HomeAssistant, caplog: pytest.LogCaptureFixture ) -> None: """Test if the the hass context var is not set in our context.""" @@ -1538,7 +1542,9 @@ def test_no_yaml_schema_no_hass( "homeassistant.helpers.config_validation.async_get_hass", side_effect=LookupError, ): - cv.no_yaml_config_schema("test_domain")({"test_domain": {"foo": "bar"}}) + cv.config_entry_only_config_schema("test_domain")( + {"test_domain": {"foo": "bar"}} + ) expected_message = ( "The test_domain integration does not support YAML setup, please remove " "it from your configuration"