1920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters#!/usr/bin/env python 2920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 3920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersimport os,sys 4920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 5920c3c0292b57b30718dde9f4900790a3b60db1fColin Walterstry: 6920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters import gobject 7920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters import dbus 8920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters import dbus.mainloop.glib 9920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersexcept: 10920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters print "Failed import, aborting test" 11920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters sys.exit(0) 12920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 13920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersdbus.mainloop.glib.DBusGMainLoop(set_as_default=True) 14920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersloop = gobject.MainLoop() 15920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 16920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersexitcode = 0 17920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 18920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersdef handle_noreceipt(): 19920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters print "Failed to get signal" 20920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters global exitcode 21920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters exitcode = 1 22920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters loop.quit() 23920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 24920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersgobject.timeout_add(7000, handle_noreceipt) 25920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 26920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersbus = dbus.SessionBus() 27920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 28920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersdef sighandler(*args, **kwargs): 29920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters print "got signal" 30920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters loop.quit() 31920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 32920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersbus.add_signal_receiver(sighandler, dbus_interface='org.freedesktop.TestSuite', signal_name='Foo') 33920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 34920c3c0292b57b30718dde9f4900790a3b60db1fColin Walterso = bus.get_object('org.freedesktop.DBus.TestSuiteEchoService', '/org/freedesktop/TestSuite') 35920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersi = dbus.Interface(o, 'org.freedesktop.TestSuite') 36920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersdef nullhandler(*args, **kwargs): 37920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters pass 38920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersi.EmitFoo(reply_handler=nullhandler, error_handler=nullhandler) 39920c3c0292b57b30718dde9f4900790a3b60db1fColin Walters 40920c3c0292b57b30718dde9f4900790a3b60db1fColin Waltersloop.run() 41920c3c0292b57b30718dde9f4900790a3b60db1fColin Walterssys.exit(exitcode) 42