mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Bump elmax-api to 0.0.6.3 (#131876)
This commit is contained in:
parent
94b16da90f
commit
84e6c0b9ac
@ -35,7 +35,7 @@ def check_local_version_supported(api_version: str | None) -> bool:
|
|||||||
class DirectPanel(PanelEntry):
|
class DirectPanel(PanelEntry):
|
||||||
"""Helper class for wrapping a directly accessed Elmax Panel."""
|
"""Helper class for wrapping a directly accessed Elmax Panel."""
|
||||||
|
|
||||||
def __init__(self, panel_uri):
|
def __init__(self, panel_uri) -> None:
|
||||||
"""Construct the object."""
|
"""Construct the object."""
|
||||||
super().__init__(panel_uri, True, {})
|
super().__init__(panel_uri, True, {})
|
||||||
|
|
||||||
|
@ -203,7 +203,7 @@ class ElmaxConfigFlow(ConfigFlow, domain=DOMAIN):
|
|||||||
|
|
||||||
async def async_step_direct(self, user_input: dict[str, Any]) -> ConfigFlowResult:
|
async def async_step_direct(self, user_input: dict[str, Any]) -> ConfigFlowResult:
|
||||||
"""Handle the direct setup step."""
|
"""Handle the direct setup step."""
|
||||||
self._selected_mode = CONF_ELMAX_MODE_CLOUD
|
self._selected_mode = CONF_ELMAX_MODE_DIRECT
|
||||||
if user_input is None:
|
if user_input is None:
|
||||||
return self.async_show_form(
|
return self.async_show_form(
|
||||||
step_id=CONF_ELMAX_MODE_DIRECT,
|
step_id=CONF_ELMAX_MODE_DIRECT,
|
||||||
|
@ -121,13 +121,13 @@ class ElmaxCover(ElmaxEntity, CoverEntity):
|
|||||||
else:
|
else:
|
||||||
_LOGGER.debug("Ignoring stop request as the cover is IDLE")
|
_LOGGER.debug("Ignoring stop request as the cover is IDLE")
|
||||||
|
|
||||||
async def async_open_cover(self, **kwargs):
|
async def async_open_cover(self, **kwargs: Any) -> None:
|
||||||
"""Open the cover."""
|
"""Open the cover."""
|
||||||
await self.coordinator.http_client.execute_command(
|
await self.coordinator.http_client.execute_command(
|
||||||
endpoint_id=self._device.endpoint_id, command=CoverCommand.UP
|
endpoint_id=self._device.endpoint_id, command=CoverCommand.UP
|
||||||
)
|
)
|
||||||
|
|
||||||
async def async_close_cover(self, **kwargs):
|
async def async_close_cover(self, **kwargs: Any) -> None:
|
||||||
"""Close the cover."""
|
"""Close the cover."""
|
||||||
await self.coordinator.http_client.execute_command(
|
await self.coordinator.http_client.execute_command(
|
||||||
endpoint_id=self._device.endpoint_id, command=CoverCommand.DOWN
|
endpoint_id=self._device.endpoint_id, command=CoverCommand.DOWN
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"documentation": "https://www.home-assistant.io/integrations/elmax",
|
"documentation": "https://www.home-assistant.io/integrations/elmax",
|
||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"loggers": ["elmax_api"],
|
"loggers": ["elmax_api"],
|
||||||
"requirements": ["elmax-api==0.0.6.1"],
|
"requirements": ["elmax-api==0.0.6.3"],
|
||||||
"zeroconf": [
|
"zeroconf": [
|
||||||
{
|
{
|
||||||
"type": "_elmax-ssl._tcp.local."
|
"type": "_elmax-ssl._tcp.local."
|
||||||
|
@ -821,7 +821,7 @@ eliqonline==1.2.2
|
|||||||
elkm1-lib==2.2.10
|
elkm1-lib==2.2.10
|
||||||
|
|
||||||
# homeassistant.components.elmax
|
# homeassistant.components.elmax
|
||||||
elmax-api==0.0.6.1
|
elmax-api==0.0.6.3
|
||||||
|
|
||||||
# homeassistant.components.elvia
|
# homeassistant.components.elvia
|
||||||
elvia==0.1.0
|
elvia==0.1.0
|
||||||
|
@ -696,7 +696,7 @@ elgato==5.1.2
|
|||||||
elkm1-lib==2.2.10
|
elkm1-lib==2.2.10
|
||||||
|
|
||||||
# homeassistant.components.elmax
|
# homeassistant.components.elmax
|
||||||
elmax-api==0.0.6.1
|
elmax-api==0.0.6.3
|
||||||
|
|
||||||
# homeassistant.components.elvia
|
# homeassistant.components.elvia
|
||||||
elvia==0.1.0
|
elvia==0.1.0
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
"""Configuration for Elmax tests."""
|
"""Configuration for Elmax tests."""
|
||||||
|
|
||||||
from collections.abc import Generator
|
from collections.abc import Generator
|
||||||
|
from datetime import datetime, timedelta
|
||||||
import json
|
import json
|
||||||
from unittest.mock import AsyncMock, patch
|
from unittest.mock import AsyncMock, patch
|
||||||
|
|
||||||
@ -11,6 +12,7 @@ from elmax_api.constants import (
|
|||||||
ENDPOINT_LOGIN,
|
ENDPOINT_LOGIN,
|
||||||
)
|
)
|
||||||
from httpx import Response
|
from httpx import Response
|
||||||
|
import jwt
|
||||||
import pytest
|
import pytest
|
||||||
import respx
|
import respx
|
||||||
|
|
||||||
@ -64,9 +66,20 @@ def httpx_mock_direct_fixture() -> Generator[respx.MockRouter]:
|
|||||||
) as respx_mock:
|
) as respx_mock:
|
||||||
# Mock Login POST.
|
# Mock Login POST.
|
||||||
login_route = respx_mock.post(f"/api/v2/{ENDPOINT_LOGIN}", name="login")
|
login_route = respx_mock.post(f"/api/v2/{ENDPOINT_LOGIN}", name="login")
|
||||||
login_route.return_value = Response(
|
|
||||||
200, json=json.loads(load_fixture("direct/login.json", "elmax"))
|
login_json = json.loads(load_fixture("direct/login.json", "elmax"))
|
||||||
|
decoded_jwt = jwt.decode_complete(
|
||||||
|
login_json["token"].split(" ")[1],
|
||||||
|
algorithms="HS256",
|
||||||
|
options={"verify_signature": False},
|
||||||
)
|
)
|
||||||
|
expiration = datetime.now() + timedelta(hours=1)
|
||||||
|
decoded_jwt["payload"]["exp"] = int(expiration.timestamp())
|
||||||
|
jws_string = jwt.encode(
|
||||||
|
payload=decoded_jwt["payload"], algorithm="HS256", key=""
|
||||||
|
)
|
||||||
|
login_json["token"] = f"JWT {jws_string}"
|
||||||
|
login_route.return_value = Response(200, json=login_json)
|
||||||
|
|
||||||
# Mock Device list GET.
|
# Mock Device list GET.
|
||||||
list_devices_route = respx_mock.get(
|
list_devices_route = respx_mock.get(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user