diff options
author | Martin Pitt <martinpitt@gnome.org> | 2013-08-23 08:31:20 +0200 |
---|---|---|
committer | Martin Pitt <martinpitt@gnome.org> | 2013-08-23 08:31:20 +0200 |
commit | 07b95b8e27e7c488828c46a28df96f1c83b185c8 (patch) | |
tree | 5d13f6ea0db79403512f8f7af0aeac23290dbe59 /src/linux/integration-test | |
parent | aa1656f6edf52ff678ecdfc42de4a67e1d036b03 (diff) | |
download | upower-07b95b8e27e7c488828c46a28df96f1c83b185c8.tar.gz |
linux: Fix batteries which report capacity, but not energy/charge
Many Android devices only export charge_full and capacity, but not charge_now
or energy_now. In that case, directly read the percentage (from the capacity
attribute) and calculate current energy from that.
Thanks to Seth Forshee for the original patch!
https://bugs.freedesktop.org/show_bug.cgi?id=68337
Diffstat (limited to 'src/linux/integration-test')
-rwxr-xr-x | src/linux/integration-test | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/linux/integration-test b/src/linux/integration-test index b80dd70..645cf92 100755 --- a/src/linux/integration-test +++ b/src/linux/integration-test @@ -408,6 +408,36 @@ class Tests(unittest.TestCase): self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), 40.0) self.stop_daemon() + def test_battery_capacity_and_charge(self): + '''battery which reports capacity and charge_full''' + + bat0 = self.testbed.add_device('power_supply', 'BAT0', None, + ['type', 'Battery', + 'present', '1', + 'status', 'Discharging', + 'charge_full', '10500000', + 'charge_full_design', '11000000', + 'capacity', '40', + 'voltage_now', '12000000'], []) + + self.start_daemon() + devs = self.proxy.EnumerateDevices() + self.assertEqual(len(devs), 1) + bat0_up = devs[0] + + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), 40.0) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'IsPresent'), True) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'State'), UP_DEVICE_STATE_DISCHARGING) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Energy'), 50.4) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'EnergyFull'), 126.0) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'EnergyFullDesign'), 132.0) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Voltage'), 12.0) + self.assertEqual(self.get_dbus_dev_property(bat0_up, 'NativePath'), bat0) + + self.assertEqual(self.get_dbus_property('OnBattery'), True) + #self.assertEqual(self.get_dbus_property('OnLowBattery'), False) + self.stop_daemon() + def test_ups_ac(self): '''UPS properties with and without AC''' |