mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 04:37:06 +00:00
Update habluetooth to 2.0.0 (#106145)
This commit is contained in:
parent
dbb726f41f
commit
e50fe79911
@ -303,7 +303,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
adapters = await manager.async_get_bluetooth_adapters()
|
adapters = await manager.async_get_bluetooth_adapters()
|
||||||
details = adapters[adapter]
|
details = adapters[adapter]
|
||||||
slots: int = details.get(ADAPTER_CONNECTION_SLOTS) or DEFAULT_CONNECTION_SLOTS
|
slots: int = details.get(ADAPTER_CONNECTION_SLOTS) or DEFAULT_CONNECTION_SLOTS
|
||||||
entry.async_on_unload(async_register_scanner(hass, scanner, True, slots))
|
entry.async_on_unload(async_register_scanner(hass, scanner, connection_slots=slots))
|
||||||
await async_update_device(hass, entry, adapter, details)
|
await async_update_device(hass, entry, adapter, details)
|
||||||
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = scanner
|
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = scanner
|
||||||
entry.async_on_unload(entry.add_update_listener(async_update_listener))
|
entry.async_on_unload(entry.add_update_listener(async_update_listener))
|
||||||
|
@ -181,13 +181,10 @@ def async_rediscover_address(hass: HomeAssistant, address: str) -> None:
|
|||||||
def async_register_scanner(
|
def async_register_scanner(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
scanner: BaseHaScanner,
|
scanner: BaseHaScanner,
|
||||||
connectable: bool,
|
|
||||||
connection_slots: int | None = None,
|
connection_slots: int | None = None,
|
||||||
) -> CALLBACK_TYPE:
|
) -> CALLBACK_TYPE:
|
||||||
"""Register a BleakScanner."""
|
"""Register a BleakScanner."""
|
||||||
return _get_manager(hass).async_register_scanner(
|
return _get_manager(hass).async_register_scanner(scanner, connection_slots)
|
||||||
scanner, connectable, connection_slots
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@hass_callback
|
@hass_callback
|
||||||
|
@ -220,7 +220,6 @@ class HomeAssistantBluetoothManager(BluetoothManager):
|
|||||||
def async_register_scanner(
|
def async_register_scanner(
|
||||||
self,
|
self,
|
||||||
scanner: BaseHaScanner,
|
scanner: BaseHaScanner,
|
||||||
connectable: bool,
|
|
||||||
connection_slots: int | None = None,
|
connection_slots: int | None = None,
|
||||||
) -> CALLBACK_TYPE:
|
) -> CALLBACK_TYPE:
|
||||||
"""Register a scanner."""
|
"""Register a scanner."""
|
||||||
@ -228,7 +227,5 @@ class HomeAssistantBluetoothManager(BluetoothManager):
|
|||||||
if history := self.storage.async_get_advertisement_history(scanner.source):
|
if history := self.storage.async_get_advertisement_history(scanner.source):
|
||||||
scanner.restore_discovered_devices(history)
|
scanner.restore_discovered_devices(history)
|
||||||
|
|
||||||
unregister = super().async_register_scanner(
|
unregister = super().async_register_scanner(scanner, connection_slots)
|
||||||
scanner, connectable, connection_slots
|
|
||||||
)
|
|
||||||
return partial(self._async_unregister_scanner, scanner, unregister)
|
return partial(self._async_unregister_scanner, scanner, unregister)
|
||||||
|
@ -20,6 +20,6 @@
|
|||||||
"bluetooth-auto-recovery==1.2.3",
|
"bluetooth-auto-recovery==1.2.3",
|
||||||
"bluetooth-data-tools==1.18.0",
|
"bluetooth-data-tools==1.18.0",
|
||||||
"dbus-fast==2.21.0",
|
"dbus-fast==2.21.0",
|
||||||
"habluetooth==1.0.0"
|
"habluetooth==2.0.0"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -38,7 +38,7 @@ async def async_connect_scanner(
|
|||||||
return partial(
|
return partial(
|
||||||
_async_unload,
|
_async_unload,
|
||||||
[
|
[
|
||||||
async_register_scanner(hass, scanner, scanner.connectable),
|
async_register_scanner(hass, scanner),
|
||||||
scanner.async_setup(),
|
scanner.async_setup(),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
@ -84,7 +84,7 @@ def async_connect_scanner(
|
|||||||
coordinator=coordinator,
|
coordinator=coordinator,
|
||||||
)
|
)
|
||||||
unload_callbacks = [
|
unload_callbacks = [
|
||||||
async_register_scanner(hass, scanner, connectable=False),
|
async_register_scanner(hass, scanner),
|
||||||
scanner.async_setup(),
|
scanner.async_setup(),
|
||||||
scanner.start_polling(),
|
scanner.start_polling(),
|
||||||
]
|
]
|
||||||
|
@ -43,7 +43,7 @@ async def async_connect_scanner(
|
|||||||
)
|
)
|
||||||
scanner = ShellyBLEScanner(source, entry.title, connector, False)
|
scanner = ShellyBLEScanner(source, entry.title, connector, False)
|
||||||
unload_callbacks = [
|
unload_callbacks = [
|
||||||
async_register_scanner(hass, scanner, False),
|
async_register_scanner(hass, scanner),
|
||||||
scanner.async_setup(),
|
scanner.async_setup(),
|
||||||
coordinator.async_subscribe_events(scanner.async_on_event),
|
coordinator.async_subscribe_events(scanner.async_on_event),
|
||||||
]
|
]
|
||||||
|
@ -23,7 +23,7 @@ dbus-fast==2.21.0
|
|||||||
fnv-hash-fast==0.5.0
|
fnv-hash-fast==0.5.0
|
||||||
ha-av==10.1.1
|
ha-av==10.1.1
|
||||||
ha-ffmpeg==3.1.0
|
ha-ffmpeg==3.1.0
|
||||||
habluetooth==1.0.0
|
habluetooth==2.0.0
|
||||||
hass-nabucasa==0.75.1
|
hass-nabucasa==0.75.1
|
||||||
hassil==1.5.1
|
hassil==1.5.1
|
||||||
home-assistant-bluetooth==1.11.0
|
home-assistant-bluetooth==1.11.0
|
||||||
|
@ -989,7 +989,7 @@ ha-philipsjs==3.1.1
|
|||||||
habitipy==0.2.0
|
habitipy==0.2.0
|
||||||
|
|
||||||
# homeassistant.components.bluetooth
|
# homeassistant.components.bluetooth
|
||||||
habluetooth==1.0.0
|
habluetooth==2.0.0
|
||||||
|
|
||||||
# homeassistant.components.cloud
|
# homeassistant.components.cloud
|
||||||
hass-nabucasa==0.75.1
|
hass-nabucasa==0.75.1
|
||||||
|
@ -788,7 +788,7 @@ ha-philipsjs==3.1.1
|
|||||||
habitipy==0.2.0
|
habitipy==0.2.0
|
||||||
|
|
||||||
# homeassistant.components.bluetooth
|
# homeassistant.components.bluetooth
|
||||||
habluetooth==1.0.0
|
habluetooth==2.0.0
|
||||||
|
|
||||||
# homeassistant.components.cloud
|
# homeassistant.components.cloud
|
||||||
hass-nabucasa==0.75.1
|
hass-nabucasa==0.75.1
|
||||||
|
@ -346,7 +346,7 @@ async def test_advertisment_interval_longer_than_adapter_stack_timeout_adapter_c
|
|||||||
switchbot_device_went_unavailable = False
|
switchbot_device_went_unavailable = False
|
||||||
|
|
||||||
scanner = FakeScanner("new", "fake_adapter")
|
scanner = FakeScanner("new", "fake_adapter")
|
||||||
cancel_scanner = async_register_scanner(hass, scanner, False)
|
cancel_scanner = async_register_scanner(hass, scanner)
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
def _switchbot_device_unavailable_callback(_address: str) -> None:
|
def _switchbot_device_unavailable_callback(_address: str) -> None:
|
||||||
|
@ -28,7 +28,7 @@ async def test_scanner_by_source(hass: HomeAssistant, enable_bluetooth: None) ->
|
|||||||
"""Test we can get a scanner by source."""
|
"""Test we can get a scanner by source."""
|
||||||
|
|
||||||
hci2_scanner = FakeScanner("hci2", "hci2")
|
hci2_scanner = FakeScanner("hci2", "hci2")
|
||||||
cancel_hci2 = bluetooth.async_register_scanner(hass, hci2_scanner, True)
|
cancel_hci2 = bluetooth.async_register_scanner(hass, hci2_scanner)
|
||||||
|
|
||||||
assert async_scanner_by_source(hass, "hci2") is hci2_scanner
|
assert async_scanner_by_source(hass, "hci2") is hci2_scanner
|
||||||
cancel_hci2()
|
cancel_hci2()
|
||||||
@ -74,9 +74,9 @@ async def test_async_scanner_devices_by_address_connectable(
|
|||||||
connector = (
|
connector = (
|
||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeInjectableScanner("esp32", "esp32", connector, False)
|
scanner = FakeInjectableScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
switchbot_device = generate_ble_device(
|
switchbot_device = generate_ble_device(
|
||||||
"44:44:33:11:23:45",
|
"44:44:33:11:23:45",
|
||||||
"wohand",
|
"wohand",
|
||||||
@ -141,7 +141,7 @@ async def test_async_scanner_devices_by_address_non_connectable(
|
|||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeStaticScanner("esp32", "esp32", connector)
|
scanner = FakeStaticScanner("esp32", "esp32", connector)
|
||||||
cancel = manager.async_register_scanner(scanner, False)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
assert scanner.discovered_devices_and_advertisement_data == {
|
assert scanner.discovered_devices_and_advertisement_data == {
|
||||||
switchbot_device.address: (switchbot_device, switchbot_device_adv)
|
switchbot_device.address: (switchbot_device, switchbot_device_adv)
|
||||||
|
@ -116,7 +116,7 @@ async def test_remote_scanner(
|
|||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, True)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
scanner.inject_advertisement(switchbot_device, switchbot_device_adv)
|
scanner.inject_advertisement(switchbot_device, switchbot_device_adv)
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ async def test_remote_scanner_expires_connectable(
|
|||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, True)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
start_time_monotonic = time.monotonic()
|
start_time_monotonic = time.monotonic()
|
||||||
scanner.inject_advertisement(switchbot_device, switchbot_device_adv)
|
scanner.inject_advertisement(switchbot_device, switchbot_device_adv)
|
||||||
@ -234,9 +234,9 @@ async def test_remote_scanner_expires_non_connectable(
|
|||||||
connector = (
|
connector = (
|
||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, False)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
start_time_monotonic = time.monotonic()
|
start_time_monotonic = time.monotonic()
|
||||||
scanner.inject_advertisement(switchbot_device, switchbot_device_adv)
|
scanner.inject_advertisement(switchbot_device, switchbot_device_adv)
|
||||||
@ -308,9 +308,9 @@ async def test_base_scanner_connecting_behavior(
|
|||||||
connector = (
|
connector = (
|
||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, False)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
with scanner.connecting():
|
with scanner.connecting():
|
||||||
assert scanner.scanning is False
|
assert scanner.scanning is False
|
||||||
@ -366,7 +366,7 @@ async def test_restore_history_remote_adapter(
|
|||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = _get_manager().async_register_scanner(scanner, True)
|
cancel = _get_manager().async_register_scanner(scanner)
|
||||||
|
|
||||||
assert "EB:0B:36:35:6F:A4" in scanner.discovered_devices_and_advertisement_data
|
assert "EB:0B:36:35:6F:A4" in scanner.discovered_devices_and_advertisement_data
|
||||||
assert "E3:A5:63:3E:5E:23" not in scanner.discovered_devices_and_advertisement_data
|
assert "E3:A5:63:3E:5E:23" not in scanner.discovered_devices_and_advertisement_data
|
||||||
@ -380,7 +380,7 @@ async def test_restore_history_remote_adapter(
|
|||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = _get_manager().async_register_scanner(scanner, True)
|
cancel = _get_manager().async_register_scanner(scanner)
|
||||||
assert "EB:0B:36:35:6F:A4" in scanner.discovered_devices_and_advertisement_data
|
assert "EB:0B:36:35:6F:A4" in scanner.discovered_devices_and_advertisement_data
|
||||||
assert "E3:A5:63:3E:5E:23" not in scanner.discovered_devices_and_advertisement_data
|
assert "E3:A5:63:3E:5E:23" not in scanner.discovered_devices_and_advertisement_data
|
||||||
|
|
||||||
@ -410,9 +410,9 @@ async def test_device_with_ten_minute_advertising_interval(
|
|||||||
connector = (
|
connector = (
|
||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, False)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
monotonic_now = time.monotonic()
|
monotonic_now = time.monotonic()
|
||||||
new_time = monotonic_now
|
new_time = monotonic_now
|
||||||
@ -501,9 +501,9 @@ async def test_scanner_stops_responding(
|
|||||||
connector = (
|
connector = (
|
||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, False)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
start_time_monotonic = time.monotonic()
|
start_time_monotonic = time.monotonic()
|
||||||
|
|
||||||
|
@ -457,9 +457,9 @@ async def test_diagnostics_remote_adapter(
|
|||||||
connector = (
|
connector = (
|
||||||
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
HaBluetoothConnector(MockBleakClient, "mock_bleak_client", lambda: False),
|
||||||
)
|
)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, False)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
unsetup = scanner.async_setup()
|
unsetup = scanner.async_setup()
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
|
|
||||||
scanner.inject_advertisement(switchbot_device, switchbot_adv)
|
scanner.inject_advertisement(switchbot_device, switchbot_adv)
|
||||||
inject_advertisement(hass, switchbot_device, switchbot_adv)
|
inject_advertisement(hass, switchbot_device, switchbot_adv)
|
||||||
@ -511,7 +511,7 @@ async def test_diagnostics_remote_adapter(
|
|||||||
-127,
|
-127,
|
||||||
[],
|
[],
|
||||||
],
|
],
|
||||||
"connectable": False,
|
"connectable": True,
|
||||||
"device": {
|
"device": {
|
||||||
"__type": "<class 'bleak.backends.device.BLEDevice'>",
|
"__type": "<class 'bleak.backends.device.BLEDevice'>",
|
||||||
"repr": "BLEDevice(44:44:33:11:23:45, wohand)",
|
"repr": "BLEDevice(44:44:33:11:23:45, wohand)",
|
||||||
@ -537,7 +537,7 @@ async def test_diagnostics_remote_adapter(
|
|||||||
[],
|
[],
|
||||||
-127,
|
-127,
|
||||||
-127,
|
-127,
|
||||||
[[]],
|
[],
|
||||||
],
|
],
|
||||||
"connectable": True,
|
"connectable": True,
|
||||||
"device": {
|
"device": {
|
||||||
@ -551,7 +551,7 @@ async def test_diagnostics_remote_adapter(
|
|||||||
"rssi": -127,
|
"rssi": -127,
|
||||||
"service_data": {},
|
"service_data": {},
|
||||||
"service_uuids": [],
|
"service_uuids": [],
|
||||||
"source": "local",
|
"source": "esp32",
|
||||||
"time": ANY,
|
"time": ANY,
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@ -595,7 +595,7 @@ async def test_diagnostics_remote_adapter(
|
|||||||
"type": "FakeHaScanner",
|
"type": "FakeHaScanner",
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"connectable": False,
|
"connectable": True,
|
||||||
"discovered_device_timestamps": {"44:44:33:11:23:45": ANY},
|
"discovered_device_timestamps": {"44:44:33:11:23:45": ANY},
|
||||||
"discovered_devices_and_advertisement_data": [
|
"discovered_devices_and_advertisement_data": [
|
||||||
{
|
{
|
||||||
|
@ -2816,7 +2816,7 @@ async def test_scanner_count_connectable(
|
|||||||
) -> None:
|
) -> None:
|
||||||
"""Test getting the connectable scanner count."""
|
"""Test getting the connectable scanner count."""
|
||||||
scanner = FakeScanner("any", "any")
|
scanner = FakeScanner("any", "any")
|
||||||
cancel = bluetooth.async_register_scanner(hass, scanner, False)
|
cancel = bluetooth.async_register_scanner(hass, scanner)
|
||||||
assert bluetooth.async_scanner_count(hass, connectable=True) == 1
|
assert bluetooth.async_scanner_count(hass, connectable=True) == 1
|
||||||
cancel()
|
cancel()
|
||||||
|
|
||||||
@ -2824,7 +2824,7 @@ async def test_scanner_count_connectable(
|
|||||||
async def test_scanner_count(hass: HomeAssistant, enable_bluetooth: None) -> None:
|
async def test_scanner_count(hass: HomeAssistant, enable_bluetooth: None) -> None:
|
||||||
"""Test getting the connectable and non-connectable scanner count."""
|
"""Test getting the connectable and non-connectable scanner count."""
|
||||||
scanner = FakeScanner("any", "any")
|
scanner = FakeScanner("any", "any")
|
||||||
cancel = bluetooth.async_register_scanner(hass, scanner, False)
|
cancel = bluetooth.async_register_scanner(hass, scanner)
|
||||||
assert bluetooth.async_scanner_count(hass, connectable=False) == 2
|
assert bluetooth.async_scanner_count(hass, connectable=False) == 2
|
||||||
cancel()
|
cancel()
|
||||||
|
|
||||||
|
@ -55,7 +55,7 @@ from tests.common import async_fire_time_changed, load_fixture
|
|||||||
def register_hci0_scanner(hass: HomeAssistant) -> Generator[None, None, None]:
|
def register_hci0_scanner(hass: HomeAssistant) -> Generator[None, None, None]:
|
||||||
"""Register an hci0 scanner."""
|
"""Register an hci0 scanner."""
|
||||||
hci0_scanner = FakeScanner("hci0", "hci0")
|
hci0_scanner = FakeScanner("hci0", "hci0")
|
||||||
cancel = bluetooth.async_register_scanner(hass, hci0_scanner, True)
|
cancel = bluetooth.async_register_scanner(hass, hci0_scanner)
|
||||||
yield
|
yield
|
||||||
cancel()
|
cancel()
|
||||||
|
|
||||||
@ -64,7 +64,7 @@ def register_hci0_scanner(hass: HomeAssistant) -> Generator[None, None, None]:
|
|||||||
def register_hci1_scanner(hass: HomeAssistant) -> Generator[None, None, None]:
|
def register_hci1_scanner(hass: HomeAssistant) -> Generator[None, None, None]:
|
||||||
"""Register an hci1 scanner."""
|
"""Register an hci1 scanner."""
|
||||||
hci1_scanner = FakeScanner("hci1", "hci1")
|
hci1_scanner = FakeScanner("hci1", "hci1")
|
||||||
cancel = bluetooth.async_register_scanner(hass, hci1_scanner, True)
|
cancel = bluetooth.async_register_scanner(hass, hci1_scanner)
|
||||||
yield
|
yield
|
||||||
cancel()
|
cancel()
|
||||||
|
|
||||||
@ -559,9 +559,7 @@ async def test_switching_adapters_when_one_goes_away(
|
|||||||
hass: HomeAssistant, enable_bluetooth: None, register_hci0_scanner: None
|
hass: HomeAssistant, enable_bluetooth: None, register_hci0_scanner: None
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test switching adapters when one goes away."""
|
"""Test switching adapters when one goes away."""
|
||||||
cancel_hci2 = bluetooth.async_register_scanner(
|
cancel_hci2 = bluetooth.async_register_scanner(hass, FakeScanner("hci2", "hci2"))
|
||||||
hass, FakeScanner("hci2", "hci2"), True
|
|
||||||
)
|
|
||||||
|
|
||||||
address = "44:44:33:11:23:45"
|
address = "44:44:33:11:23:45"
|
||||||
|
|
||||||
@ -611,7 +609,7 @@ async def test_switching_adapters_when_one_stop_scanning(
|
|||||||
) -> None:
|
) -> None:
|
||||||
"""Test switching adapters when stops scanning."""
|
"""Test switching adapters when stops scanning."""
|
||||||
hci2_scanner = FakeScanner("hci2", "hci2")
|
hci2_scanner = FakeScanner("hci2", "hci2")
|
||||||
cancel_hci2 = bluetooth.async_register_scanner(hass, hci2_scanner, True)
|
cancel_hci2 = bluetooth.async_register_scanner(hass, hci2_scanner)
|
||||||
|
|
||||||
address = "44:44:33:11:23:45"
|
address = "44:44:33:11:23:45"
|
||||||
|
|
||||||
@ -730,7 +728,7 @@ async def test_goes_unavailable_connectable_only_and_recovers(
|
|||||||
)
|
)
|
||||||
unsetup_connectable_scanner = connectable_scanner.async_setup()
|
unsetup_connectable_scanner = connectable_scanner.async_setup()
|
||||||
cancel_connectable_scanner = _get_manager().async_register_scanner(
|
cancel_connectable_scanner = _get_manager().async_register_scanner(
|
||||||
connectable_scanner, True
|
connectable_scanner
|
||||||
)
|
)
|
||||||
connectable_scanner.inject_advertisement(
|
connectable_scanner.inject_advertisement(
|
||||||
switchbot_device_connectable, switchbot_device_adv
|
switchbot_device_connectable, switchbot_device_adv
|
||||||
@ -752,7 +750,7 @@ async def test_goes_unavailable_connectable_only_and_recovers(
|
|||||||
)
|
)
|
||||||
unsetup_not_connectable_scanner = not_connectable_scanner.async_setup()
|
unsetup_not_connectable_scanner = not_connectable_scanner.async_setup()
|
||||||
cancel_not_connectable_scanner = _get_manager().async_register_scanner(
|
cancel_not_connectable_scanner = _get_manager().async_register_scanner(
|
||||||
not_connectable_scanner, False
|
not_connectable_scanner
|
||||||
)
|
)
|
||||||
not_connectable_scanner.inject_advertisement(
|
not_connectable_scanner.inject_advertisement(
|
||||||
switchbot_device_non_connectable, switchbot_device_adv
|
switchbot_device_non_connectable, switchbot_device_adv
|
||||||
@ -801,7 +799,7 @@ async def test_goes_unavailable_connectable_only_and_recovers(
|
|||||||
)
|
)
|
||||||
unsetup_connectable_scanner_2 = connectable_scanner_2.async_setup()
|
unsetup_connectable_scanner_2 = connectable_scanner_2.async_setup()
|
||||||
cancel_connectable_scanner_2 = _get_manager().async_register_scanner(
|
cancel_connectable_scanner_2 = _get_manager().async_register_scanner(
|
||||||
connectable_scanner, True
|
connectable_scanner
|
||||||
)
|
)
|
||||||
connectable_scanner_2.inject_advertisement(
|
connectable_scanner_2.inject_advertisement(
|
||||||
switchbot_device_connectable, switchbot_device_adv
|
switchbot_device_connectable, switchbot_device_adv
|
||||||
@ -902,7 +900,7 @@ async def test_goes_unavailable_dismisses_discovery_and_makes_discoverable(
|
|||||||
)
|
)
|
||||||
unsetup_connectable_scanner = non_connectable_scanner.async_setup()
|
unsetup_connectable_scanner = non_connectable_scanner.async_setup()
|
||||||
cancel_connectable_scanner = _get_manager().async_register_scanner(
|
cancel_connectable_scanner = _get_manager().async_register_scanner(
|
||||||
non_connectable_scanner, True
|
non_connectable_scanner
|
||||||
)
|
)
|
||||||
with patch.object(hass.config_entries.flow, "async_init") as mock_config_flow:
|
with patch.object(hass.config_entries.flow, "async_init") as mock_config_flow:
|
||||||
non_connectable_scanner.inject_advertisement(
|
non_connectable_scanner.inject_advertisement(
|
||||||
@ -914,7 +912,7 @@ async def test_goes_unavailable_dismisses_discovery_and_makes_discoverable(
|
|||||||
assert mock_config_flow.mock_calls[0][1][0] == "switchbot"
|
assert mock_config_flow.mock_calls[0][1][0] == "switchbot"
|
||||||
|
|
||||||
assert async_ble_device_from_address(hass, "44:44:33:11:23:45", False) is not None
|
assert async_ble_device_from_address(hass, "44:44:33:11:23:45", False) is not None
|
||||||
assert async_scanner_count(hass, connectable=True) == 1
|
assert async_scanner_count(hass, connectable=False) == 1
|
||||||
assert len(callbacks) == 1
|
assert len(callbacks) == 1
|
||||||
|
|
||||||
assert (
|
assert (
|
||||||
|
@ -107,7 +107,8 @@ async def test_wrapped_bleak_client_local_adapter_only(
|
|||||||
"00:00:00:00:00:01",
|
"00:00:00:00:00:01",
|
||||||
"hci0",
|
"hci0",
|
||||||
)
|
)
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
scanner.connectable = True
|
||||||
|
cancel = manager.async_register_scanner(scanner)
|
||||||
inject_advertisement_with_source(
|
inject_advertisement_with_source(
|
||||||
hass, switchbot_device, switchbot_adv, "00:00:00:00:00:01"
|
hass, switchbot_device, switchbot_adv, "00:00:00:00:00:01"
|
||||||
)
|
)
|
||||||
@ -187,7 +188,7 @@ async def test_wrapped_bleak_client_set_disconnected_callback_after_connected(
|
|||||||
connector,
|
connector,
|
||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
inject_advertisement_with_source(
|
inject_advertisement_with_source(
|
||||||
hass, switchbot_device, switchbot_adv, "00:00:00:00:00:01"
|
hass, switchbot_device, switchbot_adv, "00:00:00:00:00:01"
|
||||||
)
|
)
|
||||||
@ -291,7 +292,7 @@ async def test_ble_device_with_proxy_client_out_of_connections(
|
|||||||
|
|
||||||
connector = HaBluetoothConnector(MockBleakClient, "esp32", lambda: False)
|
connector = HaBluetoothConnector(MockBleakClient, "esp32", lambda: False)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, True)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
inject_advertisement_with_source(
|
inject_advertisement_with_source(
|
||||||
hass, switchbot_proxy_device_no_connection_slot, switchbot_adv, "esp32"
|
hass, switchbot_proxy_device_no_connection_slot, switchbot_adv, "esp32"
|
||||||
)
|
)
|
||||||
@ -356,7 +357,7 @@ async def test_ble_device_with_proxy_clear_cache(
|
|||||||
|
|
||||||
connector = HaBluetoothConnector(MockBleakClient, "esp32", lambda: True)
|
connector = HaBluetoothConnector(MockBleakClient, "esp32", lambda: True)
|
||||||
scanner = FakeScanner("esp32", "esp32", connector, True)
|
scanner = FakeScanner("esp32", "esp32", connector, True)
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
inject_advertisement_with_source(
|
inject_advertisement_with_source(
|
||||||
hass, switchbot_proxy_device_with_connection_slot, switchbot_adv, "esp32"
|
hass, switchbot_proxy_device_with_connection_slot, switchbot_adv, "esp32"
|
||||||
)
|
)
|
||||||
@ -466,7 +467,7 @@ async def test_ble_device_with_proxy_client_out_of_connections_uses_best_availab
|
|||||||
connector,
|
connector,
|
||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
assert manager.async_discovered_devices(True) == [
|
assert manager.async_discovered_devices(True) == [
|
||||||
switchbot_proxy_device_no_connection_slot
|
switchbot_proxy_device_no_connection_slot
|
||||||
]
|
]
|
||||||
@ -578,7 +579,7 @@ async def test_ble_device_with_proxy_client_out_of_connections_uses_best_availab
|
|||||||
connector,
|
connector,
|
||||||
True,
|
True,
|
||||||
)
|
)
|
||||||
cancel = manager.async_register_scanner(scanner, True)
|
cancel = manager.async_register_scanner(scanner)
|
||||||
assert manager.async_discovered_devices(True) == [
|
assert manager.async_discovered_devices(True) == [
|
||||||
switchbot_proxy_device_no_connection_slot
|
switchbot_proxy_device_no_connection_slot
|
||||||
]
|
]
|
||||||
|
@ -187,8 +187,8 @@ def _generate_scanners_with_fake_devices(hass):
|
|||||||
for device, adv_data in hci1_device_advs.values():
|
for device, adv_data in hci1_device_advs.values():
|
||||||
scanner_hci1.inject_advertisement(device, adv_data)
|
scanner_hci1.inject_advertisement(device, adv_data)
|
||||||
|
|
||||||
cancel_hci0 = manager.async_register_scanner(scanner_hci0, True, 2)
|
cancel_hci0 = manager.async_register_scanner(scanner_hci0, connection_slots=2)
|
||||||
cancel_hci1 = manager.async_register_scanner(scanner_hci1, True, 1)
|
cancel_hci1 = manager.async_register_scanner(scanner_hci1, connection_slots=1)
|
||||||
|
|
||||||
return hci0_device_advs, cancel_hci0, cancel_hci1
|
return hci0_device_advs, cancel_hci0, cancel_hci1
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user