======
tox-py
.. image:: https://img.shields.io/github/workflow/status/adamchainz/tox-py/CI/main?style=for-the-badge
:target: https://github.com/adamchainz/tox-py/actions?workflow=CI
.. image:: https://img.shields.io/badge/Coverage-100%25-success?style=for-the-badge
:target: https://github.com/adamchainz/tox-py/actions?workflow=CI
.. image:: https://img.shields.io/pypi/v/tox-py.svg?style=for-the-badge
:target: https://pypi.org/project/tox-py/
.. image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=for-the-badge
:target: https://github.com/psf/black
.. image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white&style=for-the-badge
:target: https://github.com/pre-commit/pre-commit
:alt: pre-commit
Unmaintained (2022-12-08)
With the release of tox 4, this package is no longer necessary, and so is not being maintained.
You can instead use tox 4’s -f
option - see below.
Adds the --py
flag to tox to run environments matching a given Python interpreter.
Installation
Use pip:
.. code-block:: bash
python -m pip install tox-py
Python 3.7 to 3.11 supported.
Only tox 3 is supported.
On tox 4, you can use the new |-f factor option|__ to select environments by Python version:
.. |-f factor option| replace:: -f
factor option
__ https://tox.wiki/en/latest/cli_interface.html#tox-run-select-target-environment(s)
.. code-block:: console
$ tox -f py310
On GitHub Actions, you can use -f
with your matrix python version like so:
.. code-block:: yaml
jobs:
tests:
name: Python ${{ matrix.python-version }}
strategy:
matrix:
python-version:
- 3.7
- 3.8
- 3.9
- '3.10'
- '3.11'
steps:
- ...
- name: Run tox targets for ${{ matrix.python-version }}
run: tox run -f py$(echo ${{ matrix.python-version }} | tr -d .)
Testing a Django project?
Check out my book Speed Up Your Django Tests <https://adamchainz.gumroad.com/l/suydt>
__ which covers loads of ways to write faster, more accurate tests.
Usage
After installation, the plugin will be automatically picked up by tox
.
It adds one argument: --py
, which takes the version to filter environments against.
The version can be specified either as a tox.ini
-style dotless version number, or the special string current
for the version of Python that tox
is running under.
For example, to run all Python 3.9 environments:
.. code-block:: sh
tox --py 39
Or to run all environments matching the version of Python that tox
is running under:
.. code-block:: sh
tox --py current
This makes configuring CI really easy: configure your CI to trigger each Python version in parallel, running tox --py current
.