Async frameworks like Tornado scramble our usual unittest strategies: how can you validate the outcome when you do not know when to expect it? Here's my PyCon 2015 talk about Tornado's testing module. You can also read my article on the topic or see a screencast which I closed-captioned.