summaryrefslogtreecommitdiff
path: root/tox.ini
diff options
context:
space:
mode:
Diffstat (limited to 'tox.ini')
-rw-r--r--tox.ini82
1 files changed, 69 insertions, 13 deletions
diff --git a/tox.ini b/tox.ini
index a73ffa96..1636d63a 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,15 +1,24 @@
[tox]
envlist =
- {pypy3,3.7,3.8,3.9,3.10}-unit
- {pypy3,3.7,3.8,3.9,3.10}-linux-integration-py-amqp
- {pypy3,3.7,3.8,3.9,3.10}-linux-integration-redis
+ {pypy3.9,3.7,3.8,3.9,3.10,3.11}-unit
+ {pypy3.9,3.7,3.8,3.9,3.10,3.11}-linux-integration-py-amqp
+ {pypy3.9,3.7,3.8,3.9,3.10,3.11}-linux-integration-redis
+ {pypy3.9,3.7,3.8,3.9,3.10,3.11}-linux-integration-mongodb
+ {3.7,3.8,3.9,3.10,3.11}-linux-integration-kafka
flake8
- flakeplus
apicheck
pydocstyle
requires = tox-docker>=3.0
+[gh-actions]
+python =
+ 3.7: py37
+ 3.8: py38
+ 3.9: py39
+ 3.10: py310, mypy
+ 3.11: py311
+
[testenv]
sitepackages = False
setenv = C_DEBUG_TEST = 1
@@ -17,30 +26,38 @@ passenv =
DISTUTILS_USE_SDK
deps=
-r{toxinidir}/requirements/dev.txt
- apicheck,pypy3,3.7,3.8,3.9,3.10: -r{toxinidir}/requirements/default.txt
- apicheck,pypy3,3.7,3.8,3.9,3.10: -r{toxinidir}/requirements/test.txt
- apicheck,pypy3,3.7-linux,3.8-linux,3.9-linux,3.10-linux: -r{toxinidir}/requirements/test-ci.txt
- 3.7-windows,3.8-windows,3.9-windows,3.10-windows: -r{toxinidir}/requirements/test-ci-windows.txt
+ apicheck,pypy3.9,3.7,3.8,3.9,3.10,3.11: -r{toxinidir}/requirements/default.txt
+ apicheck,pypy3.9,3.7,3.8,3.9,3.10,3.11: -r{toxinidir}/requirements/test.txt
+ apicheck,pypy3.9,3.7-linux,3.8-linux,3.9-linux,3.10-linux,3.11-linux: -r{toxinidir}/requirements/test-ci.txt
+ apicheck,3.7-linux,3.8-linux,3.9-linux,3.10-linux,3.11-linux: -r{toxinidir}/requirements/extras/confluentkafka.txt
+ 3.8-windows,3.9-windows,3.10-windows,3.11-windows: -r{toxinidir}/requirements/test-ci-windows.txt
apicheck,linkcheck: -r{toxinidir}/requirements/docs.txt
- flake8,flakeplus,pydocstyle: -r{toxinidir}/requirements/pkgutils.txt
+ flake8,pydocstyle,mypy: -r{toxinidir}/requirements/pkgutils.txt
commands =
unit: python -bb -m pytest -rxs -xv --cov=kombu --cov-report=xml --no-cov-on-fail {posargs}
- integration-py-amqp: py.test -xv -E py-amqp t/integration {posargs:-n2}
- integration-redis: py.test -xv -E redis t/integration {posargs:-n2}
+ integration-py-amqp: pytest -xv -E py-amqp t/integration {posargs:-n2}
+ integration-redis: pytest -xv -E redis t/integration {posargs:-n2}
+ integration-mongodb: pytest -xv -E mongodb t/integration {posargs:-n2}
+ integration-kafka: pytest -xv -E kafka t/integration {posargs:-n2}
basepython =
+ pypy3.9: pypy3.9
+ pypy3.8: pypy3.8
3.7: python3.7
- 3.8: python3.8
+ 3.8,mypy: python3.8
3.9,apicheck,pydocstyle,flake8,linkcheck,cov: python3.9
- pypy3: pypy3.7
3.10: python3.10
+ 3.11: python3.11
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
@@ -64,6 +81,42 @@ 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
@@ -79,3 +132,6 @@ commands =
[testenv:pydocstyle]
commands =
pydocstyle {toxinidir}/kombu
+
+[testenv:mypy]
+commands = python -m mypy --config-file setup.cfg