Heat testing
------------

All tests are to be placed in the heat/tests directory. The directory
is organized by test type (unit, functional, etc). Within each type
directory one may create another directory for additional test files as
well as a separate __init__.py, which should be blank.

An example directory structure illustrating the above:

heat/tests
|-- examples
|   |-- __init__.py
|   |-- test1.py
|   |-- test2.py
|   |-- test3.py
|-- __init__.py
`-- unit
    |-- __init__.py
    |-- test_template_convert.py

If a given test has no overlapping requirements (variables or same
routines) a new test does not need to create a subdirectory under the
test type.

Implementing a test
-------------------

Testrepository - http://pypi.python.org/pypi/testrepository is used to
find and run tests, parallelize their runs, and record timing/results.

If new dependencies are introduced upon the development of a test, the
tools/test-requires file needs to be updated so that the virtual
environment will be able to successfully execute all tests.

Running the tests
-----------------

During development, the simplest way to run tests is to simply invoke
testr directly.

$ testr run

To run the tests with a clean virtual env in the same manner as the
OpenStack testing infrastructure does so, use tox.

$ tox -epy27 # test suite on python 2.7
$ tox -epy26 # test suite on python 2.6
$ tox -epep8 # run full source code checker
