mirror of
https://github.com/home-assistant/core.git
synced 2026-05-24 17:30:08 +01:00
Translate coordinator exceptions for Tailwind (#168027)
This commit is contained in:
@@ -5,6 +5,7 @@ from datetime import timedelta
|
||||
from gotailwind import (
|
||||
Tailwind,
|
||||
TailwindAuthenticationError,
|
||||
TailwindConnectionError,
|
||||
TailwindDeviceStatus,
|
||||
TailwindError,
|
||||
)
|
||||
@@ -45,5 +46,13 @@ class TailwindDataUpdateCoordinator(DataUpdateCoordinator[TailwindDeviceStatus])
|
||||
return await self.tailwind.status()
|
||||
except TailwindAuthenticationError as err:
|
||||
raise ConfigEntryAuthFailed from err
|
||||
except TailwindConnectionError as err:
|
||||
raise UpdateFailed(
|
||||
translation_domain=DOMAIN,
|
||||
translation_key="communication_error",
|
||||
) from err
|
||||
except TailwindError as err:
|
||||
raise UpdateFailed(err) from err
|
||||
raise UpdateFailed(
|
||||
translation_domain=DOMAIN,
|
||||
translation_key="unknown_error",
|
||||
) from err
|
||||
|
||||
@@ -55,10 +55,7 @@ rules:
|
||||
entity-device-class: done
|
||||
entity-disabled-by-default: done
|
||||
entity-translations: done
|
||||
exception-translations:
|
||||
status: exempt
|
||||
comment: |
|
||||
The coordinator needs translation when the update failed.
|
||||
exception-translations: done
|
||||
icon-translations: done
|
||||
reconfiguration-flow: done
|
||||
repair-issues:
|
||||
|
||||
@@ -83,6 +83,9 @@
|
||||
},
|
||||
"door_locked_out": {
|
||||
"message": "The door is locked out and cannot be operated."
|
||||
},
|
||||
"unknown_error": {
|
||||
"message": "An unknown error occurred while communicating with the Tailwind device."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,7 +2,12 @@
|
||||
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
from gotailwind import TailwindAuthenticationError, TailwindConnectionError
|
||||
from gotailwind import (
|
||||
TailwindAuthenticationError,
|
||||
TailwindConnectionError,
|
||||
TailwindError,
|
||||
)
|
||||
import pytest
|
||||
|
||||
from homeassistant.components.tailwind.const import DOMAIN
|
||||
from homeassistant.config_entries import SOURCE_REAUTH, ConfigEntryState
|
||||
@@ -31,13 +36,22 @@ async def test_load_unload_config_entry(
|
||||
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("side_effect", "expected_translation_key"),
|
||||
[
|
||||
(TailwindConnectionError, "communication_error"),
|
||||
(TailwindError, "unknown_error"),
|
||||
],
|
||||
)
|
||||
async def test_config_entry_not_ready(
|
||||
hass: HomeAssistant,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
mock_tailwind: MagicMock,
|
||||
side_effect: type[Exception],
|
||||
expected_translation_key: str,
|
||||
) -> None:
|
||||
"""Test the Tailwind configuration entry not ready."""
|
||||
mock_tailwind.status.side_effect = TailwindConnectionError
|
||||
mock_tailwind.status.side_effect = side_effect
|
||||
|
||||
mock_config_entry.add_to_hass(hass)
|
||||
await hass.config_entries.async_setup(mock_config_entry.entry_id)
|
||||
|
||||
Reference in New Issue
Block a user