Skip to content

Commit eb64589

Browse files
authored
Translate coordinator exceptions for Tailwind (#168027)
1 parent 4ebf0bf commit eb64589

File tree

4 files changed

+30
-7
lines changed

4 files changed

+30
-7
lines changed

homeassistant/components/tailwind/coordinator.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
from gotailwind import (
66
Tailwind,
77
TailwindAuthenticationError,
8+
TailwindConnectionError,
89
TailwindDeviceStatus,
910
TailwindError,
1011
)
@@ -45,5 +46,13 @@ async def _async_update_data(self) -> TailwindDeviceStatus:
4546
return await self.tailwind.status()
4647
except TailwindAuthenticationError as err:
4748
raise ConfigEntryAuthFailed from err
49+
except TailwindConnectionError as err:
50+
raise UpdateFailed(
51+
translation_domain=DOMAIN,
52+
translation_key="communication_error",
53+
) from err
4854
except TailwindError as err:
49-
raise UpdateFailed(err) from err
55+
raise UpdateFailed(
56+
translation_domain=DOMAIN,
57+
translation_key="unknown_error",
58+
) from err

homeassistant/components/tailwind/quality_scale.yaml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,7 @@ rules:
5555
entity-device-class: done
5656
entity-disabled-by-default: done
5757
entity-translations: done
58-
exception-translations:
59-
status: exempt
60-
comment: |
61-
The coordinator needs translation when the update failed.
58+
exception-translations: done
6259
icon-translations: done
6360
reconfiguration-flow: done
6461
repair-issues:

homeassistant/components/tailwind/strings.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@
8383
},
8484
"door_locked_out": {
8585
"message": "The door is locked out and cannot be operated."
86+
},
87+
"unknown_error": {
88+
"message": "An unknown error occurred while communicating with the Tailwind device."
8689
}
8790
}
8891
}

tests/components/tailwind/test_init.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
from unittest.mock import MagicMock
44

5-
from gotailwind import TailwindAuthenticationError, TailwindConnectionError
5+
from gotailwind import (
6+
TailwindAuthenticationError,
7+
TailwindConnectionError,
8+
TailwindError,
9+
)
10+
import pytest
611

712
from homeassistant.components.tailwind.const import DOMAIN
813
from homeassistant.config_entries import SOURCE_REAUTH, ConfigEntryState
@@ -31,13 +36,22 @@ async def test_load_unload_config_entry(
3136
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
3237

3338

39+
@pytest.mark.parametrize(
40+
("side_effect", "expected_translation_key"),
41+
[
42+
(TailwindConnectionError, "communication_error"),
43+
(TailwindError, "unknown_error"),
44+
],
45+
)
3446
async def test_config_entry_not_ready(
3547
hass: HomeAssistant,
3648
mock_config_entry: MockConfigEntry,
3749
mock_tailwind: MagicMock,
50+
side_effect: type[Exception],
51+
expected_translation_key: str,
3852
) -> None:
3953
"""Test the Tailwind configuration entry not ready."""
40-
mock_tailwind.status.side_effect = TailwindConnectionError
54+
mock_tailwind.status.side_effect = side_effect
4155

4256
mock_config_entry.add_to_hass(hass)
4357
await hass.config_entries.async_setup(mock_config_entry.entry_id)

0 commit comments

Comments
 (0)