From 440c837eb6548b30ee94a9584a394fbd3b9c8f13 Mon Sep 17 00:00:00 2001 From: Alexei Chetroi Date: Wed, 11 Mar 2020 12:31:02 -0400 Subject: [PATCH] Allow sw_version update of a device registry entry. (#32630) --- homeassistant/helpers/device_registry.py | 2 ++ tests/helpers/test_device_registry.py | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/homeassistant/helpers/device_registry.py b/homeassistant/helpers/device_registry.py index 0821b909dc7..6d9574c3bbd 100644 --- a/homeassistant/helpers/device_registry.py +++ b/homeassistant/helpers/device_registry.py @@ -155,6 +155,7 @@ class DeviceRegistry: name=_UNDEF, name_by_user=_UNDEF, new_identifiers=_UNDEF, + sw_version=_UNDEF, via_device_id=_UNDEF, remove_config_entry_id=_UNDEF, ): @@ -165,6 +166,7 @@ class DeviceRegistry: name=name, name_by_user=name_by_user, new_identifiers=new_identifiers, + sw_version=sw_version, via_device_id=via_device_id, remove_config_entry_id=remove_config_entry_id, ) diff --git a/tests/helpers/test_device_registry.py b/tests/helpers/test_device_registry.py index 7f31c32cde3..13bb61253bc 100644 --- a/tests/helpers/test_device_registry.py +++ b/tests/helpers/test_device_registry.py @@ -480,3 +480,21 @@ async def test_loading_race_condition(hass): mock_load.assert_called_once_with() assert results[0] == results[1] + + +async def test_update_sw_version(registry): + """Verify that we can update software version of a device.""" + entry = registry.async_get_or_create( + config_entry_id="1234", + connections={(device_registry.CONNECTION_NETWORK_MAC, "12:34:56:AB:CD:EF")}, + identifiers={("bla", "123")}, + ) + assert not entry.sw_version + sw_version = "0x20020263" + + with patch.object(registry, "async_schedule_save") as mock_save: + updated_entry = registry.async_update_device(entry.id, sw_version=sw_version) + + assert mock_save.call_count == 1 + assert updated_entry != entry + assert updated_entry.sw_version == sw_version