If anything ever goes wrong, are the tests going to be thrown into an endless loop (well, stack overflow, I guess, since there's no tail-call optimization in python)? Maybe have a `max_tries` variable?