Skip to content
Snippets Groups Projects
Unverified Commit 13e2bc7b authored by Richard Kroegel's avatar Richard Kroegel Committed by GitHub
Browse files

Enable raising ConfigEntryAuthFailed on BMW coordinator init (#116643)

parent fa815234
No related branches found
No related tags found
No related merge requests found
...@@ -50,6 +50,9 @@ class BMWDataUpdateCoordinator(DataUpdateCoordinator[None]): ...@@ -50,6 +50,9 @@ class BMWDataUpdateCoordinator(DataUpdateCoordinator[None]):
update_interval=timedelta(seconds=SCAN_INTERVALS[entry.data[CONF_REGION]]), update_interval=timedelta(seconds=SCAN_INTERVALS[entry.data[CONF_REGION]]),
) )
# Default to false on init so _async_update_data logic works
self.last_update_success = False
async def _async_update_data(self) -> None: async def _async_update_data(self) -> None:
"""Fetch data from BMW.""" """Fetch data from BMW."""
old_refresh_token = self.account.refresh_token old_refresh_token = self.account.refresh_token
......
...@@ -7,8 +7,10 @@ from bimmer_connected.models import MyBMWAPIError, MyBMWAuthError ...@@ -7,8 +7,10 @@ from bimmer_connected.models import MyBMWAPIError, MyBMWAuthError
from freezegun.api import FrozenDateTimeFactory from freezegun.api import FrozenDateTimeFactory
import respx import respx
from homeassistant.core import HomeAssistant from homeassistant.components.bmw_connected_drive import DOMAIN as BMW_DOMAIN
from homeassistant.core import DOMAIN as HA_DOMAIN, HomeAssistant
from homeassistant.exceptions import ConfigEntryAuthFailed from homeassistant.exceptions import ConfigEntryAuthFailed
from homeassistant.helpers.issue_registry import IssueRegistry
from homeassistant.helpers.update_coordinator import UpdateFailed from homeassistant.helpers.update_coordinator import UpdateFailed
from . import FIXTURE_CONFIG_ENTRY from . import FIXTURE_CONFIG_ENTRY
...@@ -92,3 +94,29 @@ async def test_update_reauth( ...@@ -92,3 +94,29 @@ async def test_update_reauth(
assert coordinator.last_update_success is False assert coordinator.last_update_success is False
assert isinstance(coordinator.last_exception, ConfigEntryAuthFailed) is True assert isinstance(coordinator.last_exception, ConfigEntryAuthFailed) is True
async def test_init_reauth(
hass: HomeAssistant,
bmw_fixture: respx.Router,
freezer: FrozenDateTimeFactory,
issue_registry: IssueRegistry,
) -> None:
"""Test the reauth form."""
config_entry = MockConfigEntry(**FIXTURE_CONFIG_ENTRY)
config_entry.add_to_hass(hass)
assert len(issue_registry.issues) == 0
with patch(
"bimmer_connected.account.MyBMWAccount.get_vehicles",
side_effect=MyBMWAuthError("Test error"),
):
await hass.config_entries.async_setup(config_entry.entry_id)
await hass.async_block_till_done()
reauth_issue = issue_registry.async_get_issue(
HA_DOMAIN, f"config_entry_reauth_{BMW_DOMAIN}_{config_entry.entry_id}"
)
assert reauth_issue.active is True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment