Skip to content

Commit cb00ed2

Browse files
authored
Add support for providing target for firmware (#453)
* Add support for target * black * use kwargs
1 parent d48dfb5 commit cb00ed2

File tree

2 files changed

+18
-5
lines changed

2 files changed

+18
-5
lines changed

test/test_firmware.py

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,14 @@ async def test_begin_firmware_update_guess_format(url, client_session, multisens
2525
"firmwareFilename": "test",
2626
"firmwareFile": "AAAAAAAAAAAAAA==",
2727
},
28-
require_schema=5,
28+
require_schema=18,
2929
)
3030
disconnect_mock.assert_called_once()
3131

3232

33-
async def test_begin_firmware_update_known_format(url, client_session, multisensor_6):
33+
async def test_begin_firmware_update_known_format_and_target(
34+
url, client_session, multisensor_6
35+
):
3436
"""Test begin_firmware_update with known format."""
3537
with patch("zwave_js_server.firmware.Client.connect") as connect_mock, patch(
3638
"zwave_js_server.firmware.Client.set_api_schema"
@@ -41,7 +43,13 @@ async def test_begin_firmware_update_known_format(url, client_session, multisens
4143
) as disconnect_mock:
4244
node = multisensor_6
4345
await begin_firmware_update(
44-
url, node, "test", bytes(10), client_session, "test"
46+
url=url,
47+
node=node,
48+
filename="test",
49+
file=bytes(10),
50+
session=client_session,
51+
file_format="test",
52+
target=0,
4553
)
4654

4755
connect_mock.assert_called_once()
@@ -53,7 +61,8 @@ async def test_begin_firmware_update_known_format(url, client_session, multisens
5361
"firmwareFilename": "test",
5462
"firmwareFile": "AAAAAAAAAAAAAA==",
5563
"firmwareFileFormat": "test",
64+
"target": 0,
5665
},
57-
require_schema=5,
66+
require_schema=18,
5867
)
5968
disconnect_mock.assert_called_once()

zwave_js_server/firmware.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ async def begin_firmware_update(
1616
file: bytes,
1717
session: aiohttp.ClientSession,
1818
file_format: Optional[str] = None,
19+
target: Optional[int] = None,
1920
) -> None:
2021
"""Send beginFirmwareUpdate command to Node."""
2122
client = Client(url, session)
@@ -33,7 +34,10 @@ async def begin_firmware_update(
3334
if file_format is not None:
3435
cmd["firmwareFileFormat"] = file_format
3536

36-
await client.async_send_command(cmd, require_schema=5)
37+
if target is not None:
38+
cmd["target"] = target
39+
40+
await client.async_send_command(cmd, require_schema=18)
3741
await client.disconnect()
3842
if not receive_task.done():
3943
receive_task.cancel()

0 commit comments

Comments
 (0)