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