Bump zwave_js lib to 0.43.0 and fix multi-file firmware updates (#79342)
This commit is contained in:
parent
2b27cfdabb
commit
27413cee19
7 changed files with 111 additions and 232 deletions
|
@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue