hass-core/tests/components/baf/test_init.py

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

45 lines
1.5 KiB
Python
Raw Normal View History

"""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
)