======================================== 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