From cf694152720308fa9e61110c9cccab7dc5eb13be Mon Sep 17 00:00:00 2001 From: Chris Talkington Date: Sat, 20 Feb 2021 12:57:24 -0600 Subject: [PATCH] Implement suggested area in roku (#46819) * implement suggested area in roku * Update const.py * Update test_media_player.py * Update test_media_player.py * Update test_media_player.py * Update test_media_player.py --- homeassistant/components/roku/__init__.py | 2 ++ homeassistant/components/roku/const.py | 1 + tests/components/roku/test_media_player.py | 29 +++++++++++++++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/roku/__init__.py b/homeassistant/components/roku/__init__.py index af2e0ee946f..a75fc813fb9 100644 --- a/homeassistant/components/roku/__init__.py +++ b/homeassistant/components/roku/__init__.py @@ -27,6 +27,7 @@ from .const import ( ATTR_MANUFACTURER, ATTR_MODEL, ATTR_SOFTWARE_VERSION, + ATTR_SUGGESTED_AREA, DOMAIN, ) @@ -161,4 +162,5 @@ class RokuEntity(CoordinatorEntity): ATTR_MANUFACTURER: self.coordinator.data.info.brand, ATTR_MODEL: self.coordinator.data.info.model_name, ATTR_SOFTWARE_VERSION: self.coordinator.data.info.version, + ATTR_SUGGESTED_AREA: self.coordinator.data.info.device_location, } diff --git a/homeassistant/components/roku/const.py b/homeassistant/components/roku/const.py index 4abbd9e109a..dc458c88cd0 100644 --- a/homeassistant/components/roku/const.py +++ b/homeassistant/components/roku/const.py @@ -7,6 +7,7 @@ ATTR_KEYWORD = "keyword" ATTR_MANUFACTURER = "manufacturer" ATTR_MODEL = "model" ATTR_SOFTWARE_VERSION = "sw_version" +ATTR_SUGGESTED_AREA = "suggested_area" # Default Values DEFAULT_PORT = 8060 diff --git a/tests/components/roku/test_media_player.py b/tests/components/roku/test_media_player.py index 1a1b46117bd..09124ecdf37 100644 --- a/tests/components/roku/test_media_player.py +++ b/tests/components/roku/test_media_player.py @@ -65,14 +65,18 @@ from homeassistant.helpers.typing import HomeAssistantType from homeassistant.util import dt as dt_util from tests.common import async_fire_time_changed -from tests.components.roku import UPNP_SERIAL, setup_integration +from tests.components.roku import NAME_ROKUTV, UPNP_SERIAL, setup_integration from tests.test_util.aiohttp import AiohttpClientMocker MAIN_ENTITY_ID = f"{MP_DOMAIN}.my_roku_3" TV_ENTITY_ID = f"{MP_DOMAIN}.58_onn_roku_tv" TV_HOST = "192.168.1.161" +TV_LOCATION = "Living room" +TV_MANUFACTURER = "Onn" +TV_MODEL = "100005844" TV_SERIAL = "YN00H5555555" +TV_SW_VERSION = "9.2.0" async def test_setup( @@ -304,6 +308,29 @@ async def test_tv_attributes( assert state.attributes.get(ATTR_MEDIA_TITLE) == "Airwolf" +async def test_tv_device_registry( + hass: HomeAssistantType, aioclient_mock: AiohttpClientMocker +) -> None: + """Test device registered for Roku TV in the device registry.""" + await setup_integration( + hass, + aioclient_mock, + device="rokutv", + app="tvinput-dtv", + host=TV_HOST, + unique_id=TV_SERIAL, + ) + + device_registry = await hass.helpers.device_registry.async_get_registry() + reg_device = device_registry.async_get_device(identifiers={(DOMAIN, TV_SERIAL)}) + + assert reg_device.model == TV_MODEL + assert reg_device.sw_version == TV_SW_VERSION + assert reg_device.manufacturer == TV_MANUFACTURER + assert reg_device.suggested_area == TV_LOCATION + assert reg_device.name == NAME_ROKUTV + + async def test_services( hass: HomeAssistantType, aioclient_mock: AiohttpClientMocker ) -> None: