Based on TDD with Python by Harry J.W. Percival