mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 17:27:52 +00:00
Display current version in common format in AVM Fritz!Tools (#96424)
This commit is contained in:
parent
7814ce06f4
commit
facd6ef765
@ -6,6 +6,7 @@ from dataclasses import dataclass, field
|
||||
from datetime import datetime, timedelta
|
||||
from functools import partial
|
||||
import logging
|
||||
import re
|
||||
from types import MappingProxyType
|
||||
from typing import Any, TypedDict, cast
|
||||
|
||||
@ -259,7 +260,12 @@ class FritzBoxTools(
|
||||
self._unique_id = info.serial_number
|
||||
|
||||
self._model = info.model_name
|
||||
self._current_firmware = info.software_version
|
||||
if (
|
||||
version_normalized := re.search(r"^\d+\.[0]?(.*)", info.software_version)
|
||||
) is not None:
|
||||
self._current_firmware = version_normalized.group(1)
|
||||
else:
|
||||
self._current_firmware = info.software_version
|
||||
|
||||
(
|
||||
self._update_available,
|
||||
|
@ -29,7 +29,7 @@ MOCK_HOST = "fake_host"
|
||||
MOCK_IPS = {"fritz.box": "192.168.178.1", "printer": "192.168.178.2"}
|
||||
MOCK_MODELNAME = "FRITZ!Box 7530 AX"
|
||||
MOCK_FIRMWARE = "256.07.29"
|
||||
MOCK_FIRMWARE_AVAILABLE = "256.07.50"
|
||||
MOCK_FIRMWARE_AVAILABLE = "7.50"
|
||||
MOCK_FIRMWARE_RELEASE_URL = (
|
||||
"http://download.avm.de/fritzbox/fritzbox-7530-ax/deutschland/fritz.os/info_de.txt"
|
||||
)
|
||||
|
@ -50,7 +50,7 @@ async def test_entry_diagnostics(
|
||||
for _, device in avm_wrapper.devices.items()
|
||||
],
|
||||
"connection_type": "WANPPPConnection",
|
||||
"current_firmware": "256.07.29",
|
||||
"current_firmware": "7.29",
|
||||
"discovered_services": [
|
||||
"DeviceInfo1",
|
||||
"Hosts1",
|
||||
|
@ -9,7 +9,6 @@ from homeassistant.core import HomeAssistant
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
from .const import (
|
||||
MOCK_FIRMWARE,
|
||||
MOCK_FIRMWARE_AVAILABLE,
|
||||
MOCK_FIRMWARE_RELEASE_URL,
|
||||
MOCK_USER_DATA,
|
||||
@ -60,7 +59,7 @@ async def test_update_available(
|
||||
update = hass.states.get("update.mock_title_fritz_os")
|
||||
assert update is not None
|
||||
assert update.state == "on"
|
||||
assert update.attributes.get("installed_version") == MOCK_FIRMWARE
|
||||
assert update.attributes.get("installed_version") == "7.29"
|
||||
assert update.attributes.get("latest_version") == MOCK_FIRMWARE_AVAILABLE
|
||||
assert update.attributes.get("release_url") == MOCK_FIRMWARE_RELEASE_URL
|
||||
|
||||
@ -83,8 +82,8 @@ async def test_no_update_available(
|
||||
update = hass.states.get("update.mock_title_fritz_os")
|
||||
assert update is not None
|
||||
assert update.state == "off"
|
||||
assert update.attributes.get("installed_version") == MOCK_FIRMWARE
|
||||
assert update.attributes.get("latest_version") == MOCK_FIRMWARE
|
||||
assert update.attributes.get("installed_version") == "7.29"
|
||||
assert update.attributes.get("latest_version") == "7.29"
|
||||
|
||||
|
||||
async def test_available_update_can_be_installed(
|
||||
|
Loading…
x
Reference in New Issue
Block a user