bluez/test/monitor-bluetooth
Steve Langasek ee56337e41 Update tests to be compatible with gi and python3
This patch makes the python tests source-compatible with python 3, while
leaving the interpreter at python 2 for now.

The tradeoff is that this source is no longer compatible with python
versions < 2.6, and requires gobject-introspection for the glib-based
tests.
2012-06-15 12:32:50 +03:00

59 lines
1.8 KiB
Python
Executable File

#!/usr/bin/python
from __future__ import absolute_import, print_function, unicode_literals
import gobject
import dbus
import dbus.mainloop.glib
def property_changed(name, value, path, interface):
iface = interface[interface.rfind(".") + 1:]
val = str(value)
print("{%s.PropertyChanged} [%s] %s = %s" % (iface, path, name, val))
def object_signal(value, path, interface, member):
iface = interface[interface.rfind(".") + 1:]
val = str(value)
print("{%s.%s} [%s] Path = %s" % (iface, member, path, val))
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
bus.add_signal_receiver(property_changed, bus_name="org.bluez",
signal_name = "PropertyChanged",
path_keyword="path",
interface_keyword="interface")
bus.add_signal_receiver(object_signal, bus_name="org.bluez",
signal_name = "AdapterAdded",
path_keyword="path",
member_keyword="member",
interface_keyword="interface")
bus.add_signal_receiver(object_signal, bus_name="org.bluez",
signal_name = "AdapterRemoved",
path_keyword="path",
member_keyword="member",
interface_keyword="interface")
bus.add_signal_receiver(object_signal, bus_name="org.bluez",
signal_name = "DefaultAdapterChanged",
path_keyword="path",
member_keyword="member",
interface_keyword="interface")
bus.add_signal_receiver(object_signal, bus_name="org.bluez",
signal_name = "DeviceCreated",
path_keyword="path",
member_keyword="member",
interface_keyword="interface")
bus.add_signal_receiver(object_signal, bus_name="org.bluez",
signal_name = "DeviceRemoved",
path_keyword="path",
member_keyword="member",
interface_keyword="interface")
mainloop = gobject.MainLoop()
mainloop.run()