mercurial-reviewboard / TESTING



Install Python Mock, nose and Mercurial and run:

    PYTHONPATH=. nosetests


You can use virtualenv to set up a virtual environment for testing.  This
is useful in environments such as automated continuous integration process,
where you want to isolate yourself from the global python environment and
pick up new dependencies automatically.

In order to set up the plugin tests for the first time, install virtualenv
and run:

    python tests/virtualenv/ ENV --no-site-packages

In order to run the tests, run:

    PYTHONPATH=. ENV/bin/nosetests


The test directory is structured like this:

    | +-<canonical diffs for testing>
    | +-<tar files containing testing repositories>
    +-repos/ (generated by test runner)
    | +-<expanded repo tars>
    | +-<scripts that were used to create the diffs and repo tars>
    +-<python scripts for unit and integration tests>
There is a package-level setup function in tests.__init__
that will automatically recreate the repos directory for every test run.
Some tests use the diffs/ and repos/ data to exercise various aspects of the
tool.  When creating a new diff or repo for testing, place a shell script in 
the scripts directory with the appropriate logic and commit the script and 
the resulting diff or repo tar.