mirror of
https://github.com/home-assistant/core.git
synced 2026-04-27 20:23:58 +01:00
Update bleak to 1.0.1 (#147742)
Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
"""Tests for the Bluetooth integration."""
|
||||
|
||||
from collections.abc import Iterable
|
||||
from collections.abc import Generator, Iterable
|
||||
from contextlib import contextmanager
|
||||
import itertools
|
||||
import time
|
||||
from typing import Any
|
||||
from unittest.mock import MagicMock, patch
|
||||
from unittest.mock import MagicMock, PropertyMock, patch
|
||||
|
||||
from bleak import BleakClient
|
||||
from bleak.backends.scanner import AdvertisementData, BLEDevice
|
||||
@@ -53,7 +53,6 @@ ADVERTISEMENT_DATA_DEFAULTS = {
|
||||
|
||||
BLE_DEVICE_DEFAULTS = {
|
||||
"name": None,
|
||||
"rssi": -127,
|
||||
"details": None,
|
||||
}
|
||||
|
||||
@@ -89,7 +88,6 @@ def generate_ble_device(
|
||||
address: str | None = None,
|
||||
name: str | None = None,
|
||||
details: Any | None = None,
|
||||
rssi: int | None = None,
|
||||
**kwargs: Any,
|
||||
) -> BLEDevice:
|
||||
"""Generate a BLEDevice with defaults."""
|
||||
@@ -100,8 +98,6 @@ def generate_ble_device(
|
||||
new["name"] = name
|
||||
if details is not None:
|
||||
new["details"] = details
|
||||
if rssi is not None:
|
||||
new["rssi"] = rssi
|
||||
for key, value in BLE_DEVICE_DEFAULTS.items():
|
||||
new.setdefault(key, value)
|
||||
return BLEDevice(**new)
|
||||
@@ -215,34 +211,35 @@ def inject_bluetooth_service_info(
|
||||
|
||||
|
||||
@contextmanager
|
||||
def patch_all_discovered_devices(mock_discovered: list[BLEDevice]) -> None:
|
||||
def patch_all_discovered_devices(mock_discovered: list[BLEDevice]) -> Generator[None]:
|
||||
"""Mock all the discovered devices from all the scanners."""
|
||||
manager = _get_manager()
|
||||
original_history = {}
|
||||
scanners = list(
|
||||
itertools.chain(
|
||||
manager._connectable_scanners, manager._non_connectable_scanners
|
||||
)
|
||||
)
|
||||
for scanner in scanners:
|
||||
data = scanner.discovered_devices_and_advertisement_data
|
||||
original_history[scanner] = data.copy()
|
||||
data.clear()
|
||||
if scanners:
|
||||
data = scanners[0].discovered_devices_and_advertisement_data
|
||||
data.clear()
|
||||
data.update(
|
||||
{device.address: (device, MagicMock()) for device in mock_discovered}
|
||||
)
|
||||
yield
|
||||
for scanner in scanners:
|
||||
data = scanner.discovered_devices_and_advertisement_data
|
||||
data.clear()
|
||||
data.update(original_history[scanner])
|
||||
if scanners and getattr(scanners[0], "scanner", None):
|
||||
with patch.object(
|
||||
scanners[0].scanner.__class__,
|
||||
"discovered_devices_and_advertisement_data",
|
||||
new=PropertyMock(
|
||||
side_effect=[
|
||||
{
|
||||
device.address: (device, MagicMock())
|
||||
for device in mock_discovered
|
||||
},
|
||||
]
|
||||
+ [{}] * (len(scanners))
|
||||
),
|
||||
):
|
||||
yield
|
||||
else:
|
||||
yield
|
||||
|
||||
|
||||
@contextmanager
|
||||
def patch_discovered_devices(mock_discovered: list[BLEDevice]) -> None:
|
||||
def patch_discovered_devices(mock_discovered: list[BLEDevice]) -> Generator[None]:
|
||||
"""Mock the combined best path to discovered devices from all the scanners."""
|
||||
manager = _get_manager()
|
||||
original_all_history = manager._all_history
|
||||
@@ -305,6 +302,9 @@ class MockBleakClient(BleakClient):
|
||||
"""Mock clear_cache."""
|
||||
return True
|
||||
|
||||
def set_disconnected_callback(self, callback, **kwargs):
|
||||
"""Mock set_disconnected_callback."""
|
||||
|
||||
|
||||
class FakeScannerMixin:
|
||||
def get_discovered_device_advertisement_data(
|
||||
|
||||
Reference in New Issue
Block a user