mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Handle empty software version when setting up HomeKit (#54068)
Fixes #54059 Fixes #54024
This commit is contained in:
parent
5dc87d959c
commit
26cb588ee2
@ -228,17 +228,17 @@ class HomeAccessory(Accessory):
|
||||
self.config = config or {}
|
||||
domain = split_entity_id(entity_id)[0].replace("_", " ")
|
||||
|
||||
if ATTR_MANUFACTURER in self.config:
|
||||
if self.config.get(ATTR_MANUFACTURER) is not None:
|
||||
manufacturer = self.config[ATTR_MANUFACTURER]
|
||||
elif ATTR_INTEGRATION in self.config:
|
||||
elif self.config.get(ATTR_INTEGRATION) is not None:
|
||||
manufacturer = self.config[ATTR_INTEGRATION].replace("_", " ").title()
|
||||
else:
|
||||
manufacturer = f"{MANUFACTURER} {domain}".title()
|
||||
if ATTR_MODEL in self.config:
|
||||
if self.config.get(ATTR_MODEL) is not None:
|
||||
model = self.config[ATTR_MODEL]
|
||||
else:
|
||||
model = domain.title()
|
||||
if ATTR_SW_VERSION in self.config:
|
||||
if self.config.get(ATTR_SW_VERSION) is not None:
|
||||
sw_version = format_sw_version(self.config[ATTR_SW_VERSION])
|
||||
else:
|
||||
sw_version = __version__
|
||||
|
@ -41,6 +41,7 @@ from homeassistant.const import (
|
||||
STATE_ON,
|
||||
STATE_UNAVAILABLE,
|
||||
__version__,
|
||||
__version__ as hass_version,
|
||||
)
|
||||
from homeassistant.helpers.event import TRACK_STATE_CHANGE_CALLBACKS
|
||||
|
||||
@ -130,6 +131,7 @@ async def test_home_accessory(hass, hk_driver):
|
||||
serv.get_characteristic(CHAR_SERIAL_NUMBER).value
|
||||
== "light.accessory_that_exceeds_the_maximum_maximum_maximum_maximum"
|
||||
)
|
||||
assert serv.get_characteristic(CHAR_FIRMWARE_REVISION).value == "0.4.3"
|
||||
|
||||
hass.states.async_set(entity_id, "on")
|
||||
await hass.async_block_till_done()
|
||||
@ -157,6 +159,31 @@ async def test_home_accessory(hass, hk_driver):
|
||||
assert serv.get_characteristic(CHAR_MODEL).value == "Test Model"
|
||||
|
||||
|
||||
async def test_accessory_with_missing_basic_service_info(hass, hk_driver):
|
||||
"""Test HomeAccessory class."""
|
||||
entity_id = "sensor.accessory"
|
||||
hass.states.async_set(entity_id, "on")
|
||||
acc = HomeAccessory(
|
||||
hass,
|
||||
hk_driver,
|
||||
"Home Accessory",
|
||||
entity_id,
|
||||
3,
|
||||
{
|
||||
ATTR_MODEL: None,
|
||||
ATTR_MANUFACTURER: None,
|
||||
ATTR_SW_VERSION: None,
|
||||
ATTR_INTEGRATION: None,
|
||||
},
|
||||
)
|
||||
serv = acc.get_service(SERV_ACCESSORY_INFO)
|
||||
assert serv.get_characteristic(CHAR_NAME).value == "Home Accessory"
|
||||
assert serv.get_characteristic(CHAR_MANUFACTURER).value == "Home Assistant Sensor"
|
||||
assert serv.get_characteristic(CHAR_MODEL).value == "Sensor"
|
||||
assert serv.get_characteristic(CHAR_SERIAL_NUMBER).value == entity_id
|
||||
assert serv.get_characteristic(CHAR_FIRMWARE_REVISION).value == hass_version
|
||||
|
||||
|
||||
async def test_battery_service(hass, hk_driver, caplog):
|
||||
"""Test battery service."""
|
||||
entity_id = "homekit.accessory"
|
||||
|
Loading…
x
Reference in New Issue
Block a user