1
0
mirror of https://github.com/home-assistant/core.git synced 2025-12-24 12:59:34 +00:00

Fix ESPHome Bluetooth diagnostics (#106151)

This commit is contained in:
J. Nick Koston
2023-12-20 18:33:43 -10:00
committed by GitHub
parent ced4123d4c
commit e2314565bb
8 changed files with 105 additions and 18 deletions

View File

@@ -1,8 +1,13 @@
"""Tests for the diagnostics data provided by the ESPHome integration."""
from unittest.mock import ANY
from syrupy import SnapshotAssertion
from homeassistant.components import bluetooth
from homeassistant.core import HomeAssistant
from .conftest import MockESPHomeDevice
from tests.common import MockConfigEntry
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
@@ -20,3 +25,77 @@ async def test_diagnostics(
result = await get_diagnostics_for_config_entry(hass, hass_client, init_integration)
assert result == snapshot
async def test_diagnostics_with_bluetooth(
hass: HomeAssistant,
hass_client: ClientSessionGenerator,
mock_bluetooth_entry_with_raw_adv: MockESPHomeDevice,
) -> None:
"""Test diagnostics for config entry with Bluetooth."""
scanner = bluetooth.async_scanner_by_source(hass, "11:22:33:44:55:AA")
assert scanner is not None
assert scanner.connectable is True
entry = mock_bluetooth_entry_with_raw_adv.entry
result = await get_diagnostics_for_config_entry(hass, hass_client, entry)
assert result == {
"bluetooth": {
"available": True,
"connections_free": 0,
"connections_limit": 0,
"scanner": {
"connectable": True,
"discovered_device_timestamps": {},
"discovered_devices_and_advertisement_data": [],
"last_detection": ANY,
"monotonic_time": ANY,
"name": "test (11:22:33:44:55:AA)",
"scanning": True,
"source": "11:22:33:44:55:AA",
"start_time": ANY,
"time_since_last_device_detection": {},
"type": "ESPHomeScanner",
},
},
"config": {
"data": {
"device_name": "test",
"host": "test.local",
"password": "",
"port": 6053,
},
"disabled_by": None,
"domain": "esphome",
"entry_id": ANY,
"minor_version": 1,
"options": {"allow_service_calls": False},
"pref_disable_new_entities": False,
"pref_disable_polling": False,
"source": "user",
"title": "Mock Title",
"unique_id": "11:22:33:44:55:aa",
"version": 1,
},
"storage_data": {
"api_version": {"major": 99, "minor": 99},
"device_info": {
"bluetooth_proxy_feature_flags": 63,
"compilation_time": "",
"esphome_version": "1.0.0",
"friendly_name": "Test",
"has_deep_sleep": False,
"legacy_bluetooth_proxy_version": 0,
"mac_address": "**REDACTED**",
"manufacturer": "",
"model": "",
"name": "test",
"project_name": "",
"project_version": "",
"suggested_area": "",
"uses_password": False,
"voice_assistant_version": 0,
"webserver_port": 0,
},
"services": [],
},
}