Working through Test-Driven Development with Python by Harry Percival