Source

RUNNING TESTS-------------* WITHOUT VIRTUALENV
Install Python Mock, nose and Mercurial and run:
nosetests
* WITH VIRTUALENV
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 mercurial_reviewboard/tests/virtualenv/bootstrap.py ENV --no-site-packages
or, optionally, target a particular version of Mercurial rather than the
most recent one:
HG_VERSION="Mercurial==1.4" python mercurial_reviewboard/tests/virtualenv/bootstrap.py ENV --no-site-packages
In order to run the tests, run:
ENV/bin/nosetests
TEST DATA---------The test directory is structured like this:
+-tests/
+-diffs/
| +-<canonical diffs for testing>
|
+-repo_tars/
| +-<tar files containing testing repositories>
|
+-repos/ (generated by test runner)
| +-<expanded repo tars>
|
+-scripts/
| +-<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 mercurial_reviewboard.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.