pytest-requires

A pytest plugin to elegantly skip tests with optional requirements


License
MIT
Install
pip install pytest-requires==0.1.0

Documentation

pytest-requires

PyPI version

Python versions

Build status

A pytest plugin to elegantly skip tests with optional requirements


This pytest plugin was generated with Cookiecutter along with @hackebrot's cookiecutter-pytest-plugin template.

Features

  • decorate tests that require optional modules (with an optional minimum version) and gracefully skip them when the requirements aren't importable

Requirements

  • pytest

Installation

You can install "pytest-requires" via pip from PyPI:

pip install pytest-requires

Usage

How to use pytest-requires

With pytest-requires, tests can be marked as requiring an external module as follows:

@pytest.mark.requires("dateutil")
def test_date_parsing():
    assert date_parsing() == RESULT

In this example if the python-dateutil module isn't installed the test is skipped. The import testing is all performed by pytest's builtin importorskip function.

Notes:

  • the minversion keyword can be given to specifiy a minimum acceptable version for the required module
  • multiple modules can be given as positional arguments, with the decorated tested being skipped if any of the given modules cannot be imported
  • in the case of multiple modules, only a single minversion can be given, and will be used for all modules; if an independent minversion is required for each module, use multiple @pytest.mark.requires decorators.

Why not just use pytest.importorskip?

pytest.importorskip is designed to import a module and add the module to the namespace (of the module, or the test function). If the optional module isn't used in the test itself, but is really a requirement of the function being tested, the call to importorskip less elegant (in the author's opinion) than a decorator call.

Contributing

Contributions are very welcome, please open a Pull Request.

License

Distributed under the terms of the MIT license, "pytest-requires" is free and open source software

Issues

If you encounter any problems, please file an issue along with a detailed description.