1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
7 from telemetry
.internal
.platform
.power_monitor
import (
8 android_fuelgauge_power_monitor
)
9 from telemetry
.internal
.platform
.power_monitor
import pm_mock
12 class FuelGaugePowerMonitorMonitorTest(unittest
.TestCase
):
14 def testEnergyConsumption(self
):
15 fuel_gauge_delta
= 100
17 android_fuelgauge_power_monitor
.FuelGaugePowerMonitor
.ProcessPowerData(
18 4.0, fuel_gauge_delta
))
19 self
.assertEqual(results
['identifier'], 'fuel_gauge')
21 results
.get('fuel_gauge_energy_consumption_mwh'), 400)
23 def testMonitorCycle(self
):
24 battery
= pm_mock
.MockBattery(None, voltage
=5.0, fuelgauge
=[5.e6
, 3.e6
])
25 pm
= android_fuelgauge_power_monitor
.FuelGaugePowerMonitor(battery
)
26 pm
.StartMonitoringPower(None)
27 results
= pm
.StopMonitoringPower()
28 self
.assertEqual(results
['identifier'], 'fuel_gauge')
29 self
.assertAlmostEqual(results
['fuel_gauge_energy_consumption_mwh'], 10)
31 def testDoubleStop(self
):
32 battery
= pm_mock
.MockBattery(None, voltage
=5.0, fuelgauge
=[5.e6
, 3.e6
])
33 pm
= android_fuelgauge_power_monitor
.FuelGaugePowerMonitor(battery
)
34 pm
.StartMonitoringPower(None)
35 pm
.StopMonitoringPower()
36 with self
.assertRaises(AssertionError):
37 pm
.StopMonitoringPower()
39 def testDoubleStart(self
):
40 battery
= pm_mock
.MockBattery(None, voltage
=5.0, fuelgauge
=[5.e6
, 3.e6
])
41 pm
= android_fuelgauge_power_monitor
.FuelGaugePowerMonitor(battery
)
42 pm
.StartMonitoringPower(None)
43 with self
.assertRaises(AssertionError):
44 pm
.StartMonitoringPower(None)
47 if __name__
== '__main__':