Skip to main content

pytest-involve

PyPI version Python versions See Build Status on Travis CI

pytest-involve is a pytest plugin for running only tests which cover a given file or set of files. It’s called pytest-involve because it lets you run only tests involving modules or members from those modules.

Usually with pytest the test set to run is specified and coverage collected based on that set. When pytest-involve is used, instead you specify the file(s) you want to cover, and test files are selected based on whether they import from those file(s) or not.

Usages

pytest-involve adds one command line argument to pytest, namely --involving. This can be provided a file path, a module import path (such as you would use in a Python interpreter), or either of the above suffixed with :: and the name of something defined in there:

pytest --involving ./path/to/file.py

pytest --involving importable.module.path

pytest --involving ./path/to/file.py::member

pytest --involving importable.module.path::member

This will have the effect of only collecting and running tests which are defined in modules whose imports overlap with the file(s) and member(s) specified with the --involving flag.

The plugin aims for recall over precision: It might run a few tests that aren’t strictly necessary, but it shouldn’t ignore any tests that are.

The ::member syntax will only work for things with a __file__ attribute (so, mostly classes and functions).

pytest-involve should play nicely with most other pytest plugins and command line tooling. One useful example is as follows:

git status -s | cut -c4- | grep .py | sed "s/^/--involving /" | xargs pytest

This will take all *.py files mentioned in the output of git status and provide them to pytest prefixed with --involving, which allows for quickly running unit tests relevant to the current state of the repository.


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

Features

  • Run unit tests covering specific file(s) via the command line flag --involving

Requirements

  • pytest

  • That’s it.

Installation

You can install “pytest-involve” via pip from PyPI:

$ pip install pytest-involve

Contributing

Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.

License

Distributed under the terms of the MIT license, “pytest-involve” is free and open source software.

Issues

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

Release files for pytest-involve 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytest-involve 0.1.4
File Size Uploaded
pytest-involve-0.1.4.tar.gz 7.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytest-involve 0.1.4
File Interpreter ABI Platform
pytest_involve-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 15.1 kB

Release files / pytest-involve-0.1.4.tar.gz

Download URL pytest-involve-0.1.4.tar.gz
Size 7.5 kB
Tags Source
SHA-256 checksum
How to use checksums
1d28baa5be46403e30d5f728159ce77a4aecd013807bbcb15b4b11c07aec5576
BLAKE2b-256 checksum
How to use checksums
25dca5861412ac5768dbd89bdadabd79b213336d78ff3af72645a2c40a890bcc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.2

Release files / pytest_involve-0.1.4-py3-none-any.whl

Download URL pytest_involve-0.1.4-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4d26c34555b10e5595de4cdfab9c5861d3420e99c1b692d72746b800f9cb0f5f
BLAKE2b-256 checksum
How to use checksums
b6d9d2e7de67068b4d5233ecc06df03926283d6d132c71134294519544330657
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.35.0 CPython/3.7.2

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page