Let's talk about tests on IRC sometime. For one thing, I can definitely save you from having to write your own testrunner. It looks like you have some useful abstractions here. We can hoist those someplace (like we do in testing.py) and call them from a nose-powered runner so we can run all the tests at once.