Following along Test-Driven Development with Python by Harry J.W. Percival