Testing Python: Applying Unit Testing, TDD, BDD and Acceptance Testing