========================================
Horizon: The OpenStack Dashboard Project
========================================
The Horizon project is a Django module that is used to provide web based
interactions with an OpenStack cloud.
There is a reference implementation that uses this module located at:
http://launchpad.net/horizon
It is highly recommended that you make use of this reference implementation
so that changes you make can be visualized effectively and are consistent.
Using this reference implementation as a development environment will greatly
simplify development of the ``horizon`` module.
Of course, if you are developing your own Django site using Horizon, then
you can disregard this advice.
Getting Started
===============
Horizon uses Buildout (http://www.buildout.org/) to manage local development.
To configure your local Buildout environment first install the following
system-level dependencies:
* python-dev
* git
* bzr
Then instantiate buildout with::
$ python bootstrap.py
$ bin/buildout
This will install all the dependencies of Horizon and provide some useful
scripts in the ``bin/`` directory:
bin/python provides a python shell for the current buildout.
bin/django provides django functions for the current buildout.
You should now be able to run unit tests as follows::
$ bin/django test
or::
$ bin/test
You can run unit tests with code coverage on Horizon by setting
``NOSE_WITH_COVERAGE``::
$ NOSE_WITH_COVERAGE=true bin/test
Get even better coverage info by running coverage directly::
$ coverage run --branch --source horizon bin/django test horizon && coverage html