diff --git a/HACKING.rst b/HACKING.rst index e4978355..e3bb2699 100644 --- a/HACKING.rst +++ b/HACKING.rst @@ -1,4 +1,42 @@ -castellan Style Commandments +Castellan Style Commandments =============================================== -Read the OpenStack Style Commandments http://docs.openstack.org/developer/hacking/ +- Step 1: Read the OpenStack Style Commandments + http://docs.openstack.org/developer/hacking/ +- Step 2: Read on + +Castellan Specific Commandments +------------------------------- +N/A + +Creating Unit Tests +------------------- +For every new feature, unit tests should be created that both test and +(implicitly) document the usage of said feature. If submitting a patch for a +bug that had no unit test, a new passing unit test should be added. If a +submitted bug fix does have a unit test, be sure to add a new one that fails +without the patch and passes with the patch. + +Running Tests +------------- +The testing system is based on a combination of tox and testr. The canonical +approach to running tests is to simply run the command ``tox``. This will +create virtual environments, populate them with dependencies and run all of +the tests that OpenStack CI systems run. Behind the scenes, tox is running +``testr run --parallel``, but is set up such that you can supply any additional +testr arguments that are needed to tox. For example, you can run: +``tox -- --analyze-isolation`` to cause tox to tell testr to add +--analyze-isolation to its argument list. + +Python packages may also have dependencies that are outside of tox's ability +to install. Please refer to doc/source/devref/development.environment.rst for +a list of those packages on Ubuntu, Fedora and Mac OS X. + +It is also possible to run the tests inside of a virtual environment +you have created, or it is possible that you have all of the dependencies +installed locally already. In this case, you can interact with the testr +command directly. Running ``testr run`` will run the entire test suite. ``testr +run --parallel`` will run it in parallel (this is the default incantation tox +uses.) More information about testr can be found at: +http://wiki.openstack.org/testr +