mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 07:07:28 +00:00
Bump pyhomeworks to 1.0.0 (#122867)
This commit is contained in:
parent
5eff4f9816
commit
94c0b9fc06
@ -8,6 +8,7 @@ from dataclasses import dataclass
|
|||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from pyhomeworks import exceptions as hw_exceptions
|
||||||
from pyhomeworks.pyhomeworks import HW_BUTTON_PRESSED, HW_BUTTON_RELEASED, Homeworks
|
from pyhomeworks.pyhomeworks import HW_BUTTON_PRESSED, HW_BUTTON_RELEASED, Homeworks
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
@ -141,15 +142,16 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
dispatcher_send(hass, signal, msg_type, values)
|
dispatcher_send(hass, signal, msg_type, values)
|
||||||
|
|
||||||
config = entry.options
|
config = entry.options
|
||||||
|
controller = Homeworks(config[CONF_HOST], config[CONF_PORT], hw_callback)
|
||||||
try:
|
try:
|
||||||
controller = await hass.async_add_executor_job(
|
await hass.async_add_executor_job(controller.connect)
|
||||||
Homeworks, config[CONF_HOST], config[CONF_PORT], hw_callback
|
except hw_exceptions.HomeworksException as err:
|
||||||
)
|
_LOGGER.debug("Failed to connect: %s", err, exc_info=True)
|
||||||
except (ConnectionError, OSError) as err:
|
|
||||||
raise ConfigEntryNotReady from err
|
raise ConfigEntryNotReady from err
|
||||||
|
controller.start()
|
||||||
|
|
||||||
def cleanup(event: Event) -> None:
|
def cleanup(event: Event) -> None:
|
||||||
controller.close()
|
controller.stop()
|
||||||
|
|
||||||
entry.async_on_unload(hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, cleanup))
|
entry.async_on_unload(hass.bus.async_listen_once(EVENT_HOMEASSISTANT_STOP, cleanup))
|
||||||
|
|
||||||
@ -176,7 +178,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
for keypad in data.keypads.values():
|
for keypad in data.keypads.values():
|
||||||
keypad.unsubscribe()
|
keypad.unsubscribe()
|
||||||
|
|
||||||
await hass.async_add_executor_job(data.controller.close)
|
await hass.async_add_executor_job(data.controller.stop)
|
||||||
|
|
||||||
return unload_ok
|
return unload_ok
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ from functools import partial
|
|||||||
import logging
|
import logging
|
||||||
from typing import Any
|
from typing import Any
|
||||||
|
|
||||||
|
from pyhomeworks import exceptions as hw_exceptions
|
||||||
from pyhomeworks.pyhomeworks import Homeworks
|
from pyhomeworks.pyhomeworks import Homeworks
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
@ -128,18 +129,18 @@ async def _try_connection(user_input: dict[str, Any]) -> None:
|
|||||||
"Trying to connect to %s:%s", user_input[CONF_HOST], user_input[CONF_PORT]
|
"Trying to connect to %s:%s", user_input[CONF_HOST], user_input[CONF_PORT]
|
||||||
)
|
)
|
||||||
controller = Homeworks(host, port, lambda msg_types, values: None)
|
controller = Homeworks(host, port, lambda msg_types, values: None)
|
||||||
|
controller.connect()
|
||||||
controller.close()
|
controller.close()
|
||||||
controller.join()
|
|
||||||
|
|
||||||
hass = async_get_hass()
|
hass = async_get_hass()
|
||||||
try:
|
try:
|
||||||
await hass.async_add_executor_job(
|
await hass.async_add_executor_job(
|
||||||
_try_connect, user_input[CONF_HOST], user_input[CONF_PORT]
|
_try_connect, user_input[CONF_HOST], user_input[CONF_PORT]
|
||||||
)
|
)
|
||||||
except ConnectionError as err:
|
except hw_exceptions.HomeworksConnectionFailed as err:
|
||||||
raise SchemaFlowError("connection_error") from err
|
raise SchemaFlowError("connection_error") from err
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
_LOGGER.exception("Caught unexpected exception")
|
_LOGGER.exception("Caught unexpected exception %s")
|
||||||
raise SchemaFlowError("unknown_error") from err
|
raise SchemaFlowError("unknown_error") from err
|
||||||
|
|
||||||
|
|
||||||
|
@ -6,5 +6,5 @@
|
|||||||
"documentation": "https://www.home-assistant.io/integrations/homeworks",
|
"documentation": "https://www.home-assistant.io/integrations/homeworks",
|
||||||
"iot_class": "local_push",
|
"iot_class": "local_push",
|
||||||
"loggers": ["pyhomeworks"],
|
"loggers": ["pyhomeworks"],
|
||||||
"requirements": ["pyhomeworks==0.0.6"]
|
"requirements": ["pyhomeworks==1.0.0"]
|
||||||
}
|
}
|
||||||
|
@ -1903,7 +1903,7 @@ pyhiveapi==0.5.16
|
|||||||
pyhomematic==0.1.77
|
pyhomematic==0.1.77
|
||||||
|
|
||||||
# homeassistant.components.homeworks
|
# homeassistant.components.homeworks
|
||||||
pyhomeworks==0.0.6
|
pyhomeworks==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.ialarm
|
# homeassistant.components.ialarm
|
||||||
pyialarm==2.2.0
|
pyialarm==2.2.0
|
||||||
|
@ -1517,7 +1517,7 @@ pyhiveapi==0.5.16
|
|||||||
pyhomematic==0.1.77
|
pyhomematic==0.1.77
|
||||||
|
|
||||||
# homeassistant.components.homeworks
|
# homeassistant.components.homeworks
|
||||||
pyhomeworks==0.0.6
|
pyhomeworks==1.0.0
|
||||||
|
|
||||||
# homeassistant.components.ialarm
|
# homeassistant.components.ialarm
|
||||||
pyialarm==2.2.0
|
pyialarm==2.2.0
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
from unittest.mock import ANY, MagicMock
|
from unittest.mock import ANY, MagicMock
|
||||||
|
|
||||||
|
from pyhomeworks import exceptions as hw_exceptions
|
||||||
import pytest
|
import pytest
|
||||||
from pytest_unordered import unordered
|
from pytest_unordered import unordered
|
||||||
|
|
||||||
@ -55,7 +56,7 @@ async def test_user_flow(
|
|||||||
}
|
}
|
||||||
mock_homeworks.assert_called_once_with("192.168.0.1", 1234, ANY)
|
mock_homeworks.assert_called_once_with("192.168.0.1", 1234, ANY)
|
||||||
mock_controller.close.assert_called_once_with()
|
mock_controller.close.assert_called_once_with()
|
||||||
mock_controller.join.assert_called_once_with()
|
mock_controller.join.assert_not_called()
|
||||||
|
|
||||||
|
|
||||||
async def test_user_flow_already_exists(
|
async def test_user_flow_already_exists(
|
||||||
@ -96,7 +97,10 @@ async def test_user_flow_already_exists(
|
|||||||
|
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
("side_effect", "error"),
|
("side_effect", "error"),
|
||||||
[(ConnectionError, "connection_error"), (Exception, "unknown_error")],
|
[
|
||||||
|
(hw_exceptions.HomeworksConnectionFailed, "connection_error"),
|
||||||
|
(Exception, "unknown_error"),
|
||||||
|
],
|
||||||
)
|
)
|
||||||
async def test_user_flow_cannot_connect(
|
async def test_user_flow_cannot_connect(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
from unittest.mock import ANY, MagicMock
|
from unittest.mock import ANY, MagicMock
|
||||||
|
|
||||||
|
from pyhomeworks import exceptions as hw_exceptions
|
||||||
from pyhomeworks.pyhomeworks import HW_BUTTON_PRESSED, HW_BUTTON_RELEASED
|
from pyhomeworks.pyhomeworks import HW_BUTTON_PRESSED, HW_BUTTON_RELEASED
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
@ -41,7 +42,9 @@ async def test_config_entry_not_ready(
|
|||||||
mock_homeworks: MagicMock,
|
mock_homeworks: MagicMock,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test the Homeworks configuration entry not ready."""
|
"""Test the Homeworks configuration entry not ready."""
|
||||||
mock_homeworks.side_effect = ConnectionError
|
mock_homeworks.return_value.connect.side_effect = (
|
||||||
|
hw_exceptions.HomeworksConnectionFailed
|
||||||
|
)
|
||||||
|
|
||||||
mock_config_entry.add_to_hass(hass)
|
mock_config_entry.add_to_hass(hass)
|
||||||
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
||||||
@ -187,4 +190,4 @@ async def test_cleanup_on_ha_shutdown(
|
|||||||
hass.bus.async_fire(EVENT_HOMEASSISTANT_STOP)
|
hass.bus.async_fire(EVENT_HOMEASSISTANT_STOP)
|
||||||
await hass.async_block_till_done()
|
await hass.async_block_till_done()
|
||||||
|
|
||||||
mock_controller.close.assert_called_once_with()
|
mock_controller.stop.assert_called_once_with()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user