Bump pybravia to 0.3.0 (#85127)

This commit is contained in:
Artem Draft 2023-01-05 13:34:07 +03:00 committed by GitHub
parent 6b68d3d365
commit 49885757db
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 75 additions and 75 deletions

View File

@ -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,

View File

@ -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()

View File

@ -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

View File

@ -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": [
{

View File

@ -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

View File

@ -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

View File

@ -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(