mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +00:00
Bump switchbot-api to 2.4.0 (#145786)
* update switchbot-api version to 2.4.0 * debug for test code
This commit is contained in:
parent
66bb638dd0
commit
6d11c0395f
@ -7,7 +7,13 @@ from dataclasses import dataclass, field
|
|||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
from aiohttp import web
|
from aiohttp import web
|
||||||
from switchbot_api import CannotConnect, Device, InvalidAuth, Remote, SwitchBotAPI
|
from switchbot_api import (
|
||||||
|
Device,
|
||||||
|
Remote,
|
||||||
|
SwitchBotAPI,
|
||||||
|
SwitchBotAuthenticationError,
|
||||||
|
SwitchBotConnectionError,
|
||||||
|
)
|
||||||
|
|
||||||
from homeassistant.components import webhook
|
from homeassistant.components import webhook
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
@ -175,12 +181,12 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
api = SwitchBotAPI(token=token, secret=secret)
|
api = SwitchBotAPI(token=token, secret=secret)
|
||||||
try:
|
try:
|
||||||
devices = await api.list_devices()
|
devices = await api.list_devices()
|
||||||
except InvalidAuth as ex:
|
except SwitchBotAuthenticationError as ex:
|
||||||
_LOGGER.error(
|
_LOGGER.error(
|
||||||
"Invalid authentication while connecting to SwitchBot API: %s", ex
|
"Invalid authentication while connecting to SwitchBot API: %s", ex
|
||||||
)
|
)
|
||||||
return False
|
return False
|
||||||
except CannotConnect as ex:
|
except SwitchBotConnectionError as ex:
|
||||||
raise ConfigEntryNotReady from ex
|
raise ConfigEntryNotReady from ex
|
||||||
_LOGGER.debug("Devices: %s", devices)
|
_LOGGER.debug("Devices: %s", devices)
|
||||||
coordinators_by_id: dict[str, SwitchBotCoordinator] = {}
|
coordinators_by_id: dict[str, SwitchBotCoordinator] = {}
|
||||||
|
@ -3,7 +3,11 @@
|
|||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from switchbot_api import CannotConnect, InvalidAuth, SwitchBotAPI
|
from switchbot_api import (
|
||||||
|
SwitchBotAPI,
|
||||||
|
SwitchBotAuthenticationError,
|
||||||
|
SwitchBotConnectionError,
|
||||||
|
)
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
|
from homeassistant.config_entries import ConfigFlow, ConfigFlowResult
|
||||||
@ -36,9 +40,9 @@ class SwitchBotCloudConfigFlow(ConfigFlow, domain=DOMAIN):
|
|||||||
await SwitchBotAPI(
|
await SwitchBotAPI(
|
||||||
token=user_input[CONF_API_TOKEN], secret=user_input[CONF_API_KEY]
|
token=user_input[CONF_API_TOKEN], secret=user_input[CONF_API_KEY]
|
||||||
).list_devices()
|
).list_devices()
|
||||||
except CannotConnect:
|
except SwitchBotConnectionError:
|
||||||
errors["base"] = "cannot_connect"
|
errors["base"] = "cannot_connect"
|
||||||
except InvalidAuth:
|
except SwitchBotAuthenticationError:
|
||||||
errors["base"] = "invalid_auth"
|
errors["base"] = "invalid_auth"
|
||||||
except Exception:
|
except Exception:
|
||||||
_LOGGER.exception("Unexpected exception")
|
_LOGGER.exception("Unexpected exception")
|
||||||
|
@ -4,7 +4,7 @@ from asyncio import timeout
|
|||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
from switchbot_api import CannotConnect, Device, Remote, SwitchBotAPI
|
from switchbot_api import Device, Remote, SwitchBotAPI, SwitchBotConnectionError
|
||||||
|
|
||||||
from homeassistant.config_entries import ConfigEntry
|
from homeassistant.config_entries import ConfigEntry
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
@ -70,5 +70,5 @@ class SwitchBotCoordinator(DataUpdateCoordinator[Status]):
|
|||||||
status: Status = await self._api.get_status(self._device_id)
|
status: Status = await self._api.get_status(self._device_id)
|
||||||
_LOGGER.debug("Refreshing %s with %s", self._device_id, status)
|
_LOGGER.debug("Refreshing %s with %s", self._device_id, status)
|
||||||
return status
|
return status
|
||||||
except CannotConnect as err:
|
except SwitchBotConnectionError as err:
|
||||||
raise UpdateFailed(f"Error communicating with API: {err}") from err
|
raise UpdateFailed(f"Error communicating with API: {err}") from err
|
||||||
|
@ -8,5 +8,5 @@
|
|||||||
"integration_type": "hub",
|
"integration_type": "hub",
|
||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"loggers": ["switchbot_api"],
|
"loggers": ["switchbot_api"],
|
||||||
"requirements": ["switchbot-api==2.3.1"]
|
"requirements": ["switchbot-api==2.4.0"]
|
||||||
}
|
}
|
||||||
|
2
requirements_all.txt
generated
2
requirements_all.txt
generated
@ -2859,7 +2859,7 @@ surepy==0.9.0
|
|||||||
swisshydrodata==0.1.0
|
swisshydrodata==0.1.0
|
||||||
|
|
||||||
# homeassistant.components.switchbot_cloud
|
# homeassistant.components.switchbot_cloud
|
||||||
switchbot-api==2.3.1
|
switchbot-api==2.4.0
|
||||||
|
|
||||||
# homeassistant.components.synology_srm
|
# homeassistant.components.synology_srm
|
||||||
synology-srm==0.2.0
|
synology-srm==0.2.0
|
||||||
|
2
requirements_test_all.txt
generated
2
requirements_test_all.txt
generated
@ -2354,7 +2354,7 @@ subarulink==0.7.13
|
|||||||
surepy==0.9.0
|
surepy==0.9.0
|
||||||
|
|
||||||
# homeassistant.components.switchbot_cloud
|
# homeassistant.components.switchbot_cloud
|
||||||
switchbot-api==2.3.1
|
switchbot-api==2.4.0
|
||||||
|
|
||||||
# homeassistant.components.system_bridge
|
# homeassistant.components.system_bridge
|
||||||
systembridgeconnector==4.1.5
|
systembridgeconnector==4.1.5
|
||||||
|
@ -6,8 +6,8 @@ import pytest
|
|||||||
|
|
||||||
from homeassistant import config_entries
|
from homeassistant import config_entries
|
||||||
from homeassistant.components.switchbot_cloud.config_flow import (
|
from homeassistant.components.switchbot_cloud.config_flow import (
|
||||||
CannotConnect,
|
SwitchBotAuthenticationError,
|
||||||
InvalidAuth,
|
SwitchBotConnectionError,
|
||||||
)
|
)
|
||||||
from homeassistant.components.switchbot_cloud.const import DOMAIN, ENTRY_TITLE
|
from homeassistant.components.switchbot_cloud.const import DOMAIN, ENTRY_TITLE
|
||||||
from homeassistant.const import CONF_API_KEY, CONF_API_TOKEN
|
from homeassistant.const import CONF_API_KEY, CONF_API_TOKEN
|
||||||
@ -57,8 +57,8 @@ async def test_form(hass: HomeAssistant, mock_setup_entry: AsyncMock) -> None:
|
|||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("error", "message"),
|
("error", "message"),
|
||||||
[
|
[
|
||||||
(InvalidAuth, "invalid_auth"),
|
(SwitchBotAuthenticationError, "invalid_auth"),
|
||||||
(CannotConnect, "cannot_connect"),
|
(SwitchBotConnectionError, "cannot_connect"),
|
||||||
(Exception, "unknown"),
|
(Exception, "unknown"),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -3,7 +3,13 @@
|
|||||||
from unittest.mock import patch
|
from unittest.mock import patch
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from switchbot_api import CannotConnect, Device, InvalidAuth, PowerState, Remote
|
from switchbot_api import (
|
||||||
|
Device,
|
||||||
|
PowerState,
|
||||||
|
Remote,
|
||||||
|
SwitchBotAuthenticationError,
|
||||||
|
SwitchBotConnectionError,
|
||||||
|
)
|
||||||
|
|
||||||
from homeassistant.components.switchbot_cloud import SwitchBotAPI
|
from homeassistant.components.switchbot_cloud import SwitchBotAPI
|
||||||
from homeassistant.config_entries import ConfigEntryState
|
from homeassistant.config_entries import ConfigEntryState
|
||||||
@ -127,8 +133,8 @@ async def test_setup_entry_success(
|
|||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("error", "state"),
|
("error", "state"),
|
||||||
[
|
[
|
||||||
(InvalidAuth, ConfigEntryState.SETUP_ERROR),
|
(SwitchBotAuthenticationError, ConfigEntryState.SETUP_ERROR),
|
||||||
(CannotConnect, ConfigEntryState.SETUP_RETRY),
|
(SwitchBotConnectionError, ConfigEntryState.SETUP_RETRY),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
async def test_setup_entry_fails_when_listing_devices(
|
async def test_setup_entry_fails_when_listing_devices(
|
||||||
@ -162,7 +168,7 @@ async def test_setup_entry_fails_when_refreshing(
|
|||||||
hubDeviceId="test-hub-id",
|
hubDeviceId="test-hub-id",
|
||||||
)
|
)
|
||||||
]
|
]
|
||||||
mock_get_status.side_effect = CannotConnect
|
mock_get_status.side_effect = SwitchBotConnectionError
|
||||||
entry = await configure_integration(hass)
|
entry = await configure_integration(hass)
|
||||||
assert entry.state is ConfigEntryState.SETUP_RETRY
|
assert entry.state is ConfigEntryState.SETUP_RETRY
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user