dbus/test/name-test/test-wait-for-echo.py
Colin Walters d899734475 Bug 18229: Allow signals
Our previous fix went too far towards lockdown; many things rely
on signals to work, and there's no really good reason to restrict
which signals can be emitted on the bus because we can't tie
them to a particular sender.
2008-12-09 10:17:36 -05:00

41 lines
909 B
Python
Executable file

#!/usr/bin/env python
import os,sys
try:
import gobject
import dbus
import dbus.mainloop.glib
except:
print "Failed import, aborting test"
sys.exit(0)
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
loop = gobject.MainLoop()
exitcode = 0
def handle_noreceipt():
print "Failed to get signal"
global exitcode
exitcode = 1
loop.quit()
gobject.timeout_add(7000, handle_noreceipt)
bus = dbus.SessionBus()
def sighandler(*args, **kwargs):
print "got signal"
loop.quit()
bus.add_signal_receiver(sighandler, dbus_interface='org.freedesktop.TestSuite', signal_name='Foo')
o = bus.get_object('org.freedesktop.DBus.TestSuiteEchoService', '/org/freedesktop/TestSuite')
i = dbus.Interface(o, 'org.freedesktop.TestSuite')
def nullhandler(*args, **kwargs):
pass
i.EmitFoo(reply_handler=nullhandler, error_handler=nullhandler)
loop.run()
sys.exit(exitcode)