8000 Add factory-reset command to cli (#1108) · msz-coder/python-kasa@b7fa0d2 · GitHub
[go: up one dir, main page]

Skip to content

Commit b7fa0d2

Browse files
authored
Add factory-reset command to cli (python-kasa#1108)
Allow reseting devices to factory settings using the cli: `kasa device factory-reset`.
1 parent f07341a commit b7fa0d2

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

kasa/cli/device.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,17 @@ async def reboot(plug, delay):
166166
return await plug.reboot(delay)
167167

168168

169+
@device.command()
170+
@pass_dev
171+
async def factory_reset(plug):
172+
"""Reset device to factory settings."""
173+
click.confirm(
174+
"Do you really want to reset the device to factory settings?", abort=True
175+
)
176+
177+
return await plug.factory_reset()
178+
179+
169180
@device.command()
170181
@pass_dev
171182
@click.option(

kasa/tests/test_cli.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
)
2020
from kasa.cli.device import (
2121
alias,
22+
factory_reset,
2223
led,
2324
reboot,
2425
state,
@@ -215,6 +216,21 @@ async def test_reboot(dev, mocker, runner):
215216
assert res.exit_code == 0
216217

217218

219+
@device_smart
220+
async def test_factory_reset(dev, mocker, runner):
221+
"""Test that factory reset works on SMART devices."""
222+
query_mock = mocker.patch.object(dev.protocol, "query")
223+
224+
res = await runner.invoke(
225+
factory_reset,
226+
obj=dev,
227+
input="y\n",
228+
)
229+
230+
query_mock.assert_called()
231+
assert res.exit_code == 0
232+
233+
218234
@device_smart
219235
async def test_wifi_scan(dev, runner):
220236
res = await runner.invoke(wifi, ["scan"], obj=dev)

0 commit comments

Comments
 (0)
0