Skip to content

Commit

Permalink
Don't reload integration for AuthError in Honeywell (#91228)
Browse files Browse the repository at this point in the history
  • Loading branch information
mkmer authored Apr 17, 2023
1 parent 3364f0f commit 799080e
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 17 deletions.
5 changes: 0 additions & 5 deletions homeassistant/components/honeywell/climate.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,11 +419,6 @@ async def async_update(self) -> None:
try:
await self._data.client.login()

except aiosomecomfort.AuthError:
self._attr_available = False
await self.hass.async_create_task(
self.hass.config_entries.async_reload(self._data.entry_id)
)
except (
aiosomecomfort.SomeComfortError,
ClientConnectionError,
Expand Down
34 changes: 22 additions & 12 deletions tests/components/honeywell/test_climate.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
"""Test the Whirlpool Sixth Sense climate domain."""
import datetime
from unittest.mock import MagicMock, patch
from unittest.mock import MagicMock

from aiohttp import ClientConnectionError
import aiosomecomfort
import pytest
from syrupy.assertion import SnapshotAssertion
Expand Down Expand Up @@ -1020,17 +1021,26 @@ async def test_async_update_errors(
# "reload integration" test
device.refresh.side_effect = aiosomecomfort.SomeComfortError
client.login.side_effect = aiosomecomfort.AuthError
with patch("homeassistant.config_entries.ConfigEntries.async_reload") as reload:
async_fire_time_changed(
hass,
utcnow() + SCAN_INTERVAL,
)
await hass.async_block_till_done()

entity_id = f"climate.{device.name}"
state = hass.states.get(entity_id)
assert state.state == "unavailable"
assert reload.called_once()
async_fire_time_changed(
hass,
utcnow() + SCAN_INTERVAL,
)
await hass.async_block_till_done()

entity_id = f"climate.{device.name}"
state = hass.states.get(entity_id)
assert state.state == "unavailable"

device.refresh.side_effect = ClientConnectionError
async_fire_time_changed(
hass,
utcnow() + SCAN_INTERVAL,
)
await hass.async_block_till_done()

entity_id = f"climate.{device.name}"
state = hass.states.get(entity_id)
assert state.state == "unavailable"


async def test_aux_heat_off_service_call(
Expand Down

0 comments on commit 799080e

Please sign in to comment.