I was quite impressed about rails/mac folks creating fancy test notifications by simply connecting zentest/autotest with growl. I wondered how can I get something similar in gnome. As it turns out - it's pretty straightforward - involves only 4 lines of python code and works using dbus. It uses one of the parts freedesktop.org - NotifyService. I created a tiny script for that. It looks rather nice and integrates well (the same service is used by gajim or rhythmbox).
Here's how you invoke it: konrad@machine:~$ python ./bin/test_notifier/test_notifier.py pass 'Test passed' "4 tests
9 assertions
0 failures
0 errors"
konrad@machine:~$ python ./bin/test_notifier/test_notifier.py fail 'Test failed' "4 tests
9 assertions
2 failures
0 errors"
And the code itself (btw: forget about 4 lines - here comes error handling:>)
import sys
import dbus
from os import path, getcwd
try:
status, title, message = sys.argv[1:]
icon_filename = {'pass': 'passed.png', 'fail': 'failed.png'}.get(status)
except Exception:
print 'Usage:\n\t\ttest_notifier [fail|pass] title message'
exit(0)
bus = dbus.SessionBus()
notifyService = bus.get_object("org.freedesktop.Notifications",
'/org/freedesktop/Notifications')
interface = dbus.Interface(notifyService,
'org.freedesktop.Notifications')
icon_filename = path.join(getcwd(),
path.dirname(__file__),
icon_filename)
interface.Notify('test_runner', 0,
icon_filename,
title, message,
[], {}, -1)