diff options
author | Colin Walters <walters@verbum.org> | 2008-12-09 09:15:06 -0500 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2008-12-09 10:17:36 -0500 |
commit | d899734475f09068dfa410c91e126e1442b0325e (patch) | |
tree | 1ac7dc768f0d22dcb3770b06edeac85b1a728b64 /test/name-test/test-wait-for-echo.py | |
parent | 5cd3e9ca3f237e1151536484fd5a8cef0adf3456 (diff) |
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.
Diffstat (limited to 'test/name-test/test-wait-for-echo.py')
-rwxr-xr-x | test/name-test/test-wait-for-echo.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/test/name-test/test-wait-for-echo.py b/test/name-test/test-wait-for-echo.py new file mode 100755 index 00000000..bd09e459 --- /dev/null +++ b/test/name-test/test-wait-for-echo.py @@ -0,0 +1,41 @@ +#!/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) |