Unit tests

We’re in the process of writing unit tests for the ocs-ci python modules, including our pytest plugins.

We are using pytest framework and test execution is handled via tox, as configured in tox.ini config file.

The tests are executed in Travis CI for each pull request created for this repository.

How to run the unit tests myself?

Make sure you have python 3.8 and tox installed from binary packages of your distribution.

Then in root directory of the repository just run:

$ tox

This will execute the tests in the same way as in Travis CI, including flake8 checks.

What tests are available?

You can list available tests by doing:

$ tox -e py37 -- --collect-only

How to run particular test only?

It’s possible to pass additional pytest arguments to tox like this:

$ tox -e py37 -- ocsci/pytest_customization/tests/test_pytest.py::test_config_parametrize

Or like this:

$ tox -e py37 -- -k test_config_parametrize

This can be also helpful during debugging:

$ tox -e py37 -- -v --pdb

Pytest integration tests

In test_pytest.py file, we have unit tests covering our pytest plugins. The testing is done via pytester, which is official pytest module for testing pytest plugins via pytest.