projects from "Test-Driven Development with Python" by Harry J.W. Percival