Hmm.. you will want to be able to call it synchronously for testing too. This is what I did in Avocado: https://github.com/cbmi/avocado/blob/2.1/avocado/events/usage.py