mirror of https://github.com/home-assistant/core
45 lines
1.5 KiB
Python
45 lines
1.5 KiB
Python
"""Test the baf init flow."""
|
|
|
|
from unittest.mock import patch
|
|
|
|
from aiobafi6.exceptions import DeviceUUIDMismatchError
|
|
import pytest
|
|
|
|
from homeassistant.components.baf.const import DOMAIN
|
|
from homeassistant.config_entries import ConfigEntryState
|
|
from homeassistant.const import CONF_IP_ADDRESS
|
|
from homeassistant.core import HomeAssistant
|
|
from homeassistant.setup import async_setup_component
|
|
|
|
from . import MOCK_UUID, MockBAFDevice
|
|
|
|
from tests.common import MockConfigEntry
|
|
|
|
|
|
def _patch_device_init(side_effect=None):
|
|
"""Mock out the BAF Device object."""
|
|
|
|
def _create_mock_baf(*args, **kwargs):
|
|
return MockBAFDevice(side_effect)
|
|
|
|
return patch("homeassistant.components.baf.Device", _create_mock_baf)
|
|
|
|
|
|
async def test_config_entry_wrong_uuid(
|
|
hass: HomeAssistant, caplog: pytest.LogCaptureFixture
|
|
) -> None:
|
|
"""Test config entry enters setup retry when uuid mismatches."""
|
|
mismatched_uuid = MOCK_UUID + "0"
|
|
already_migrated_config_entry = MockConfigEntry(
|
|
domain=DOMAIN, data={CONF_IP_ADDRESS: "127.0.0.1"}, unique_id=mismatched_uuid
|
|
)
|
|
already_migrated_config_entry.add_to_hass(hass)
|
|
with _patch_device_init(DeviceUUIDMismatchError):
|
|
await async_setup_component(hass, DOMAIN, {DOMAIN: {}})
|
|
await hass.async_block_till_done()
|
|
assert already_migrated_config_entry.state is ConfigEntryState.SETUP_RETRY
|
|
assert (
|
|
"Unexpected device found at 127.0.0.1; expected 12340, found 1234"
|
|
in caplog.text
|
|
)
|