tests: Add test cases for Bluetooth device classes

This commit is contained in:
Marijn Suijten 2021-01-22 22:52:47 +01:00
parent 15329e840c
commit 8e5b1d6b46

View file

@ -88,7 +88,20 @@ BATTERY_IFACE = 'org.bluez.Battery1'
UP_DEVICE_KIND_COMPUTER,
UP_DEVICE_KIND_GAMING_INPUT,
UP_DEVICE_KIND_PEN,
UP_DEVICE_KIND_TOUCHPAD) = range(15)
UP_DEVICE_KIND_TOUCHPAD,
UP_DEVICE_KIND_MODEM,
UP_DEVICE_KIND_NETWORK,
UP_DEVICE_KIND_HEADSET,
UP_DEVICE_KIND_SPEAKERS,
UP_DEVICE_KIND_HEADPHONES,
UP_DEVICE_KIND_VIDEO,
UP_DEVICE_KIND_OTHER_AUDIO,
UP_DEVICE_KIND_REMOTE_CONTROL,
UP_DEVICE_KIND_PRINTER,
UP_DEVICE_KIND_SCANNER,
UP_DEVICE_KIND_CAMERA,
UP_DEVICE_KIND_WEARABLE,
UP_DEVICE_KIND_TOY) = range(28)
class Tests(dbusmock.DBusTestCase):
@classmethod
@ -1675,6 +1688,101 @@ class Tests(dbusmock.DBusTestCase):
self.assertEqual(self.get_dbus_dev_property(mouse_bat0_up, 'Type'), UP_DEVICE_KIND_UNKNOWN)
self.stop_daemon()
def test_bluetooth_headphones(self):
'''Bluetooth Headphones'''
alias = 'WH-1000XM3'
battery_level = 99
device_properties = {
'Class': dbus.UInt32(0x240404, variant_level=1)
}
devs = self._add_bluez_battery_device(alias, device_properties, battery_level)
self.assertEqual(len(devs), 1)
bat0_up = devs[0]
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_HEADSET)
self.stop_daemon()
def test_bluetooth_wireless_earbuds(self):
'''Bluetooth Wireless Earbuds'''
alias = 'QCY-qs2_R'
battery_level = 99
device_properties = {
'Class': dbus.UInt32(0x240418, variant_level=1)
}
devs = self._add_bluez_battery_device(alias, device_properties, battery_level)
self.assertEqual(len(devs), 1)
bat0_up = devs[0]
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_HEADPHONES)
self.stop_daemon()
def test_bluetooth_phone(self):
'''Bluetooth Phone'''
alias = 'Phone'
battery_level = 99
device_properties = {
'Class': dbus.UInt32(0x5a020c, variant_level=1)
}
devs = self._add_bluez_battery_device(alias, device_properties, battery_level)
self.assertEqual(len(devs), 1)
bat0_up = devs[0]
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_PHONE)
self.stop_daemon()
def test_bluetooth_computer(self):
'''Bluetooth Computer'''
alias = 'Computer'
battery_level = 99
device_properties = {
'Class': dbus.UInt32(0x6c010c, variant_level=1)
}
devs = self._add_bluez_battery_device(alias, device_properties, battery_level)
self.assertEqual(len(devs), 1)
bat0_up = devs[0]
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_COMPUTER)
self.stop_daemon()
def test_bluetooth_heart_rate_monitor(self):
'''Bluetooth Heart Rate Monitor'''
alias = 'Polar H7'
battery_level = 99
device_properties = {
'Appearance': dbus.UInt16(0x0341, variant_level=1)
}
devs = self._add_bluez_battery_device(alias, device_properties, battery_level)
self.assertEqual(len(devs), 1)
bat0_up = devs[0]
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Model'), alias)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Percentage'), battery_level)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'PowerSupply'), False)
self.assertEqual(self.get_dbus_dev_property(bat0_up, 'Type'), UP_DEVICE_KIND_UNKNOWN)
self.stop_daemon()
#
# libupower-glib tests (through introspection)
#