Bump bleak to 0.19.0 (#80349)
This commit is contained in:
parent
3460e0b074
commit
d12cbab6c4
33 changed files with 638 additions and 390 deletions
|
@ -44,6 +44,7 @@ from homeassistant.util import dt as dt_util
|
|||
from . import (
|
||||
_get_manager,
|
||||
async_setup_with_default_adapter,
|
||||
generate_advertisement_data,
|
||||
inject_advertisement,
|
||||
inject_advertisement_with_time_and_source_connectable,
|
||||
patch_discovered_devices,
|
||||
|
@ -334,7 +335,9 @@ async def test_discovery_match_by_service_uuid(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
wrong_device = BLEDevice("44:44:33:11:23:45", "wrong_name")
|
||||
wrong_adv = AdvertisementData(local_name="wrong_name", service_uuids=[])
|
||||
wrong_adv = generate_advertisement_data(
|
||||
local_name="wrong_name", service_uuids=[]
|
||||
)
|
||||
|
||||
inject_advertisement(hass, wrong_device, wrong_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -342,7 +345,7 @@ async def test_discovery_match_by_service_uuid(
|
|||
assert len(mock_config_flow.mock_calls) == 0
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
|
||||
)
|
||||
|
||||
|
@ -379,7 +382,9 @@ async def test_discovery_match_by_service_uuid_connectable(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
wrong_device = BLEDevice("44:44:33:11:23:45", "wrong_name")
|
||||
wrong_adv = AdvertisementData(local_name="wrong_name", service_uuids=[])
|
||||
wrong_adv = generate_advertisement_data(
|
||||
local_name="wrong_name", service_uuids=[]
|
||||
)
|
||||
|
||||
inject_advertisement_with_time_and_source_connectable(
|
||||
hass, wrong_device, wrong_adv, time.monotonic(), "any", True
|
||||
|
@ -389,7 +394,7 @@ async def test_discovery_match_by_service_uuid_connectable(
|
|||
assert len(_domains_from_mock_config_flow(mock_config_flow)) == 0
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
|
||||
)
|
||||
|
||||
|
@ -424,7 +429,9 @@ async def test_discovery_match_by_service_uuid_not_connectable(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
wrong_device = BLEDevice("44:44:33:11:23:45", "wrong_name")
|
||||
wrong_adv = AdvertisementData(local_name="wrong_name", service_uuids=[])
|
||||
wrong_adv = generate_advertisement_data(
|
||||
local_name="wrong_name", service_uuids=[]
|
||||
)
|
||||
|
||||
inject_advertisement_with_time_and_source_connectable(
|
||||
hass, wrong_device, wrong_adv, time.monotonic(), "any", False
|
||||
|
@ -434,7 +441,7 @@ async def test_discovery_match_by_service_uuid_not_connectable(
|
|||
assert len(_domains_from_mock_config_flow(mock_config_flow)) == 0
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
|
||||
)
|
||||
|
||||
|
@ -467,7 +474,9 @@ async def test_discovery_match_by_name_connectable_false(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
wrong_device = BLEDevice("44:44:33:11:23:45", "wrong_name")
|
||||
wrong_adv = AdvertisementData(local_name="wrong_name", service_uuids=[])
|
||||
wrong_adv = generate_advertisement_data(
|
||||
local_name="wrong_name", service_uuids=[]
|
||||
)
|
||||
|
||||
inject_advertisement_with_time_and_source_connectable(
|
||||
hass, wrong_device, wrong_adv, time.monotonic(), "any", False
|
||||
|
@ -477,7 +486,7 @@ async def test_discovery_match_by_name_connectable_false(
|
|||
assert len(_domains_from_mock_config_flow(mock_config_flow)) == 0
|
||||
|
||||
qingping_device = BLEDevice("44:44:33:11:23:45", "Qingping Motion & Light")
|
||||
qingping_adv = AdvertisementData(
|
||||
qingping_adv = generate_advertisement_data(
|
||||
local_name="Qingping Motion & Light",
|
||||
service_data={
|
||||
"0000fdcd-0000-1000-8000-00805f9b34fb": b"H\x12\xcd\xd5`4-X\x08\x04\x01\xe8\x00\x00\x0f\x01{"
|
||||
|
@ -493,8 +502,20 @@ async def test_discovery_match_by_name_connectable_false(
|
|||
|
||||
mock_config_flow.reset_mock()
|
||||
# Make sure it will also take a connectable device
|
||||
qingping_adv_with_better_rssi = generate_advertisement_data(
|
||||
local_name="Qingping Motion & Light",
|
||||
service_data={
|
||||
"0000fdcd-0000-1000-8000-00805f9b34fb": b"H\x12\xcd\xd5`4-X\x08\x04\x01\xe8\x00\x00\x0f\x02{"
|
||||
},
|
||||
rssi=-30,
|
||||
)
|
||||
inject_advertisement_with_time_and_source_connectable(
|
||||
hass, qingping_device, qingping_adv, time.monotonic(), "any", True
|
||||
hass,
|
||||
qingping_device,
|
||||
qingping_adv_with_better_rssi,
|
||||
time.monotonic(),
|
||||
"any",
|
||||
True,
|
||||
)
|
||||
await hass.async_block_till_done()
|
||||
assert _domains_from_mock_config_flow(mock_config_flow) == ["qingping"]
|
||||
|
@ -517,7 +538,9 @@ async def test_discovery_match_by_local_name(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
wrong_device = BLEDevice("44:44:33:11:23:45", "wrong_name")
|
||||
wrong_adv = AdvertisementData(local_name="wrong_name", service_uuids=[])
|
||||
wrong_adv = generate_advertisement_data(
|
||||
local_name="wrong_name", service_uuids=[]
|
||||
)
|
||||
|
||||
inject_advertisement(hass, wrong_device, wrong_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -525,7 +548,7 @@ async def test_discovery_match_by_local_name(
|
|||
assert len(mock_config_flow.mock_calls) == 0
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=[], manufacturer_data={1: b"\x01"}
|
||||
)
|
||||
|
||||
|
@ -559,12 +582,12 @@ async def test_discovery_match_by_manufacturer_id_and_manufacturer_data_start(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
hkc_device = BLEDevice("44:44:33:11:23:45", "lock")
|
||||
hkc_adv_no_mfr_data = AdvertisementData(
|
||||
hkc_adv_no_mfr_data = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={},
|
||||
)
|
||||
hkc_adv = AdvertisementData(
|
||||
hkc_adv = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={76: b"\x06\x02\x03\x99"},
|
||||
|
@ -593,7 +616,7 @@ async def test_discovery_match_by_manufacturer_id_and_manufacturer_data_start(
|
|||
|
||||
mock_config_flow.reset_mock()
|
||||
not_hkc_device = BLEDevice("44:44:33:11:23:21", "lock")
|
||||
not_hkc_adv = AdvertisementData(
|
||||
not_hkc_adv = generate_advertisement_data(
|
||||
local_name="lock", service_uuids=[], manufacturer_data={76: b"\x02"}
|
||||
)
|
||||
|
||||
|
@ -602,7 +625,7 @@ async def test_discovery_match_by_manufacturer_id_and_manufacturer_data_start(
|
|||
|
||||
assert len(mock_config_flow.mock_calls) == 0
|
||||
not_apple_device = BLEDevice("44:44:33:11:23:23", "lock")
|
||||
not_apple_adv = AdvertisementData(
|
||||
not_apple_adv = generate_advertisement_data(
|
||||
local_name="lock", service_uuids=[], manufacturer_data={21: b"\x02"}
|
||||
)
|
||||
|
||||
|
@ -642,36 +665,38 @@ async def test_discovery_match_by_service_data_uuid_then_others(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
device = BLEDevice("44:44:33:11:23:45", "lock")
|
||||
adv_without_service_data_uuid = AdvertisementData(
|
||||
adv_without_service_data_uuid = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={},
|
||||
)
|
||||
adv_with_mfr_data = AdvertisementData(
|
||||
adv_with_mfr_data = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={323: b"\x01\x02\x03"},
|
||||
service_data={},
|
||||
)
|
||||
adv_with_service_data_uuid = AdvertisementData(
|
||||
adv_with_service_data_uuid = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={},
|
||||
service_data={"0000fd3d-0000-1000-8000-00805f9b34fb": b"\x01\x02\x03"},
|
||||
)
|
||||
adv_with_service_data_uuid_and_mfr_data = AdvertisementData(
|
||||
adv_with_service_data_uuid_and_mfr_data = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={323: b"\x01\x02\x03"},
|
||||
service_data={"0000fd3d-0000-1000-8000-00805f9b34fb": b"\x01\x02\x03"},
|
||||
)
|
||||
adv_with_service_data_uuid_and_mfr_data_and_service_uuid = AdvertisementData(
|
||||
local_name="lock",
|
||||
manufacturer_data={323: b"\x01\x02\x03"},
|
||||
service_data={"0000fd3d-0000-1000-8000-00805f9b34fb": b"\x01\x02\x03"},
|
||||
service_uuids=["0000fd3d-0000-1000-8000-00805f9b34fd"],
|
||||
adv_with_service_data_uuid_and_mfr_data_and_service_uuid = (
|
||||
generate_advertisement_data(
|
||||
local_name="lock",
|
||||
manufacturer_data={323: b"\x01\x02\x03"},
|
||||
service_data={"0000fd3d-0000-1000-8000-00805f9b34fb": b"\x01\x02\x03"},
|
||||
service_uuids=["0000fd3d-0000-1000-8000-00805f9b34fd"],
|
||||
)
|
||||
)
|
||||
adv_with_service_uuid = AdvertisementData(
|
||||
adv_with_service_uuid = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
manufacturer_data={},
|
||||
service_data={},
|
||||
|
@ -790,18 +815,18 @@ async def test_discovery_match_by_service_data_uuid_when_format_changes(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
device = BLEDevice("44:44:33:11:23:45", "lock")
|
||||
adv_without_service_data_uuid = AdvertisementData(
|
||||
adv_without_service_data_uuid = generate_advertisement_data(
|
||||
local_name="Qingping Temp RH M",
|
||||
service_uuids=[],
|
||||
manufacturer_data={},
|
||||
)
|
||||
xiaomi_format_adv = AdvertisementData(
|
||||
xiaomi_format_adv = generate_advertisement_data(
|
||||
local_name="Qingping Temp RH M",
|
||||
service_data={
|
||||
"0000fe95-0000-1000-8000-00805f9b34fb": b"0XH\x0b\x06\xa7%\x144-X\x08"
|
||||
},
|
||||
)
|
||||
qingping_format_adv = AdvertisementData(
|
||||
qingping_format_adv = generate_advertisement_data(
|
||||
local_name="Qingping Temp RH M",
|
||||
service_data={
|
||||
"0000fdcd-0000-1000-8000-00805f9b34fb": b"\x08\x16\xa7%\x144-X\x01\x04\xdb\x00\xa6\x01\x02\x01d"
|
||||
|
@ -871,12 +896,12 @@ async def test_discovery_match_first_by_service_uuid_and_then_manufacturer_id(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
device = BLEDevice("44:44:33:11:23:45", "lock")
|
||||
adv_service_uuids = AdvertisementData(
|
||||
adv_service_uuids = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=["0000fd3d-0000-1000-8000-00805f9b34fc"],
|
||||
manufacturer_data={},
|
||||
)
|
||||
adv_manufacturer_data = AdvertisementData(
|
||||
adv_manufacturer_data = generate_advertisement_data(
|
||||
local_name="lock",
|
||||
service_uuids=[],
|
||||
manufacturer_data={76: b"\x06\x02\x03\x99"},
|
||||
|
@ -924,10 +949,10 @@ async def test_rediscovery(hass, mock_bleak_scanner_start, enable_bluetooth):
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
|
||||
)
|
||||
switchbot_adv_2 = AdvertisementData(
|
||||
switchbot_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={1: b"\x01"},
|
||||
|
@ -958,8 +983,8 @@ async def test_async_discovered_device_api(
|
|||
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")],
|
||||
"bleak.BleakScanner.discovered_devices_and_advertisement_data", # Must patch before we setup
|
||||
{"44:44:33:11:23:45": (MagicMock(address="44:44:33:11:23:45"), MagicMock())},
|
||||
):
|
||||
assert not bluetooth.async_discovered_service_info(hass)
|
||||
assert not bluetooth.async_address_present(hass, "44:44:22:22:11:22")
|
||||
|
@ -974,10 +999,14 @@ async def test_async_discovered_device_api(
|
|||
assert not bluetooth.async_discovered_service_info(hass)
|
||||
|
||||
wrong_device = BLEDevice("44:44:33:11:23:42", "wrong_name")
|
||||
wrong_adv = AdvertisementData(local_name="wrong_name", service_uuids=[])
|
||||
wrong_adv = generate_advertisement_data(
|
||||
local_name="wrong_name", service_uuids=[]
|
||||
)
|
||||
inject_advertisement(hass, wrong_device, wrong_adv)
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(local_name="wohand", service_uuids=[])
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=[]
|
||||
)
|
||||
inject_advertisement(hass, switchbot_device, switchbot_adv)
|
||||
wrong_device_went_unavailable = False
|
||||
switchbot_device_went_unavailable = False
|
||||
|
@ -1070,7 +1099,7 @@ async def test_register_callbacks(hass, mock_bleak_scanner_start, enable_bluetoo
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
|
@ -1080,13 +1109,13 @@ async def test_register_callbacks(hass, mock_bleak_scanner_start, enable_bluetoo
|
|||
inject_advertisement(hass, switchbot_device, switchbot_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -1138,7 +1167,7 @@ async def test_register_callbacks_raises_exception(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
|
@ -1197,7 +1226,7 @@ async def test_register_callback_by_address(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
|
@ -1207,13 +1236,13 @@ async def test_register_callback_by_address(
|
|||
inject_advertisement(hass, switchbot_device, switchbot_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
# 3rd callback raises ValueError but is still tracked
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
|
@ -1299,18 +1328,29 @@ async def test_register_callback_by_address_connectable_only(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
|
||||
switchbot_adv_better_rssi = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
rssi=-30,
|
||||
)
|
||||
inject_advertisement_with_time_and_source_connectable(
|
||||
hass, switchbot_device, switchbot_adv, time.monotonic(), "test", False
|
||||
)
|
||||
inject_advertisement_with_time_and_source_connectable(
|
||||
hass, switchbot_device, switchbot_adv, time.monotonic(), "test", True
|
||||
hass,
|
||||
switchbot_device,
|
||||
switchbot_adv_better_rssi,
|
||||
time.monotonic(),
|
||||
"test",
|
||||
True,
|
||||
)
|
||||
|
||||
cancel()
|
||||
|
@ -1354,7 +1394,7 @@ async def test_register_callback_by_manufacturer_id(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
apple_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
apple_adv = AdvertisementData(
|
||||
apple_adv = generate_advertisement_data(
|
||||
local_name="rtx",
|
||||
manufacturer_data={21: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1362,7 +1402,7 @@ async def test_register_callback_by_manufacturer_id(
|
|||
inject_advertisement(hass, apple_device, apple_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -1409,7 +1449,7 @@ async def test_register_callback_by_connectable(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
apple_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
apple_adv = AdvertisementData(
|
||||
apple_adv = generate_advertisement_data(
|
||||
local_name="rtx",
|
||||
manufacturer_data={7676: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1417,7 +1457,7 @@ async def test_register_callback_by_connectable(
|
|||
inject_advertisement(hass, apple_device, apple_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -1464,7 +1504,7 @@ async def test_not_filtering_wanted_apple_devices(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
ibeacon_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
ibeacon_adv = AdvertisementData(
|
||||
ibeacon_adv = generate_advertisement_data(
|
||||
local_name="ibeacon",
|
||||
manufacturer_data={76: b"\x02\x00\x00\x00"},
|
||||
)
|
||||
|
@ -1472,7 +1512,7 @@ async def test_not_filtering_wanted_apple_devices(
|
|||
inject_advertisement(hass, ibeacon_device, ibeacon_adv)
|
||||
|
||||
homekit_device = BLEDevice("44:44:33:11:23:46", "rtx")
|
||||
homekit_adv = AdvertisementData(
|
||||
homekit_adv = generate_advertisement_data(
|
||||
local_name="homekit",
|
||||
manufacturer_data={76: b"\x06\x00\x00\x00"},
|
||||
)
|
||||
|
@ -1480,7 +1520,7 @@ async def test_not_filtering_wanted_apple_devices(
|
|||
inject_advertisement(hass, homekit_device, homekit_adv)
|
||||
|
||||
apple_device = BLEDevice("44:44:33:11:23:47", "rtx")
|
||||
apple_adv = AdvertisementData(
|
||||
apple_adv = generate_advertisement_data(
|
||||
local_name="apple",
|
||||
manufacturer_data={76: b"\x10\x00\x00\x00"},
|
||||
)
|
||||
|
@ -1524,7 +1564,7 @@ async def test_filtering_noisy_apple_devices(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
apple_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
apple_adv = AdvertisementData(
|
||||
apple_adv = generate_advertisement_data(
|
||||
local_name="noisy",
|
||||
manufacturer_data={76: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1532,7 +1572,7 @@ async def test_filtering_noisy_apple_devices(
|
|||
inject_advertisement(hass, apple_device, apple_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -1574,7 +1614,7 @@ async def test_register_callback_by_address_connectable_manufacturer_id(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
apple_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
apple_adv = AdvertisementData(
|
||||
apple_adv = generate_advertisement_data(
|
||||
local_name="rtx",
|
||||
manufacturer_data={21: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1628,7 +1668,7 @@ async def test_register_callback_by_manufacturer_id_and_address(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
rtx_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
rtx_adv = AdvertisementData(
|
||||
rtx_adv = generate_advertisement_data(
|
||||
local_name="rtx",
|
||||
manufacturer_data={21: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1636,7 +1676,7 @@ async def test_register_callback_by_manufacturer_id_and_address(
|
|||
inject_advertisement(hass, rtx_device, rtx_adv)
|
||||
|
||||
yale_device = BLEDevice("44:44:33:11:23:45", "apple")
|
||||
yale_adv = AdvertisementData(
|
||||
yale_adv = generate_advertisement_data(
|
||||
local_name="yale",
|
||||
manufacturer_data={465: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1645,7 +1685,7 @@ async def test_register_callback_by_manufacturer_id_and_address(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
other_apple_device = BLEDevice("44:44:33:11:23:22", "apple")
|
||||
other_apple_adv = AdvertisementData(
|
||||
other_apple_adv = generate_advertisement_data(
|
||||
local_name="apple",
|
||||
manufacturer_data={21: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1696,7 +1736,7 @@ async def test_register_callback_by_service_uuid_and_address(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_dev = BLEDevice("44:44:33:11:23:45", "switchbot")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="switchbot",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
)
|
||||
|
@ -1704,7 +1744,7 @@ async def test_register_callback_by_service_uuid_and_address(
|
|||
inject_advertisement(hass, switchbot_dev, switchbot_adv)
|
||||
|
||||
switchbot_missing_service_uuid_dev = BLEDevice("44:44:33:11:23:45", "switchbot")
|
||||
switchbot_missing_service_uuid_adv = AdvertisementData(
|
||||
switchbot_missing_service_uuid_adv = generate_advertisement_data(
|
||||
local_name="switchbot",
|
||||
)
|
||||
|
||||
|
@ -1714,7 +1754,7 @@ async def test_register_callback_by_service_uuid_and_address(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
service_uuid_wrong_address_dev = BLEDevice("44:44:33:11:23:22", "switchbot2")
|
||||
service_uuid_wrong_address_adv = AdvertisementData(
|
||||
service_uuid_wrong_address_adv = generate_advertisement_data(
|
||||
local_name="switchbot2",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
)
|
||||
|
@ -1765,7 +1805,7 @@ async def test_register_callback_by_service_data_uuid_and_address(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_dev = BLEDevice("44:44:33:11:23:45", "switchbot")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="switchbot",
|
||||
service_data={"cba20d00-224d-11e6-9fb8-0002a5d5c51b": b"x"},
|
||||
)
|
||||
|
@ -1773,7 +1813,7 @@ async def test_register_callback_by_service_data_uuid_and_address(
|
|||
inject_advertisement(hass, switchbot_dev, switchbot_adv)
|
||||
|
||||
switchbot_missing_service_uuid_dev = BLEDevice("44:44:33:11:23:45", "switchbot")
|
||||
switchbot_missing_service_uuid_adv = AdvertisementData(
|
||||
switchbot_missing_service_uuid_adv = generate_advertisement_data(
|
||||
local_name="switchbot",
|
||||
)
|
||||
|
||||
|
@ -1783,7 +1823,7 @@ async def test_register_callback_by_service_data_uuid_and_address(
|
|||
await hass.async_block_till_done()
|
||||
|
||||
service_uuid_wrong_address_dev = BLEDevice("44:44:33:11:23:22", "switchbot2")
|
||||
service_uuid_wrong_address_adv = AdvertisementData(
|
||||
service_uuid_wrong_address_adv = generate_advertisement_data(
|
||||
local_name="switchbot2",
|
||||
service_data={"cba20d00-224d-11e6-9fb8-0002a5d5c51b": b"x"},
|
||||
)
|
||||
|
@ -1831,7 +1871,7 @@ async def test_register_callback_by_local_name(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
rtx_device = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
rtx_adv = AdvertisementData(
|
||||
rtx_adv = generate_advertisement_data(
|
||||
local_name="rtx",
|
||||
manufacturer_data={21: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1839,12 +1879,12 @@ async def test_register_callback_by_local_name(
|
|||
inject_advertisement(hass, rtx_device, rtx_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
|
||||
rtx_device_2 = BLEDevice("44:44:33:11:23:45", "rtx")
|
||||
rtx_adv_2 = AdvertisementData(
|
||||
rtx_adv_2 = generate_advertisement_data(
|
||||
local_name="rtx2",
|
||||
manufacturer_data={21: b"\xd8.\xad\xcd\r\x85"},
|
||||
)
|
||||
|
@ -1927,7 +1967,7 @@ async def test_register_callback_by_service_data_uuid(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
apple_device = BLEDevice("44:44:33:11:23:45", "xiaomi")
|
||||
apple_adv = AdvertisementData(
|
||||
apple_adv = generate_advertisement_data(
|
||||
local_name="xiaomi",
|
||||
service_data={
|
||||
"0000fe95-0000-1000-8000-00805f9b34fb": b"\xd8.\xad\xcd\r\x85"
|
||||
|
@ -1937,7 +1977,7 @@ async def test_register_callback_by_service_data_uuid(
|
|||
inject_advertisement(hass, apple_device, apple_adv)
|
||||
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
inject_advertisement(hass, empty_device, empty_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
@ -1981,13 +2021,13 @@ async def test_register_callback_survives_reload(
|
|||
assert len(mock_bleak_scanner_start.mock_calls) == 1
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["zba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
switchbot_adv_2 = AdvertisementData(
|
||||
switchbot_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["zba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
|
@ -2035,7 +2075,7 @@ async def test_process_advertisements_bail_on_good_advertisement(
|
|||
|
||||
while not done.done():
|
||||
device = BLEDevice("aa:44:33:11:23:45", "wohand")
|
||||
adv = AdvertisementData(
|
||||
adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51a"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
|
@ -2060,13 +2100,13 @@ async def test_process_advertisements_ignore_bad_advertisement(
|
|||
return_value = asyncio.Event()
|
||||
|
||||
device = BLEDevice("aa:44:33:11:23:45", "wohand")
|
||||
adv = AdvertisementData(
|
||||
adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51a"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fa": b""},
|
||||
)
|
||||
adv2 = AdvertisementData(
|
||||
adv2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51a"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
|
@ -2142,20 +2182,20 @@ async def test_wrapped_instance_with_filter(
|
|||
detected.append((device, advertisement_data))
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
switchbot_adv_2 = AdvertisementData(
|
||||
switchbot_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
assert _get_manager() is not None
|
||||
scanner = models.HaBleakScannerWrapper(
|
||||
|
@ -2214,20 +2254,20 @@ async def test_wrapped_instance_with_service_uuids(
|
|||
detected.append((device, advertisement_data))
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
switchbot_adv_2 = AdvertisementData(
|
||||
switchbot_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
assert _get_manager() is not None
|
||||
scanner = models.HaBleakScannerWrapper(
|
||||
|
@ -2272,7 +2312,7 @@ async def test_wrapped_instance_with_broken_callbacks(
|
|||
detected.append((device, advertisement_data))
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
|
@ -2313,20 +2353,20 @@ async def test_wrapped_instance_changes_uuids(
|
|||
detected.append((device, advertisement_data))
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:45", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
switchbot_adv_2 = AdvertisementData(
|
||||
switchbot_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
empty_device = BLEDevice("11:22:33:44:55:66", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
assert _get_manager() is not None
|
||||
scanner = models.HaBleakScannerWrapper()
|
||||
|
@ -2368,20 +2408,20 @@ async def test_wrapped_instance_changes_filters(
|
|||
detected.append((device, advertisement_data))
|
||||
|
||||
switchbot_device = BLEDevice("44:44:33:11:23:42", "wohand")
|
||||
switchbot_adv = AdvertisementData(
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x85"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
switchbot_adv_2 = AdvertisementData(
|
||||
switchbot_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
service_uuids=["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
|
||||
manufacturer_data={89: b"\xd8.\xad\xcd\r\x84"},
|
||||
service_data={"00000d00-0000-1000-8000-00805f9b34fb": b"H\x10c"},
|
||||
)
|
||||
empty_device = BLEDevice("11:22:33:44:55:62", "empty")
|
||||
empty_adv = AdvertisementData(local_name="empty")
|
||||
empty_adv = generate_advertisement_data(local_name="empty")
|
||||
|
||||
assert _get_manager() is not None
|
||||
scanner = models.HaBleakScannerWrapper()
|
||||
|
@ -2434,8 +2474,8 @@ async def test_async_ble_device_from_address(
|
|||
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")],
|
||||
"bleak.BleakScanner.discovered_devices_and_advertisement_data", # Must patch before we setup
|
||||
{"44:44:33:11:23:45": (MagicMock(address="44:44:33:11:23:45"), MagicMock())},
|
||||
):
|
||||
assert not bluetooth.async_discovered_service_info(hass)
|
||||
assert not bluetooth.async_address_present(hass, "44:44:22:22:11:22")
|
||||
|
@ -2453,7 +2493,9 @@ async def test_async_ble_device_from_address(
|
|||
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=[])
|
||||
switchbot_adv = generate_advertisement_data(
|
||||
local_name="wohand", service_uuids=[]
|
||||
)
|
||||
inject_advertisement(hass, switchbot_device, switchbot_adv)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue