mirror of
https://github.com/home-assistant/core.git
synced 2026-04-21 01:09:53 +01:00
Add translated action exceptions to Airgradient (#136322)
* Add translated action exceptions to Airgradient * Add translated action exceptions to Airgradient
This commit is contained in:
committed by
GitHub
parent
d6f6961674
commit
40ed0562bc
@@ -3,8 +3,9 @@
|
||||
from datetime import timedelta
|
||||
from unittest.mock import AsyncMock, patch
|
||||
|
||||
from airgradient import Config
|
||||
from airgradient import AirGradientConnectionError, AirGradientError, Config
|
||||
from freezegun.api import FrozenDateTimeFactory
|
||||
import pytest
|
||||
from syrupy import SnapshotAssertion
|
||||
|
||||
from homeassistant.components.airgradient.const import DOMAIN
|
||||
@@ -16,6 +17,7 @@ from homeassistant.const import (
|
||||
Platform,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.exceptions import HomeAssistantError
|
||||
from homeassistant.helpers import entity_registry as er
|
||||
|
||||
from . import setup_integration
|
||||
@@ -99,3 +101,36 @@ async def test_cloud_creates_no_switch(
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(hass.states.async_all()) == 0
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("exception", "error_message"),
|
||||
[
|
||||
(
|
||||
AirGradientConnectionError("Something happened"),
|
||||
"An error occurred while communicating with the Airgradient device: Something happened",
|
||||
),
|
||||
(
|
||||
AirGradientError("Something else happened"),
|
||||
"An unknown error occurred while communicating with the Airgradient device: Something else happened",
|
||||
),
|
||||
],
|
||||
)
|
||||
async def test_exception_handling(
|
||||
hass: HomeAssistant,
|
||||
mock_airgradient_client: AsyncMock,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
exception: Exception,
|
||||
error_message: str,
|
||||
) -> None:
|
||||
"""Test exception handling."""
|
||||
await setup_integration(hass, mock_config_entry)
|
||||
|
||||
mock_airgradient_client.enable_sharing_data.side_effect = exception
|
||||
with pytest.raises(HomeAssistantError, match=error_message):
|
||||
await hass.services.async_call(
|
||||
SWITCH_DOMAIN,
|
||||
SERVICE_TURN_ON,
|
||||
target={ATTR_ENTITY_ID: "switch.airgradient_post_data_to_airgradient"},
|
||||
blocking=True,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user