kombu/tox.ini

173 lines
4.9 KiB
INI

[tox]
envlist =
{pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13}-unit
{pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13}-linux-integration-py-amqp
{pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13}-linux-integration-redis
{pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13}-linux-integration-mongodb
{pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13}-linux-integration-kafka
flake8
apicheck
pydocstyle
mypy
requires =
tox-docker<=4.1
requests<2.32.0
[gh-actions]
python =
3.8: py38
3.9: py39
3.10: py310
3.11: py311
3.12: py312
3.13: py313
pypy3: pypy3
[testenv]
sitepackages = False
setenv =
C_DEBUG_TEST = 1
PIP_EXTRA_INDEX_URL=https://celery.github.io/celery-wheelhouse/repo/simple/
passenv =
DISTUTILS_USE_SDK
deps=
-r{toxinidir}/requirements/dev.txt
apicheck,pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13: -r{toxinidir}/requirements/default.txt
apicheck,pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13: -r{toxinidir}/requirements/test.txt
apicheck,pypy3.10,3.8,3.9,3.10,3.11,3.12,3.13: -r{toxinidir}/requirements/test-ci.txt
apicheck,3.8-linux,3.9-linux,3.10-linux,3.11-linux,3.12-linux,3.13-linux: -r{toxinidir}/requirements/extras/confluentkafka.txt
apicheck,linkcheck: -r{toxinidir}/requirements/docs.txt
flake8,pydocstyle,mypy: -r{toxinidir}/requirements/pkgutils.txt
integration: -r{toxinidir}/requirements/test-integration.txt
commands =
unit: python -bb -m pytest -rxs -xv --cov=kombu --cov-report=xml --no-cov-on-fail --cov-report term {posargs}
integration-py-amqp: pytest -xv -E py-amqp t/integration -n auto --reruns 2 --reruns-delay 1 {posargs}
integration-redis: pytest -xv -E redis t/integration -n auto --reruns 2 --reruns-delay 1 {posargs}
integration-mongodb: pytest -xv -E mongodb t/integration -n auto --reruns 2 --reruns-delay 1 {posargs}
integration-kafka: pytest -xv -E kafka t/integration -n auto --reruns 2 --reruns-delay 1 {posargs}
basepython =
pypy3: pypy3
3.8: python3.8
3.9: python3.9
3.10: python3.10
3.11: python3.11
3.12: python3.12
3.13: python3.13
apicheck,pydocstyle,flake8,linkcheck,cov,mypy: python3.13
install_command = python -m pip --disable-pip-version-check install {opts} {packages}
docker =
integration-py-amqp: rabbitmq
integration-redis: redis
integration-mongodb: mongodb
integration-kafka: zookeeper
integration-kafka: kafka
dockerenv =
PYAMQP_INTEGRATION_INSTANCE=1
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS=-rabbit tcp_listeners [5672]
[docker:rabbitmq]
image = rabbitmq
ports = 5672:5672/tcp
healthcheck_cmd = /bin/bash -c 'rabbitmq-diagnostics ping -q'
healthcheck_interval = 10
healthcheck_timeout = 10
healthcheck_retries = 30
healthcheck_start_period = 5
[docker:redis]
image = redis
ports = 6379:6379/tcp
healthcheck_cmd = /bin/sh -c 'redis-cli ping'
healthcheck_interval = 10
healthcheck_timeout = 10
healthcheck_retries = 30
healthcheck_start_period = 5
[docker:mongodb]
image = mongo
ports = 27017:27017/tcp
healthcheck_cmd = /usr/bin/mongosh --eval 'db.runCommand("ping")'
healthcheck_interval = 10
healthcheck_timeout = 10
healthcheck_retries = 30
healthcheck_start_period = 5
[docker:zookeeper]
image = bitnami/zookeeper:latest
ports = 2181:2181/tcp
healthcheck_interval = 10
healthcheck_timeout = 10
healthcheck_retries = 30
healthcheck_start_period = 5
environment = ALLOW_ANONYMOUS_LOGIN=yes
[docker:kafka]
image = bitnami/kafka:latest
ports =
9092:9092/tcp
healthcheck_cmd = /bin/bash -c 'kafka-topics.sh --list --bootstrap-server 127.0.0.1:9092'
healthcheck_interval = 10
healthcheck_timeout = 10
healthcheck_retries = 30
healthcheck_start_period = 5
links =
zookeeper:zookeeper
environment =
KAFKA_BROKER_ID=1
KAFKA_CFG_LISTENERS=PLAINTEXT://:9092
KAFKA_CFG_ADVERTISED_LISTENERS=PLAINTEXT://127.0.0.1:9092
KAFKA_CFG_ZOOKEEPER_CONNECT=zookeeper:2181
ALLOW_PLAINTEXT_LISTENER=yes
[testenv:apicheck]
commands = pip install -U -r{toxinidir}/requirements/dev.txt
sphinx-build -j2 -b apicheck -d {envtmpdir}/doctrees docs docs/_build/apicheck
[testenv:linkcheck]
commands = pip install -U -r{toxinidir}/requirements/dev.txt
sphinx-build -j2 -W -b linkcheck -d {envtmpdir}/doctrees docs docs/_build/linkcheck
[testenv:flake8]
commands =
flake8 -j2 {toxinidir}/kombu {toxinidir}/t
[testenv:pydocstyle]
commands =
pydocstyle {toxinidir}/kombu
[testenv:mypy]
commands = python -m mypy --config-file setup.cfg
[testenv:lint]
allowlist_externals = pre-commit
commands =
pre-commit {posargs:run --all-files --show-diff-on-failure}
[testenv:clean]
deps = cleanpy
allowlist_externals = make
commands =
python -m cleanpy .
make clean
[testenv:parallel]
description = Run all unit and integration tests in parallel
allowlist_externals = tox
setenv =
PYTHONUNBUFFERED = 1
PYTHONDONTWRITEBYTECODE = 1
commands =
tox -e \
3.13-unit,\
3.13-linux-integration-py-amqp,\
3.13-linux-integration-redis,\
3.13-linux-integration-mongodb,\
3.13-linux-integration-kafka \
-p -o -- --exitfirst {posargs}