15
15
Credentials ,
16
16
Device ,
17
17
DeviceError ,
18
+ DeviceType ,
18
19
EmeterStatus ,
19
20
KasaException ,
20
21
Module ,
@@ -424,20 +425,22 @@ async def test_time_set(dev: Device, mocker, runner):
424
425
425
426
async def test_emeter (dev : Device , mocker , runner ):
426
427
res = await runner .invoke (emeter , obj = dev )
427
- if not dev .has_emeter :
428
- assert "Device has no emeter " in res .output
428
+ if not ( energy := dev .modules . get ( Module . Energy )) :
429
+ assert "Device has no energy module. " in res .output
429
430
return
430
431
431
432
assert "== Emeter ==" in res .output
432
433
433
- if not dev . is_strip :
434
+ if dev . device_type is not DeviceType . Strip :
434
435
res = await runner .invoke (emeter , ["--index" , "0" ], obj = dev )
435
436
assert f"Device: { dev .host } does not have children" in res .output
436
437
res = await runner .invoke (emeter , ["--name" , "mock" ], obj = dev )
437
438
assert f"Device: { dev .host } does not have children" in res .output
438
439
439
- if dev .is_strip and len (dev .children ) > 0 :
440
- realtime_emeter = mocker .patch .object (dev .children [0 ], "get_emeter_realtime" )
440
+ if dev .device_type is DeviceType .Strip and len (dev .children ) > 0 :
441
+ child_energy = dev .children [0 ].modules .get (Module .Energy )
442
+ assert child_energy
443
+ realtime_emeter = mocker .patch .object (child_energy , "get_status" )
441
444
realtime_emeter .return_value = EmeterStatus ({"voltage_mv" : 122066 })
442
445
443
446
res = await runner .invoke (emeter , ["--index" , "0" ], obj = dev )
@@ -450,18 +453,18 @@ async def test_emeter(dev: Device, mocker, runner):
450
453
assert realtime_emeter .call_count == 2
451
454
452
455
if isinstance (dev , IotDevice ):
453
- monthly = mocker .patch .object (dev , "get_emeter_monthly " )
456
+ monthly = mocker .patch .object (energy , "get_monthly_stats " )
454
457
monthly .return_value = {1 : 1234 }
455
458
res = await runner .invoke (emeter , ["--year" , "1900" ], obj = dev )
456
459
if not isinstance (dev , IotDevice ):
457
- assert "Device has no historical statistics" in res .output
460
+ assert "Device does not support historical statistics" in res .output
458
461
return
459
462
assert "For year" in res .output
460
463
assert "1, 1234" in res .output
461
464
monthly .assert_called_with (year = 1900 )
462
465
463
466
if isinstance (dev , IotDevice ):
464
- daily = mocker .patch .object (dev , "get_emeter_daily " )
467
+ daily = mocker .patch .object (energy , "get_daily_stats " )
465
468
daily .return_value = {1 : 1234 }
466
469
res = await runner .invoke (emeter , ["--month" , "1900-12" ], obj = dev )
467
470
if not isinstance (dev , IotDevice ):
0 commit comments