mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 22:57:17 +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 {}
|
self.config = config or {}
|
||||||
domain = split_entity_id(entity_id)[0].replace("_", " ")
|
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]
|
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()
|
manufacturer = self.config[ATTR_INTEGRATION].replace("_", " ").title()
|
||||||
else:
|
else:
|
||||||
manufacturer = f"{MANUFACTURER} {domain}".title()
|
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]
|
model = self.config[ATTR_MODEL]
|
||||||
else:
|
else:
|
||||||
model = domain.title()
|
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])
|
sw_version = format_sw_version(self.config[ATTR_SW_VERSION])
|
||||||
else:
|
else:
|
||||||
sw_version = __version__
|
sw_version = __version__
|
||||||
|
@ -41,6 +41,7 @@ from homeassistant.const import (
|
|||||||
STATE_ON,
|
STATE_ON,
|
||||||
STATE_UNAVAILABLE,
|
STATE_UNAVAILABLE,
|
||||||
__version__,
|
__version__,
|
||||||
|
__version__ as hass_version,
|
||||||
)
|
)
|
||||||
from homeassistant.helpers.event import TRACK_STATE_CHANGE_CALLBACKS
|
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
|
serv.get_characteristic(CHAR_SERIAL_NUMBER).value
|
||||||
== "light.accessory_that_exceeds_the_maximum_maximum_maximum_maximum"
|
== "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")
|
hass.states.async_set(entity_id, "on")
|
||||||
await hass.async_block_till_done()
|
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"
|
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):
|
async def test_battery_service(hass, hk_driver, caplog):
|
||||||
"""Test battery service."""
|
"""Test battery service."""
|
||||||
entity_id = "homekit.accessory"
|
entity_id = "homekit.accessory"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user