summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2022-01-25 10:56:37 +0100
committerBastien Nocera <hadess@hadess.net>2022-02-07 10:21:36 +0100
commitb041851741e3e529eeeae7d2783bc65ad569d10d (patch)
tree16ce9fdeebec769e1dcdfa16c40786e46959c92a /tests
parent983838f126131a8b017e14f1d493e04767f5f654 (diff)
downloadgnome-bluetooth-b041851741e3e529eeeae7d2783bc65ad569d10d.tar.gz
tests: Add battery test
Diffstat (limited to 'tests')
-rwxr-xr-xtests/integration-test.py75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/integration-test.py b/tests/integration-test.py
index 885c9ef3..c1cbf903 100755
--- a/tests/integration-test.py
+++ b/tests/integration-test.py
@@ -436,6 +436,23 @@ class OopTests(dbusmock.DBusTestCase):
self.assertEqual(device.props.alias, 'My other device')
self.assertEqual(device.props.connectable, False)
+ def test_battery(self):
+ # Make a new client that tries to connect to UPower
+ client = GnomeBluetoothPriv.Client.new()
+
+ self.wait_for_mainloop()
+ list_store = client.get_devices()
+ self.assertEqual(list_store.get_n_items(), 2)
+
+ device = list_store.get_item(0)
+ self.assertEqual(int(device.props.battery_type), int(GnomeBluetoothPriv.BatteryType.PERCENTAGE))
+ self.assertEqual(device.props.battery_percentage, 66)
+
+ device = list_store.get_item(1)
+ self.assertEqual(int(device.props.battery_type), int(GnomeBluetoothPriv.BatteryType.COARSE))
+ self.assertEqual(device.props.battery_percentage, 55)
+ self.assertEqual(device.props.battery_level, 6)
+
class Tests(dbusmock.DBusTestCase):
@classmethod
@@ -550,5 +567,63 @@ class Tests(dbusmock.DBusTestCase):
self.run_test_process()
+ def test_battery(self):
+ (p_mock, obj_upower) = self.spawn_server_template(
+ 'upower', {})
+ mock = dbus.Interface(obj_upower, dbusmock.MOCK_IFACE)
+
+ self.dbusmock_bluez.AddAdapter('hci0', 'my-computer')
+
+ # Bluetooth LE device, with Battery info from bluez
+ device = self.dbusmock_bluez.AddDevice('hci0', '11:22:33:44:55:66', 'LE Mouse')
+ device_obj = self.dbus_con.get_object('org.bluez', device)
+ device_obj.AddProperties('org.bluez.Battery1', {
+ 'Percentage': dbus.Byte(56, variant_level=1),
+ })
+ device_obj.UpdateProperties('org.bluez.Device1', {
+ 'Connected': True,
+ })
+ mock.AddObject('/org/freedesktop/UPower/devices/mouse_dev_11_22_33_44_55_66',
+ 'org.freedesktop.UPower.Device',
+ {
+ 'NativePath': dbus.String('/org/bluez/hci0/dev_11_22_33_44_55_66'),
+ 'Type': dbus.UInt32(5, variant_level=1),
+ 'State': dbus.UInt32(2, variant_level=1),
+ 'Percentage': dbus.Double(66, variant_level=1),
+ 'BatteryLevel': dbus.UInt32(1, variant_level=1),
+ 'IsPresent': dbus.Boolean(True, variant_level=1),
+ 'IconName': dbus.String('', variant_level=1),
+ # LEVEL_NONE
+ 'WarningLevel': dbus.UInt32(1, variant_level=1),
+ },
+ [])
+
+
+ # Bluetooth Classic device, with coarse kernel battery reporting
+ device = self.dbusmock_bluez.AddDevice('hci0', '11:22:33:44:55:67', 'Classic Mouse')
+ device_obj = self.dbus_con.get_object('org.bluez', device)
+ device_obj.UpdateProperties('org.bluez.Device1', {
+ 'Connected': True,
+ })
+ mock.AddObject('/org/freedesktop/UPower/devices/mouse_dev_11_22_33_44_55_67',
+ 'org.freedesktop.UPower.Device',
+ {
+ 'NativePath': dbus.String('/org/bluez/hci0/dev_11_22_33_44_55_67'),
+ 'Type': dbus.UInt32(5, variant_level=1),
+ 'State': dbus.UInt32(2, variant_level=1),
+ 'Percentage': dbus.Double(55, variant_level=1),
+ 'BatteryLevel': dbus.UInt32(6, variant_level=1),
+ 'IsPresent': dbus.Boolean(True, variant_level=1),
+ 'IconName': dbus.String('', variant_level=1),
+ # LEVEL_NONE
+ 'WarningLevel': dbus.UInt32(1, variant_level=1),
+ },
+ [])
+
+ self.run_test_process()
+
+ p_mock.terminate()
+ p_mock.wait()
+
if __name__ == '__main__':
unittest.main()