Thursday, 9th October 2025
TIL: Testing different Python versions with uv with-editable and uv-test.
While tinkering with upgrading various projects to handle Python 3.14 I finally figured out a universal uv
recipe for running the tests for the current project in any specified version of Python:
uv run --python 3.14 --isolated --with-editable '.[test]' pytest
This should work in any directory with a pyproject.toml
(or even a setup.py
) that defines a test
set of extra dependencies and uses pytest
.
The --with-editable '.[test]'
bit ensures that changes you make to that directory will be picked up by future test runs. The --isolated
flag ensures no other environments will affect your test run.
I like this pattern so much I built a little shell script that uses it, shown here. Now I can change to any Python project directory and run:
uv-test
Or for a different Python version:
uv-test -p 3.11
I can pass additional pytest
options too:
uv-test -p 3.11 -k permissions