From 49885757db54a2835a12590edb7898e2457e8bba Mon Sep 17 00:00:00 2001 From: Artem Draft Date: Thu, 5 Jan 2023 13:34:07 +0300 Subject: [PATCH] Bump pybravia to 0.3.0 (#85127) --- homeassistant/components/braviatv/__init__.py | 4 +- .../components/braviatv/config_flow.py | 22 ++--- .../components/braviatv/coordinator.py | 30 +++---- .../components/braviatv/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- tests/components/braviatv/test_config_flow.py | 88 +++++++++---------- 7 files changed, 75 insertions(+), 75 deletions(-) diff --git a/homeassistant/components/braviatv/__init__.py b/homeassistant/components/braviatv/__init__.py index 321d864f036..8b75e557722 100644 --- a/homeassistant/components/braviatv/__init__.py +++ b/homeassistant/components/braviatv/__init__.py @@ -4,7 +4,7 @@ from __future__ import annotations from typing import Final from aiohttp import CookieJar -from pybravia import BraviaTV +from pybravia import BraviaClient from homeassistant.config_entries import ConfigEntry from homeassistant.const import CONF_HOST, CONF_MAC, Platform @@ -30,7 +30,7 @@ async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEntry) -> b session = async_create_clientsession( hass, cookie_jar=CookieJar(unsafe=True, quote_cookie=False) ) - client = BraviaTV(host, mac, session=session) + client = BraviaClient(host, mac, session=session) coordinator = BraviaTVCoordinator( hass=hass, client=client, diff --git a/homeassistant/components/braviatv/config_flow.py b/homeassistant/components/braviatv/config_flow.py index 43d2059c547..82f41712daa 100644 --- a/homeassistant/components/braviatv/config_flow.py +++ b/homeassistant/components/braviatv/config_flow.py @@ -6,7 +6,7 @@ from typing import Any from urllib.parse import urlparse from aiohttp import CookieJar -from pybravia import BraviaTV, BraviaTVAuthError, BraviaTVError, BraviaTVNotSupported +from pybravia import BraviaAuthError, BraviaClient, BraviaError, BraviaNotSupported import voluptuous as vol from homeassistant import config_entries @@ -41,7 +41,7 @@ class BraviaTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): def __init__(self) -> None: """Initialize config flow.""" - self.client: BraviaTV | None = None + self.client: BraviaClient | None = None self.device_config: dict[str, Any] = {} self.entry: ConfigEntry | None = None @@ -58,7 +58,7 @@ class BraviaTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): self.hass, cookie_jar=CookieJar(unsafe=True, quote_cookie=False), ) - self.client = BraviaTV(host=host, session=session) + self.client = BraviaClient(host=host, session=session) async def gen_instance_ids(self) -> tuple[str, str]: """Generate client_id and nickname.""" @@ -162,18 +162,18 @@ class BraviaTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): if self.entry: return await self.async_reauth_device() return await self.async_create_device() - except BraviaTVAuthError: + except BraviaAuthError: errors["base"] = "invalid_auth" - except BraviaTVNotSupported: + except BraviaNotSupported: errors["base"] = "unsupported_model" - except BraviaTVError: + except BraviaError: errors["base"] = "cannot_connect" assert self.client try: await self.client.pair(client_id, nickname) - except BraviaTVError: + except BraviaError: return self.async_abort(reason="no_ip_control") return self.async_show_form( @@ -198,11 +198,11 @@ class BraviaTVConfigFlow(config_entries.ConfigFlow, domain=DOMAIN): if self.entry: return await self.async_reauth_device() return await self.async_create_device() - except BraviaTVAuthError: + except BraviaAuthError: errors["base"] = "invalid_auth" - except BraviaTVNotSupported: + except BraviaNotSupported: errors["base"] = "unsupported_model" - except BraviaTVError: + except BraviaError: errors["base"] = "cannot_connect" return self.async_show_form( @@ -273,7 +273,7 @@ class BraviaTVOptionsFlowHandler(config_entries.OptionsFlowWithConfigEntry): try: await coordinator.async_update_sources() - except BraviaTVError: + except BraviaError: return self.async_abort(reason="failed_update") sources = coordinator.source_map.values() diff --git a/homeassistant/components/braviatv/coordinator.py b/homeassistant/components/braviatv/coordinator.py index 317f675a906..6e95ac83358 100644 --- a/homeassistant/components/braviatv/coordinator.py +++ b/homeassistant/components/braviatv/coordinator.py @@ -9,13 +9,13 @@ from types import MappingProxyType from typing import Any, Final, TypeVar from pybravia import ( - BraviaTV, - BraviaTVAuthError, - BraviaTVConnectionError, - BraviaTVConnectionTimeout, - BraviaTVError, - BraviaTVNotFound, - BraviaTVTurnedOff, + BraviaAuthError, + BraviaClient, + BraviaConnectionError, + BraviaConnectionTimeout, + BraviaError, + BraviaNotFound, + BraviaTurnedOff, ) from typing_extensions import Concatenate, ParamSpec @@ -45,7 +45,7 @@ SCAN_INTERVAL: Final = timedelta(seconds=10) def catch_braviatv_errors( func: Callable[Concatenate[_BraviaTVCoordinatorT, _P], Awaitable[None]] ) -> Callable[Concatenate[_BraviaTVCoordinatorT, _P], Coroutine[Any, Any, None]]: - """Catch BraviaTV errors.""" + """Catch BraviaClient errors.""" @wraps(func) async def wrapper( @@ -53,10 +53,10 @@ def catch_braviatv_errors( *args: _P.args, **kwargs: _P.kwargs, ) -> None: - """Catch BraviaTV errors and log message.""" + """Catch BraviaClient errors and log message.""" try: await func(self, *args, **kwargs) - except BraviaTVError as err: + except BraviaError as err: _LOGGER.error("Command error: %s", err) await self.async_request_refresh() @@ -69,7 +69,7 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): def __init__( self, hass: HomeAssistant, - client: BraviaTV, + client: BraviaClient, config: MappingProxyType[str, Any], ignored_sources: list[str], ) -> None: @@ -133,7 +133,7 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): nickname=self.nickname, ) self.connected = True - except BraviaTVAuthError as err: + except BraviaAuthError as err: raise ConfigEntryAuthFailed from err power_status = await self.client.get_power_status() @@ -147,18 +147,18 @@ class BraviaTVCoordinator(DataUpdateCoordinator[None]): await self.async_update_sources() await self.async_update_volume() await self.async_update_playing() - except BraviaTVNotFound as err: + except BraviaNotFound as err: if self.skipped_updates < 10: self.connected = False self.skipped_updates += 1 _LOGGER.debug("Update skipped, Bravia API service is reloading") return raise UpdateFailed("Error communicating with device") from err - except (BraviaTVConnectionError, BraviaTVConnectionTimeout, BraviaTVTurnedOff): + except (BraviaConnectionError, BraviaConnectionTimeout, BraviaTurnedOff): self.is_on = False self.connected = False _LOGGER.debug("Update skipped, Bravia TV is off") - except BraviaTVError as err: + except BraviaError as err: self.is_on = False self.connected = False raise UpdateFailed("Error communicating with device") from err diff --git a/homeassistant/components/braviatv/manifest.json b/homeassistant/components/braviatv/manifest.json index 83fe34fed28..31e6e56fece 100644 --- a/homeassistant/components/braviatv/manifest.json +++ b/homeassistant/components/braviatv/manifest.json @@ -2,7 +2,7 @@ "domain": "braviatv", "name": "Sony Bravia TV", "documentation": "https://www.home-assistant.io/integrations/braviatv", - "requirements": ["pybravia==0.2.5"], + "requirements": ["pybravia==0.3.0"], "codeowners": ["@bieniu", "@Drafteed"], "ssdp": [ { diff --git a/requirements_all.txt b/requirements_all.txt index cfa1db41efc..9d0e8c4e37c 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1506,7 +1506,7 @@ pyblackbird==0.5 pybotvac==0.0.23 # homeassistant.components.braviatv -pybravia==0.2.5 +pybravia==0.3.0 # homeassistant.components.nissan_leaf pycarwings2==2.14 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 72b421c9488..908cf95dcf7 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -1085,7 +1085,7 @@ pyblackbird==0.5 pybotvac==0.0.23 # homeassistant.components.braviatv -pybravia==0.2.5 +pybravia==0.3.0 # homeassistant.components.cloudflare pycfdns==2.0.1 diff --git a/tests/components/braviatv/test_config_flow.py b/tests/components/braviatv/test_config_flow.py index 40b1b7499a9..6be14f4b8b6 100644 --- a/tests/components/braviatv/test_config_flow.py +++ b/tests/components/braviatv/test_config_flow.py @@ -2,10 +2,10 @@ from unittest.mock import patch from pybravia import ( - BraviaTVAuthError, - BraviaTVConnectionError, - BraviaTVError, - BraviaTVNotSupported, + BraviaAuthError, + BraviaConnectionError, + BraviaError, + BraviaNotSupported, ) import pytest @@ -107,10 +107,10 @@ async def test_ssdp_discovery(hass): assert result["type"] == data_entry_flow.FlowResultType.FORM assert result["step_id"] == "confirm" - with patch("pybravia.BraviaTV.connect"), patch("pybravia.BraviaTV.pair"), patch( - "pybravia.BraviaTV.set_wol_mode" - ), patch( - "pybravia.BraviaTV.get_system_info", + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.pair" + ), patch("pybravia.BraviaClient.set_wol_mode"), patch( + "pybravia.BraviaClient.get_system_info", return_value=BRAVIA_SYSTEM_INFO, ), patch( "homeassistant.components.braviatv.async_setup_entry", return_value=True @@ -195,17 +195,17 @@ async def test_user_invalid_host(hass): @pytest.mark.parametrize( "side_effect, error_message", [ - (BraviaTVAuthError, "invalid_auth"), - (BraviaTVNotSupported, "unsupported_model"), - (BraviaTVConnectionError, "cannot_connect"), + (BraviaAuthError, "invalid_auth"), + (BraviaNotSupported, "unsupported_model"), + (BraviaConnectionError, "cannot_connect"), ], ) async def test_pin_form_error(hass, side_effect, error_message): """Test that PIN form errors are correct.""" with patch( - "pybravia.BraviaTV.connect", + "pybravia.BraviaClient.connect", side_effect=side_effect, - ), patch("pybravia.BraviaTV.pair"): + ), patch("pybravia.BraviaClient.pair"): result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": SOURCE_USER}, data={CONF_HOST: "bravia-host"} ) @@ -222,15 +222,15 @@ async def test_pin_form_error(hass, side_effect, error_message): @pytest.mark.parametrize( "side_effect, error_message", [ - (BraviaTVAuthError, "invalid_auth"), - (BraviaTVNotSupported, "unsupported_model"), - (BraviaTVConnectionError, "cannot_connect"), + (BraviaAuthError, "invalid_auth"), + (BraviaNotSupported, "unsupported_model"), + (BraviaConnectionError, "cannot_connect"), ], ) async def test_psk_form_error(hass, side_effect, error_message): """Test that PSK form errors are correct.""" with patch( - "pybravia.BraviaTV.connect", + "pybravia.BraviaClient.connect", side_effect=side_effect, ): result = await hass.config_entries.flow.async_init( @@ -248,7 +248,7 @@ async def test_psk_form_error(hass, side_effect, error_message): async def test_no_ip_control(hass): """Test that error are shown when IP Control is disabled on the TV.""" - with patch("pybravia.BraviaTV.pair", side_effect=BraviaTVError): + with patch("pybravia.BraviaClient.pair", side_effect=BraviaError): result = await hass.config_entries.flow.async_init( DOMAIN, context={"source": SOURCE_USER}, data={CONF_HOST: "bravia-host"} ) @@ -274,10 +274,10 @@ async def test_duplicate_error(hass): ) config_entry.add_to_hass(hass) - with patch("pybravia.BraviaTV.connect"), patch("pybravia.BraviaTV.pair"), patch( - "pybravia.BraviaTV.set_wol_mode" - ), patch( - "pybravia.BraviaTV.get_system_info", + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.pair" + ), patch("pybravia.BraviaClient.set_wol_mode"), patch( + "pybravia.BraviaClient.get_system_info", return_value=BRAVIA_SYSTEM_INFO, ): result = await hass.config_entries.flow.async_init( @@ -298,10 +298,10 @@ async def test_create_entry(hass): """Test that entry is added correctly with PIN auth.""" uuid = await instance_id.async_get(hass) - with patch("pybravia.BraviaTV.connect"), patch("pybravia.BraviaTV.pair"), patch( - "pybravia.BraviaTV.set_wol_mode" - ), patch( - "pybravia.BraviaTV.get_system_info", + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.pair" + ), patch("pybravia.BraviaClient.set_wol_mode"), patch( + "pybravia.BraviaClient.get_system_info", return_value=BRAVIA_SYSTEM_INFO, ), patch( "homeassistant.components.braviatv.async_setup_entry", return_value=True @@ -339,10 +339,10 @@ async def test_create_entry(hass): async def test_create_entry_psk(hass): """Test that entry is added correctly with PSK auth.""" - with patch("pybravia.BraviaTV.connect"), patch( - "pybravia.BraviaTV.set_wol_mode" + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.set_wol_mode" ), patch( - "pybravia.BraviaTV.get_system_info", + "pybravia.BraviaClient.get_system_info", return_value=BRAVIA_SYSTEM_INFO, ), patch( "homeassistant.components.braviatv.async_setup_entry", return_value=True @@ -390,14 +390,14 @@ async def test_options_flow(hass: HomeAssistant) -> None: ) config_entry.add_to_hass(hass) - with patch("pybravia.BraviaTV.connect"), patch( - "pybravia.BraviaTV.get_power_status", + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.get_power_status", return_value="active", ), patch( - "pybravia.BraviaTV.get_external_status", + "pybravia.BraviaClient.get_external_status", return_value=BRAVIA_SOURCES, ), patch( - "pybravia.BraviaTV.send_rest_req", + "pybravia.BraviaClient.send_rest_req", return_value={}, ): assert await hass.config_entries.async_setup(config_entry.entry_id) @@ -418,7 +418,7 @@ async def test_options_flow(hass: HomeAssistant) -> None: # Test that saving with missing sources is ok with patch( - "pybravia.BraviaTV.get_external_status", + "pybravia.BraviaClient.get_external_status", return_value=BRAVIA_SOURCES[1:], ): result = await hass.config_entries.options.async_init(config_entry.entry_id) @@ -444,22 +444,22 @@ async def test_options_flow_error(hass: HomeAssistant) -> None: ) config_entry.add_to_hass(hass) - with patch("pybravia.BraviaTV.connect"), patch( - "pybravia.BraviaTV.get_power_status", + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.get_power_status", return_value="active", ), patch( - "pybravia.BraviaTV.get_external_status", + "pybravia.BraviaClient.get_external_status", return_value=BRAVIA_SOURCES, ), patch( - "pybravia.BraviaTV.send_rest_req", + "pybravia.BraviaClient.send_rest_req", return_value={}, ): assert await hass.config_entries.async_setup(config_entry.entry_id) await hass.async_block_till_done() with patch( - "pybravia.BraviaTV.send_rest_req", - side_effect=BraviaTVError, + "pybravia.BraviaClient.send_rest_req", + side_effect=BraviaError, ): result = await hass.config_entries.options.async_init(config_entry.entry_id) @@ -488,14 +488,14 @@ async def test_reauth_successful(hass, use_psk, new_pin): ) config_entry.add_to_hass(hass) - with patch("pybravia.BraviaTV.connect"), patch( - "pybravia.BraviaTV.get_power_status", + with patch("pybravia.BraviaClient.connect"), patch( + "pybravia.BraviaClient.get_power_status", return_value="active", ), patch( - "pybravia.BraviaTV.get_external_status", + "pybravia.BraviaClient.get_external_status", return_value=BRAVIA_SOURCES, ), patch( - "pybravia.BraviaTV.send_rest_req", + "pybravia.BraviaClient.send_rest_req", return_value={}, ): result = await hass.config_entries.flow.async_init(