mirror of
https://github.com/home-assistant/core.git
synced 2026-11-06 13:41:27 -04:00
Correct logic for picking bluetooth local name (#102823)
* Correct logic for picking bluetooth local name * make test more robust --------- Co-authored-by: J. Nick Koston <nick@koston.org>
This commit is contained in:
co-authored by
J. Nick Koston
parent
f2cef7245a
commit
767b7ba4d6
@@ -42,7 +42,10 @@ from . import (
|
||||
from tests.common import async_fire_time_changed, load_fixture
|
||||
|
||||
|
||||
async def test_remote_scanner(hass: HomeAssistant, enable_bluetooth: None) -> None:
|
||||
@pytest.mark.parametrize("name_2", [None, "w"])
|
||||
async def test_remote_scanner(
|
||||
hass: HomeAssistant, enable_bluetooth: None, name_2: str | None
|
||||
) -> None:
|
||||
"""Test the remote scanner base class merges advertisement_data."""
|
||||
manager = _get_manager()
|
||||
|
||||
@@ -61,12 +64,25 @@ async def test_remote_scanner(hass: HomeAssistant, enable_bluetooth: None) -> No
|
||||
)
|
||||
switchbot_device_2 = generate_ble_device(
|
||||
"44:44:33:11:23:45",
|
||||
"w",
|
||||
name_2,
|
||||
{},
|
||||
rssi=-100,
|
||||
)
|
||||
switchbot_device_adv_2 = generate_advertisement_data(
|
||||
local_name="wohand",
|
||||
local_name=name_2,
|
||||
service_uuids=["00000001-0000-1000-8000-00805f9b34fb"],
|
||||
service_data={"00000001-0000-1000-8000-00805f9b34fb": b"\n\xff"},
|
||||
manufacturer_data={1: b"\x01", 2: b"\x02"},
|
||||
rssi=-100,
|
||||
)
|
||||
switchbot_device_3 = generate_ble_device(
|
||||
"44:44:33:11:23:45",
|
||||
"wohandlonger",
|
||||
{},
|
||||
rssi=-100,
|
||||
)
|
||||
switchbot_device_adv_3 = generate_advertisement_data(
|
||||
local_name="wohandlonger",
|
||||
service_uuids=["00000001-0000-1000-8000-00805f9b34fb"],
|
||||
service_data={"00000001-0000-1000-8000-00805f9b34fb": b"\n\xff"},
|
||||
manufacturer_data={1: b"\x01", 2: b"\x02"},
|
||||
@@ -125,6 +141,15 @@ async def test_remote_scanner(hass: HomeAssistant, enable_bluetooth: None) -> No
|
||||
"00000001-0000-1000-8000-00805f9b34fb",
|
||||
}
|
||||
|
||||
# The longer name should be used
|
||||
scanner.inject_advertisement(switchbot_device_3, switchbot_device_adv_3)
|
||||
assert discovered_device.name == switchbot_device_3.name
|
||||
|
||||
# Inject the shorter name / None again to make
|
||||
# sure we always keep the longer name
|
||||
scanner.inject_advertisement(switchbot_device_2, switchbot_device_adv_2)
|
||||
assert discovered_device.name == switchbot_device_3.name
|
||||
|
||||
cancel()
|
||||
unsetup()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user