[tox]
envlist =
  py{312,313},
  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_gthread.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:pycodestyle]
no_package = true
commands =
  pycodestyle gunicorn
deps =
  pycodestyle

[pycodestyle]
max-line-length = 120
ignore = E129,W503,W504,W606
