From 84fb677259de55f8e869fda0d3b096366158c26a Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 11:39:36 +0000 Subject: [PATCH 1/9] Add setup type hints to yamaha --- .../components/yamaha/media_player.py | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/yamaha/media_player.py b/homeassistant/components/yamaha/media_player.py index 4bf830ed68d08..4ac2ebca4fd1c 100644 --- a/homeassistant/components/yamaha/media_player.py +++ b/homeassistant/components/yamaha/media_player.py @@ -31,7 +31,9 @@ STATE_ON, STATE_PLAYING, ) +from homeassistant.core import HomeAssistant from homeassistant.helpers import config_validation as cv, entity_platform +from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType from .const import ( @@ -104,10 +106,10 @@ def __init__(self, config: ConfigType, discovery_info: DiscoveryInfoType) -> Non self.name = config.get(CONF_NAME) self.host = config.get(CONF_HOST) self.ctrl_url: str | None = f"http://{self.host}:80/YamahaRemoteControl/ctrl" - self.source_ignore = config.get(CONF_SOURCE_IGNORE) - self.source_names = config.get(CONF_SOURCE_NAMES) - self.zone_ignore = config.get(CONF_ZONE_IGNORE) - self.zone_names = config.get(CONF_ZONE_NAMES) + self.source_ignore = config[CONF_SOURCE_IGNORE] + self.source_names = config[CONF_SOURCE_NAMES] + self.zone_ignore = config[CONF_ZONE_IGNORE] + self.zone_names = config[CONF_ZONE_NAMES] self.from_discovery = False if discovery_info is not None: self.name = discovery_info.get("name") @@ -138,8 +140,15 @@ def _discovery(config_info): return receivers -async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): +async def async_setup_platform( + hass: HomeAssistant, + config: ConfigType, + async_add_entities: AddEntitiesCallback, + discovery_info: DiscoveryInfoType | None = None, +) -> None: """Set up the Yamaha platform.""" + if not discovery_info: + return # Keep track of configured receivers so that we don't end up # discovering a receiver dynamically that we have static config From fd52742ef707e62886dd21b77ebcca68aff22f09 Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 11:58:43 +0000 Subject: [PATCH 2/9] Fix type hint --- homeassistant/components/yamaha/media_player.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/yamaha/media_player.py b/homeassistant/components/yamaha/media_player.py index 4ac2ebca4fd1c..3b500c143771f 100644 --- a/homeassistant/components/yamaha/media_player.py +++ b/homeassistant/components/yamaha/media_player.py @@ -101,7 +101,9 @@ class YamahaConfigInfo: """Configuration Info for Yamaha Receivers.""" - def __init__(self, config: ConfigType, discovery_info: DiscoveryInfoType) -> None: + def __init__( + self, config: ConfigType, discovery_info: DiscoveryInfoType | None + ) -> None: """Initialize the Configuration Info for Yamaha Receiver.""" self.name = config.get(CONF_NAME) self.host = config.get(CONF_HOST) From b89f39fd5c81a9ff0ad22af4e1c52d0d0468e73d Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 12:00:23 +0000 Subject: [PATCH 3/9] Remove check --- homeassistant/components/yamaha/media_player.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/homeassistant/components/yamaha/media_player.py b/homeassistant/components/yamaha/media_player.py index 3b500c143771f..3b4579ac0e555 100644 --- a/homeassistant/components/yamaha/media_player.py +++ b/homeassistant/components/yamaha/media_player.py @@ -149,9 +149,6 @@ async def async_setup_platform( discovery_info: DiscoveryInfoType | None = None, ) -> None: """Set up the Yamaha platform.""" - if not discovery_info: - return - # Keep track of configured receivers so that we don't end up # discovering a receiver dynamically that we have static config # for. Map each device from its zone_id . From 9c72f209acef08efd37634c1305e1cb2476b2ed8 Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 12:08:11 +0000 Subject: [PATCH 4/9] Once more --- homeassistant/components/yamaha/media_player.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/yamaha/media_player.py b/homeassistant/components/yamaha/media_player.py index 3b4579ac0e555..48aca7a016f16 100644 --- a/homeassistant/components/yamaha/media_player.py +++ b/homeassistant/components/yamaha/media_player.py @@ -108,10 +108,10 @@ def __init__( self.name = config.get(CONF_NAME) self.host = config.get(CONF_HOST) self.ctrl_url: str | None = f"http://{self.host}:80/YamahaRemoteControl/ctrl" - self.source_ignore = config[CONF_SOURCE_IGNORE] - self.source_names = config[CONF_SOURCE_NAMES] - self.zone_ignore = config[CONF_ZONE_IGNORE] - self.zone_names = config[CONF_ZONE_NAMES] + self.source_ignore = config.get(CONF_SOURCE_IGNORE) + self.source_names = config.get(CONF_SOURCE_NAMES) + self.zone_ignore = config.get(CONF_ZONE_IGNORE, []) + self.zone_names = config.get(CONF_ZONE_NAMES) self.from_discovery = False if discovery_info is not None: self.name = discovery_info.get("name") From f93b84ff135a0eb8120a0d485e271b4c40349c41 Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 13:20:28 +0000 Subject: [PATCH 5/9] Adjust YamahaConfigInfo --- homeassistant/components/yamaha/media_player.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/yamaha/media_player.py b/homeassistant/components/yamaha/media_player.py index 48aca7a016f16..32d575c6f57f6 100644 --- a/homeassistant/components/yamaha/media_player.py +++ b/homeassistant/components/yamaha/media_player.py @@ -105,13 +105,14 @@ def __init__( self, config: ConfigType, discovery_info: DiscoveryInfoType | None ) -> None: """Initialize the Configuration Info for Yamaha Receiver.""" + _LOGGER.error("%s", config) self.name = config.get(CONF_NAME) self.host = config.get(CONF_HOST) self.ctrl_url: str | None = f"http://{self.host}:80/YamahaRemoteControl/ctrl" - self.source_ignore = config.get(CONF_SOURCE_IGNORE) - self.source_names = config.get(CONF_SOURCE_NAMES) - self.zone_ignore = config.get(CONF_ZONE_IGNORE, []) - self.zone_names = config.get(CONF_ZONE_NAMES) + self.source_ignore = config[CONF_SOURCE_IGNORE] + self.source_names = config[CONF_SOURCE_NAMES] + self.zone_ignore = config[CONF_ZONE_IGNORE] + self.zone_names = config[CONF_ZONE_NAMES] self.from_discovery = False if discovery_info is not None: self.name = discovery_info.get("name") From 70fd267f8ffc8102c2a86432114e35aedd19e0c2 Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 13:25:39 +0000 Subject: [PATCH 6/9] Fix tests --- tests/components/yamaha/test_media_player.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/tests/components/yamaha/test_media_player.py b/tests/components/yamaha/test_media_player.py index 45624ae0a8b0a..14c208652abd3 100644 --- a/tests/components/yamaha/test_media_player.py +++ b/tests/components/yamaha/test_media_player.py @@ -6,6 +6,7 @@ import homeassistant.components.media_player as mp from homeassistant.components.yamaha import media_player as yamaha from homeassistant.components.yamaha.const import DOMAIN +from homeassistant.core import HomeAssistant from homeassistant.helpers.discovery import async_load_platform from homeassistant.setup import async_setup_component @@ -72,8 +73,24 @@ async def test_setup_no_host(hass, device, main_zone): assert state.state == "off" -async def test_setup_discovery(hass, device, main_zone): +async def test_setup_discovery(hass: HomeAssistant, device, main_zone): """Test set up integration via discovery.""" + with patch("rxv.find", return_value=[device]): + assert await async_setup_component( + hass, + "media_player", + { + "media_player": { + "platform": DOMAIN, + yamaha.CONF_SOURCE_IGNORE: [], + yamaha.CONF_ZONE_IGNORE: [], + yamaha.CONF_SOURCE_NAMES: {}, + yamaha.CONF_ZONE_NAMES: {}, + } + }, + ) + await hass.async_block_till_done() + discovery_info = { "name": "Yamaha Receiver", "model_name": "Yamaha", From 1137dcb4a034ef92cfbdf5d6eddfabfb35095131 Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 13:39:40 +0000 Subject: [PATCH 7/9] Simplify test amends --- tests/components/yamaha/test_media_player.py | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/tests/components/yamaha/test_media_player.py b/tests/components/yamaha/test_media_player.py index 14c208652abd3..ff8c6a70e1d77 100644 --- a/tests/components/yamaha/test_media_player.py +++ b/tests/components/yamaha/test_media_player.py @@ -77,17 +77,7 @@ async def test_setup_discovery(hass: HomeAssistant, device, main_zone): """Test set up integration via discovery.""" with patch("rxv.find", return_value=[device]): assert await async_setup_component( - hass, - "media_player", - { - "media_player": { - "platform": DOMAIN, - yamaha.CONF_SOURCE_IGNORE: [], - yamaha.CONF_ZONE_IGNORE: [], - yamaha.CONF_SOURCE_NAMES: {}, - yamaha.CONF_ZONE_NAMES: {}, - } - }, + hass, "media_player", {"media_player": {"platform": "yamaha"}} ) await hass.async_block_till_done() From 6251241814ac646e16d8f745b04ca3e2e145fe27 Mon Sep 17 00:00:00 2001 From: epenet Date: Mon, 10 Jan 2022 13:40:32 +0000 Subject: [PATCH 8/9] Once more --- tests/components/yamaha/test_media_player.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tests/components/yamaha/test_media_player.py b/tests/components/yamaha/test_media_player.py index ff8c6a70e1d77..05a380bde2770 100644 --- a/tests/components/yamaha/test_media_player.py +++ b/tests/components/yamaha/test_media_player.py @@ -6,7 +6,6 @@ import homeassistant.components.media_player as mp from homeassistant.components.yamaha import media_player as yamaha from homeassistant.components.yamaha.const import DOMAIN -from homeassistant.core import HomeAssistant from homeassistant.helpers.discovery import async_load_platform from homeassistant.setup import async_setup_component @@ -73,7 +72,7 @@ async def test_setup_no_host(hass, device, main_zone): assert state.state == "off" -async def test_setup_discovery(hass: HomeAssistant, device, main_zone): +async def test_setup_discovery(hass, device, main_zone): """Test set up integration via discovery.""" with patch("rxv.find", return_value=[device]): assert await async_setup_component( From 51fc5b7a2e48589380bc3ac266f42892fa103450 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Mon, 10 Jan 2022 16:36:11 +0100 Subject: [PATCH 9/9] Remove logger Co-authored-by: Franck Nijhof --- homeassistant/components/yamaha/media_player.py | 1 - 1 file changed, 1 deletion(-) diff --git a/homeassistant/components/yamaha/media_player.py b/homeassistant/components/yamaha/media_player.py index 32d575c6f57f6..3b4579ac0e555 100644 --- a/homeassistant/components/yamaha/media_player.py +++ b/homeassistant/components/yamaha/media_player.py @@ -105,7 +105,6 @@ def __init__( self, config: ConfigType, discovery_info: DiscoveryInfoType | None ) -> None: """Initialize the Configuration Info for Yamaha Receiver.""" - _LOGGER.error("%s", config) self.name = config.get(CONF_NAME) self.host = config.get(CONF_HOST) self.ctrl_url: str | None = f"http://{self.host}:80/YamahaRemoteControl/ctrl"