2022-07-08 18:55:31 -05:00
|
|
|
"""Tests for the Bluetooth integration."""
|
2022-07-22 18:12:08 -05:00
|
|
|
|
|
|
|
|
2022-08-17 10:51:56 -10:00
|
|
|
import time
|
|
|
|
from unittest.mock import patch
|
2022-07-22 18:12:08 -05:00
|
|
|
|
2022-08-17 10:51:56 -10:00
|
|
|
from bleak.backends.scanner import AdvertisementData, BLEDevice
|
|
|
|
|
|
|
|
from homeassistant.components.bluetooth import SOURCE_LOCAL, models
|
|
|
|
from homeassistant.components.bluetooth.manager import BluetoothManager
|
|
|
|
|
|
|
|
|
|
|
|
def _get_manager() -> BluetoothManager:
|
|
|
|
"""Return the bluetooth manager."""
|
|
|
|
return models.MANAGER
|
|
|
|
|
|
|
|
|
|
|
|
def inject_advertisement(device: BLEDevice, adv: AdvertisementData) -> None:
|
2022-07-22 18:12:08 -05:00
|
|
|
"""Return the underlying scanner that has been wrapped."""
|
2022-08-17 10:51:56 -10:00
|
|
|
return _get_manager().scanner_adv_received(
|
|
|
|
device, adv, time.monotonic(), SOURCE_LOCAL
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def patch_all_discovered_devices(mock_discovered: list[BLEDevice]) -> None:
|
|
|
|
"""Mock all the discovered devices from all the scanners."""
|
|
|
|
manager = _get_manager()
|
|
|
|
return patch.object(
|
|
|
|
manager, "async_all_discovered_devices", return_value=mock_discovered
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
def patch_discovered_devices(mock_discovered: list[BLEDevice]) -> None:
|
|
|
|
"""Mock the combined best path to discovered devices from all the scanners."""
|
|
|
|
manager = _get_manager()
|
|
|
|
return patch.object(
|
|
|
|
manager, "async_discovered_devices", return_value=mock_discovered
|
|
|
|
)
|