gunicorn/tox.ini
Benoit Chesneau 1dc4ce9d59
Update to support only Python 3.12 and 3.13 (#3422)
* Update CI and project to support only Python N (3.13) and N-1 (3.12)

- Update GitHub Actions workflows to test only Python 3.12 and 3.13
- Update pyproject.toml to require Python >= 3.12
- Update tox.ini to test only py312 and py313
- Update documentation to reflect Python 3.12+ requirement
- Clean up AppVeyor configuration for Python 3.12
* Update pylint to 3.3.2 for Python 3.12 compatibility
* Disable new pylint warnings for pre-existing issues
2025-10-05 19:55:32 +02:00

72 lines
1.7 KiB
INI

[tox]
envlist =
py{312,313},
lint,
docs-lint,
pycodestyle,
run-entrypoint,
run-module,
[testenv]
package = editable
commands = pytest --cov=gunicorn {posargs}
deps =
-rrequirements_test.txt
[testenv:run-entrypoint]
package = wheel
deps =
# entry point: console script (provided by setuptools from pyproject.toml)
commands = python -c 'import subprocess; cmd_out = subprocess.check_output(["gunicorn", "--version"])[:79].decode("utf-8", errors="replace"); print(cmd_out); assert cmd_out.startswith("gunicorn ")'
[testenv:run-module]
package = wheel
deps =
# runpy (provided by module.__main__)
commands = python -c 'import sys,subprocess; cmd_out = subprocess.check_output([sys.executable, "-m", "gunicorn", "--version"])[:79].decode("utf-8", errors="replace"); print(cmd_out); assert cmd_out.startswith("gunicorn ")'
[testenv:lint]
no_package = true
commands =
pylint -j0 \
--max-line-length=120 \
gunicorn \
tests/test_arbiter.py \
tests/test_config.py \
tests/test_http.py \
tests/test_invalid_requests.py \
tests/test_logger.py \
tests/test_pidfile.py \
tests/test_sock.py \
tests/test_ssl.py \
tests/test_statsd.py \
tests/test_systemd.py \
tests/test_util.py \
tests/test_valid_requests.py
deps =
pylint==3.3.2
[testenv:docs-lint]
no_package = true
allowlist_externals =
rst-lint
bash
grep
deps =
restructuredtext_lint
pygments
commands =
rst-lint README.rst docs/README.rst
bash -c "(set -o pipefail; rst-lint --encoding utf-8 docs/source/*.rst | grep -v 'Unknown interpreted text role\|Unknown directive type'); test $? == 1"
[testenv:pycodestyle]
no_package = true
commands =
pycodestyle gunicorn
deps =
pycodestyle
[pycodestyle]
max-line-length = 120
ignore = E129,W503,W504,W606