I was trying to get Tornado’s AsyncHTTPTestCase to work with Motor, but the tests were blocking as soon as there was a call to Motor. It turns out that Motor wasn’t hooked to the tests’ IO loop, therefor the callbacks were never called. I found the solution after looking at Motor’s own tests:

motor.MotorClient(host, port, io_loop=self.io_loop)