A pytest plugin to elegantly skip tests with optional requirements
Project description
pytest-requires
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 independentminversion
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for pytest_requires-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f13f3a7dd2d1f0df4affd2873719d0836f27012cea1a04efe6c7c117d4ec53cf |
|
MD5 | 824e1d86a116ff2eec84af1924c96916 |
|
BLAKE2b-256 | 2ebf551afa01bc600ba472489a2269f87a8396424d965b864415a41494c541bd |