mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 12:59:34 +00:00
Add device and advertisement to BluetoothServiceInfoBleak (#75381)
This commit is contained in:
@@ -248,6 +248,8 @@ async def test_async_discovered_device_api(hass, mock_bleak_scanner_start):
|
||||
# wrong_name should not appear because bleak no longer sees it
|
||||
assert service_infos[0].name == "wohand"
|
||||
assert service_infos[0].source == SOURCE_LOCAL
|
||||
assert isinstance(service_infos[0].device, BLEDevice)
|
||||
assert isinstance(service_infos[0].advertisement, AdvertisementData)
|
||||
|
||||
assert bluetooth.async_address_present(hass, "44:44:33:11:23:42") is False
|
||||
assert bluetooth.async_address_present(hass, "44:44:33:11:23:45") is True
|
||||
@@ -694,3 +696,43 @@ async def test_wrapped_instance_unsupported_filter(
|
||||
}
|
||||
)
|
||||
assert "Only UUIDs filters are supported" in caplog.text
|
||||
|
||||
|
||||
async def test_async_ble_device_from_address(hass, mock_bleak_scanner_start):
|
||||
"""Test the async_ble_device_from_address api."""
|
||||
mock_bt = []
|
||||
with patch(
|
||||
"homeassistant.components.bluetooth.async_get_bluetooth", return_value=mock_bt
|
||||
), patch(
|
||||
"bleak.BleakScanner.discovered_devices", # Must patch before we setup
|
||||
[MagicMock(address="44:44:33:11:23:45")],
|
||||
):
|
||||
assert not bluetooth.async_discovered_service_info(hass)
|
||||
assert not bluetooth.async_address_present(hass, "44:44:22:22:11:22")
|
||||
assert (
|
||||
bluetooth.async_ble_device_from_address(hass, "44:44:33:11:23:45") is None
|
||||
)
|
||||
|
||||
assert await async_setup_component(
|
||||
hass, bluetooth.DOMAIN, {bluetooth.DOMAIN: {}}
|
||||
)
|
||||
hass.bus.async_fire(EVENT_HOMEASSISTANT_STARTED)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
assert not bluetooth.async_discovered_service_info(hass)
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(local_name="wohand", service_uuids=[])
|
||||
models.HA_BLEAK_SCANNER._callback(switchbot_device, switchbot_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert (
|
||||
bluetooth.async_ble_device_from_address(hass, "44:44:33:11:23:45")
|
||||
is switchbot_device
|
||||
)
|
||||
|
||||
assert (
|
||||
bluetooth.async_ble_device_from_address(hass, "00:66:33:22:11:22") is None
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user