mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Add startup timeout to bluetooth (#75848)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
@@ -97,6 +97,33 @@ async def test_setup_and_stop_broken_bluetooth(hass, caplog):
|
||||
assert len(bluetooth.async_discovered_service_info(hass)) == 0
|
||||
|
||||
|
||||
async def test_setup_and_stop_broken_bluetooth_hanging(hass, caplog):
|
||||
"""Test we fail gracefully when bluetooth/dbus is hanging."""
|
||||
mock_bt = []
|
||||
|
||||
async def _mock_hang():
|
||||
await asyncio.sleep(1)
|
||||
|
||||
with patch.object(bluetooth, "START_TIMEOUT", 0), patch(
|
||||
"homeassistant.components.bluetooth.HaBleakScanner.async_setup"
|
||||
), patch(
|
||||
"homeassistant.components.bluetooth.HaBleakScanner.start",
|
||||
side_effect=_mock_hang,
|
||||
), patch(
|
||||
"homeassistant.components.bluetooth.async_get_bluetooth", return_value=mock_bt
|
||||
):
|
||||
assert await async_setup_component(
|
||||
hass, bluetooth.DOMAIN, {bluetooth.DOMAIN: {}}
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
hass.bus.async_fire(EVENT_HOMEASSISTANT_STOP)
|
||||
await hass.async_block_till_done()
|
||||
assert "Timed out starting Bluetooth" in caplog.text
|
||||
|
||||
|
||||
async def test_setup_and_retry_adapter_not_yet_available(hass, caplog):
|
||||
"""Test we retry if the adapter is not yet available."""
|
||||
mock_bt = []
|
||||
|
||||
Reference in New Issue
Block a user