summaryrefslogtreecommitdiff
path: root/src/linux/integration-test
diff options
context:
space:
mode:
authorMartin Pitt <martinpitt@gnome.org>2013-08-23 08:31:20 +0200
committerMartin Pitt <martinpitt@gnome.org>2013-08-23 08:31:20 +0200
commit07b95b8e27e7c488828c46a28df96f1c83b185c8 (patch)
tree5d13f6ea0db79403512f8f7af0aeac23290dbe59 /src/linux/integration-test
parentaa1656f6edf52ff678ecdfc42de4a67e1d036b03 (diff)
downloadupower-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-xsrc/linux/integration-test30
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'''