Bump zwave_js lib to 0.43.0 and fix multi-file firmware updates (#79342)

This commit is contained in:
Raman Gupta 2022-10-04 10:40:49 -04:00 committed by GitHub
parent 2b27cfdabb
commit 27413cee19
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 111 additions and 232 deletions

View file

@ -28,6 +28,7 @@ from zwave_js_server.model.controller import (
ProvisioningEntry,
QRProvisioningInformation,
)
from zwave_js_server.model.firmware import FirmwareUpdateData
from zwave_js_server.model.node import Node
from homeassistant.components.websocket_api import ERR_INVALID_FORMAT, ERR_NOT_FOUND
@ -2815,18 +2816,20 @@ async def test_firmware_upload_view(
client = await hass_client()
device = get_device(hass, multisensor_6)
with patch(
"homeassistant.components.zwave_js.api.begin_firmware_update",
"homeassistant.components.zwave_js.api.update_firmware",
) as mock_cmd, patch.dict(
"homeassistant.components.zwave_js.api.USER_AGENT",
{"HomeAssistant": "0.0.0"},
):
resp = await client.post(
f"/api/zwave_js/firmware/upload/{device.id}",
data={"file": firmware_file, "target": "15"},
data={"file": firmware_file},
)
assert mock_cmd.call_args[0][1:3] == (
multisensor_6,
[FirmwareUpdateData("file", bytes(10))],
)
assert mock_cmd.call_args[0][1:4] == (multisensor_6, "file", bytes(10))
assert mock_cmd.call_args[1] == {
"target": 15,
"additional_user_agent_components": {"HomeAssistant": "0.0.0"},
}
assert json.loads(await resp.text()) is None
@ -2839,7 +2842,7 @@ async def test_firmware_upload_view_failed_command(
client = await hass_client()
device = get_device(hass, multisensor_6)
with patch(
"homeassistant.components.zwave_js.api.begin_firmware_update",
"homeassistant.components.zwave_js.api.update_firmware",
side_effect=FailedCommand("test", "test"),
):
resp = await client.post(
@ -3502,8 +3505,13 @@ async def test_subscribe_firmware_update_status(
"source": "node",
"event": "firmware update progress",
"nodeId": multisensor_6.node_id,
"sentFragments": 1,
"totalFragments": 10,
"progress": {
"currentFile": 1,
"totalFiles": 1,
"sentFragments": 1,
"totalFragments": 10,
"progress": 10.0,
},
},
)
multisensor_6.receive_event(event)
@ -3511,8 +3519,11 @@ async def test_subscribe_firmware_update_status(
msg = await ws_client.receive_json()
assert msg["event"] == {
"event": "firmware update progress",
"current_file": 1,
"total_files": 1,
"sent_fragments": 1,
"total_fragments": 10,
"progress": 10.0,
}
event = Event(
@ -3521,8 +3532,12 @@ async def test_subscribe_firmware_update_status(
"source": "node",
"event": "firmware update finished",
"nodeId": multisensor_6.node_id,
"status": 255,
"waitTime": 10,
"result": {
"status": 255,
"success": True,
"waitTime": 10,
"reInterview": False,
},
},
)
multisensor_6.receive_event(event)
@ -3531,7 +3546,9 @@ async def test_subscribe_firmware_update_status(
assert msg["event"] == {
"event": "firmware update finished",
"status": 255,
"success": True,
"wait_time": 10,
"reinterview": False,
}
@ -3551,8 +3568,13 @@ async def test_subscribe_firmware_update_status_initial_value(
"source": "node",
"event": "firmware update progress",
"nodeId": multisensor_6.node_id,
"sentFragments": 1,
"totalFragments": 10,
"progress": {
"currentFile": 1,
"totalFiles": 1,
"sentFragments": 1,
"totalFragments": 10,
"progress": 10.0,
},
},
)
multisensor_6.receive_event(event)
@ -3574,8 +3596,11 @@ async def test_subscribe_firmware_update_status_initial_value(
msg = await ws_client.receive_json()
assert msg["event"] == {
"event": "firmware update progress",
"current_file": 1,
"total_files": 1,
"sent_fragments": 1,
"total_fragments": 10,
"progress": 10.0,
}