Migrate smart firmware module to mashumaro (#1276)

This commit is contained in:
Steven B.
2024-11-20 11:54:13 +00:00
committed by GitHub
parent 03c073c293
commit 999e84d2de
2 changed files with 43 additions and 26 deletions

View File

@@ -3,6 +3,7 @@ from __future__ import annotations
import asyncio
import logging
from contextlib import nullcontext
from datetime import date
from typing import TypedDict
import pytest
@@ -52,6 +53,20 @@ async def test_firmware_features(
assert isinstance(feat.value, type)
@firmware
async def test_firmware_update_info(dev: SmartDevice):
"""Test that the firmware UpdateInfo object deserializes correctly."""
fw = dev.modules.get(Module.Firmware)
assert fw
if not dev.is_cloud_connected:
pytest.skip("Device is not cloud connected, skipping test")
assert fw.firmware_update_info is None
await fw.check_latest_firmware()
assert fw.firmware_update_info is not None
assert isinstance(fw.firmware_update_info.release_date, date | None)
@firmware
async def test_update_available_without_cloud(dev: SmartDevice):
"""Test that update_available returns None when disconnected."""
@@ -105,15 +120,15 @@ async def test_firmware_update(
}
update_states = [
# Unknown 1
DownloadState(status=1, download_progress=0, **extras),
DownloadState(status=1, progress=0, **extras),
# Downloading
DownloadState(status=2, download_progress=10, **extras),
DownloadState(status=2, download_progress=100, **extras),
DownloadState(status=2, progress=10, **extras),
DownloadState(status=2, progress=100, **extras),
# Flashing
DownloadState(status=3, download_progress=100, **extras),
DownloadState(status=3, download_progress=100, **extras),
DownloadState(status=3, progress=100, **extras),
DownloadState(status=3, progress=100, **extras),
# Done
DownloadState(status=0, download_progress=100, **extras),
DownloadState(status=0, progress=100, **extras),
]
asyncio_sleep = asyncio.sleep