Skip to main content
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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytest-involve-0.1.3.tar.gz (7.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pytest_involve-0.1.3-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file pytest-involve-0.1.3.tar.gz.

File metadata

  • Download URL: pytest-involve-0.1.3.tar.gz
  • Upload date:
  • Size: 7.5 kB
  • Tags: Source
  • Uploaded using 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

File hashes

Hashes for pytest-involve-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fbb9cca8df216410f4d1d6092be9c354225681f9983a1ae276080035f7e3c387
MD5 25e7c31fa8a6305ca8b4c2ee0626cc3d
BLAKE2b-256 9793020e1a6456b9238b8fe27b25f3cb2a3083e89d624405a9392ee04978bfee

See more details on using hashes here.

File details

Details for the file pytest_involve-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: pytest_involve-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 7.6 kB
  • Tags: Python 3
  • Uploaded using 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

File hashes

Hashes for pytest_involve-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 92cb38451daaadc21c56ec57eb877302f92c016b22dc8affe49fa0b6f2811d07
MD5 ace229c80046e78945d3c56d3481946b
BLAKE2b-256 5d02b89bc9e2c1c0abc41b61de2b07a0decd053cce5afeac8f9e1d2b9ee98e8f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.4

2 files

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 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