Book Image

Test-Driven Python Development

By : Siddharta Govindaraj
Book Image

Test-Driven Python Development

By: Siddharta Govindaraj

Overview of this book

This book starts with a look at the test-driven development process, and how it is different from the traditional way of writing code. All the concepts are presented in the context of a real application that is developed in a step-by-step manner over the course of the book. While exploring the common types of smelly code, we will go back into our example project and clean up the smells that we find. Additionally, we will use mocking to implement the parts of our example project that depend on other systems. Towards the end of the book, we'll take a look at the most common patterns and anti-patterns associated with test-driven development, including integration of test results into the development process.
Table of Contents (20 chapters)
Test-Driven Python Development
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Index

Other tools


tox

tox is a framework for maintaining a Python package across multiple versions of Python. For example, we can easily test that everything is working in Python 2.6 and Python 3.4. It works by creating virtual environments for each version and then running the unit tests under that environment.

Note

tox uses the virtualenv tool for creating virtual environments. This tool is bundled in the standard library with Python 3.4 and can be installed from PyPi for older version of Python. We don't cover this tool in this book, but if you aren't using it already, then do take a look at it.

A typical tox configuration file looks like the following:

[tox]
envlist = py33,py34

[testenv:py34]
deps = nose2
       sure
       pyhamcrest
commands = nose2

[testenv:py33]
deps = enum34
       sure
       pyhamcrest
commands = python -m unittest

The configuration includes the list of Python versions to test against. Each environment can have its own dependencies installed that we require to run the tests...