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