Files
python-cinderclient/doc/source/contributor/unit_tests.rst
Matt Riedemann 85a3f0e30d Cleanup the home page
Good lord this thing needed some love. This change
does a few things:

* Remove the duplicate man page.
* Rename some titles to drop the CINDERCLIENT yelling -
  this is docs about cinderclient, I get it, no need to
  repeat in all caps.
* Fixed the sub-section title formatting in the home page.
* Dropped the duplicate usage guide wording and simply linked
  to the user docs from the home page.

Change-Id: I259787a40151e8c875ad87021f655a141e06b15e
2018-12-04 17:32:19 -05:00

1.8 KiB

Unit Tests

Cinderclient contains a suite of unit tests, in the cinderclient/tests/unit directory.

Any proposed code change will be automatically rejected by the OpenStack Jenkins server if the change causes unit test failures.

Running the tests

There are a number of ways to run unit tests currently, and there's a combination of frameworks used depending on what commands you use. The preferred method is to use tox, which calls ostestr via the tox.ini file. To run all tests simply run:

tox

This will create a virtual environment, load all the packages from test-requirements.txt and run all unit tests as well as run flake8 and hacking checks against the code.

Note that you can inspect the tox.ini file to get more details on the available options and what the test run does by default.

Running a subset of tests using tox

One common activity is to just run a single test, you can do this with tox simply by specifying to just run py27 or py35 tests against a single test:

tox -epy27 -- -n cinderclient.tests.unit.v2.test_volumes.VolumesTest.test_attach

Or all tests in the test_volumes.py file:

tox -epy27 -- -n cinderclient.tests.unit.v2.test_volumes

For more information on these options and how to run tests, please see the ostestr documentation.

Gotchas

Running Tests from Shared Folders

If you are running the unit tests from a shared folder, you may see tests start to fail or stop completely as a result of Python lockfile issues. You can get around this by manually setting or updating the following line in cinder/tests/conf_fixture.py:

CONF['lock_path'].SetDefault('/tmp')

Note that you may use any location (not just /tmp!) as long as it is not a shared folder.

Footnotes