Add time sync command (#951)

Allows setting the device time (on SMART devices) to the current time.
Fixes also setting the time which was previously broken.
This commit is contained in:
Teemu R
2024-06-17 10:37:08 +02:00
committed by GitHub
parent 6cdbbefb90
commit 867b7b8830
4 changed files with 75 additions and 3 deletions

View File

@@ -31,6 +31,7 @@ from kasa.cli import (
state,
sysinfo,
temperature,
time,
toggle,
update_credentials,
wifi,
@@ -260,6 +261,37 @@ async def test_update_credentials(dev, runner):
)
async def test_time_get(dev, runner):
"""Test time get command."""
res = await runner.invoke(
time,
obj=dev,
)
assert res.exit_code == 0
assert "Current time: " in res.output
@device_smart
async def test_time_sync(dev, mocker, runner):
"""Test time sync command.
Currently implemented only for SMART.
"""
update = mocker.patch.object(dev, "update")
set_time_mock = mocker.spy(dev.modules[Module.Time], "set_time")
res = await runner.invoke(
time,
["sync"],
obj=dev,
)
set_time_mock.assert_called()
update.assert_called()
assert res.exit_code == 0
assert "Old time: " in res.output
assert "New time: " in res.output
async def test_emeter(dev: Device, mocker, runner):
res = await runner.invoke(emeter, obj=dev)
if not dev.has_emeter: