Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox
pip install tox tox-uv

- name: Generate release notes
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/doc-check-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox
pip install tox tox-uv

- name: Run sphinx linkcheck via tox
run: tox -e docs-checklinks
2 changes: 1 addition & 1 deletion .github/workflows/prepare-release-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox
pip install tox tox-uv

- name: Prepare release PR (minor/patch release)
if: github.event.inputs.major == 'no'
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ jobs:
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox
pip install tox tox-uv

- name: Test without coverage
if: "! matrix.use_coverage"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-plugin-list.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
- name: Install tox
run: |
python -m pip install --upgrade pip
pip install tox
pip install tox tox-uv

- name: Update Plugin List
run: tox -e update-plugin-list
Expand Down
32 changes: 26 additions & 6 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -48,16 +48,16 @@ dynamic = [
dependencies = [
"colorama>=0.4; sys_platform=='win32'",
"exceptiongroup>=1; python_version<'3.11'",
"iniconfig>=1.0.1",
"packaging>=22",
"iniconfig>=2",
"packaging>=24",
"pluggy>=1.5,<2",
"pygments>=2.7.2",
"tomli>=1; python_version<'3.11'",
"pygments>=2.15",
"tomli>=2; python_version<'3.11'",
]
optional-dependencies.dev = [
"argcomplete",
"attrs>=19.2",
"hypothesis>=3.56",
"attrs>=23.1",
"hypothesis>=6.75",
"mock",
"requests",
"setuptools",
Expand All @@ -72,6 +72,26 @@ urls.Tracker = "https://github.com/pytest-dev/pytest/issues"
scripts."py.test" = "pytest:console_main"
scripts.pytest = "pytest:console_main"

[dependency-groups]
dev = [
# Core test dependencies
"argcomplete",
"asynctest; python_version<'3.11'",
"attrs>=23.1",
# Test execution and coverage
"coverage>=7.5",
"hypothesis>=6.75",
"mock",
"numpy>=1.26",
"pexpect>=4.9",
"pytest-xdist>=3.5",
# Additional test dependencies
"pyyaml",
"requests",
"setuptools",
"xmlschema",
]

[tool.setuptools.package-data]
"_pytest" = [
"py.typed",
Expand Down
27 changes: 16 additions & 11 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
[tox]
requires =
tox >= 4
tox-uv >= 1.25
envlist =
linting
py310
Expand Down Expand Up @@ -97,19 +98,13 @@ setenv =
lsof: _PYTEST_TOX_POSARGS_LSOF=--lsof

xdist: _PYTEST_TOX_POSARGS_XDIST=-n auto
extras = dev
dependency_groups = dev
deps =
coverage: coverage>=7.10
doctesting: PyYAML
exceptiongroup: exceptiongroup>=1.0.0rc8
numpy: numpy>=1.19.4
pexpect: pexpect>=4.8.0
exceptiongroup: exceptiongroup>=1.2
pluggymain: pluggy @ git+https://github.com/pytest-dev/pluggy.git
pylib: py>=1.8.2
pylib: py>=1.11
twisted24: twisted<25
twisted25: twisted>=25
asynctest: asynctest
xdist: pytest-xdist>=2.1.0
# Can use the same wheel for all environments.
package = wheel
wheel_build_env = .pkg
Expand All @@ -118,7 +113,8 @@ wheel_build_env = .pkg
description =
run pre-commit-defined linters under `{basepython}`
skip_install = True
deps = pre-commit>=2.9.3
dependency_groups =
deps = pre-commit>=4
commands = pre-commit run --all-files --show-diff-on-failure {posargs:}
setenv =
# pre-commit and tools it launches are not clean of this warning.
Expand All @@ -130,6 +126,7 @@ description =
`{toxinidir}{/}doc{/}en{/}_build{/}html` with `{basepython}`
basepython = python3.13 # Sync with .readthedocs.yaml to get errors.
usedevelop = True
dependency_groups =
deps =
-r{toxinidir}/doc/en/requirements.txt
commands =
Expand All @@ -147,6 +144,7 @@ description =
check the links in the documentation with `{basepython}`
usedevelop = True
changedir = doc/en
dependency_groups =
deps = -r{toxinidir}/doc/en/requirements.txt
commands =
sphinx-build -W -q --keep-going -b linkcheck . _build
Expand All @@ -158,6 +156,7 @@ setenv =
description =
regenerate documentation examples under `{basepython}`
changedir = doc/en
dependency_groups =
deps =
PyYAML
regendoc>=0.8.1
Expand All @@ -180,11 +179,12 @@ description =
# use latest versions of all plugins, including pre-releases
pip_pre=true
changedir = testing/plugins_integration
dependency_groups =
deps = -rtesting/plugins_integration/requirements.txt
setenv =
PYTHONPATH=.
commands =
pip check
uv pip check
pytest bdd_wallet.py
pytest --cov=. simple_integration.py
pytest --ds=django_settings simple_integration.py
Expand All @@ -201,6 +201,7 @@ commands =
description =
test pytest frozen with `pyinstaller` under `{basepython}`
changedir = testing/freeze
dependency_groups =
deps =
pyinstaller
commands =
Expand All @@ -211,6 +212,7 @@ commands =
description = do a release, required posarg of the version number
usedevelop = True
passenv = *
dependency_groups =
deps =
colorama
pre-commit>=2.9.3
Expand All @@ -221,19 +223,22 @@ commands = python scripts/release.py {posargs}
description = prepare a release PR from a manual trigger in GitHub actions
usedevelop = {[testenv:release]usedevelop}
passenv = {[testenv:release]passenv}
dependency_groups = {[testenv:release]dependency_groups}
deps = {[testenv:release]deps}
commands = python scripts/prepare-release-pr.py {posargs}

[testenv:generate-gh-release-notes]
description = generate release notes that can be published as GitHub Release
usedevelop = True
dependency_groups =
deps =
pypandoc_binary
commands = python scripts/generate-gh-release-notes.py {posargs}

[testenv:update-plugin-list]
description = update the plugin list
skip_install = True
dependency_groups =
deps =
packaging
requests
Expand Down
Loading