todo list using TDD, following the book Test-Driven Development with Python