1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
[tox]
requires =
tox-gh-actions
envlist =
{3.9,3.10,3.11,3.12,3.13,3.14,pypy3}-unit
{3.9,3.10,3.11,3.12,3.13,3.14,pypy3}-integration-{rabbitmq_redis,rabbitmq,redis,dynamodb,azureblockblob,cache,cassandra,elasticsearch,docker}
{3.9,3.10,3.11,3.12,3.13,3.14,pypy3}-smoke
flake8
apicheck
configcheck
bandit
[gh-actions]
python =
3.9: 3.9-unit
3.10: 3.10-unit
3.11: 3.11-unit
3.12: 3.12-unit
3.13: 3.13-unit
3.14: 3.14-unit
pypy-3: pypy3-unit
[testenv]
sitepackages = False
recreate = False
passenv =
AZUREBLOCKBLOB_URL
deps=
-r{toxinidir}/requirements/test.txt
-r{toxinidir}/requirements/pkgutils.txt
3.9,3.10,3.11,3.12,3.13,3.14: -r{toxinidir}/requirements/test-ci-default.txt
3.9,3.10,3.11,3.12,3.13,3.14: -r{toxinidir}/requirements/docs.txt
pypy3: -r{toxinidir}/requirements/test-ci-default.txt
integration: -r{toxinidir}/requirements/test-integration.txt
smoke: pytest-xdist>=3.5
linkcheck,apicheck,configcheck: -r{toxinidir}/requirements/docs.txt
lint: pre-commit
bandit: bandit
commands =
unit: pytest -vv --maxfail=10 --capture=no -v --cov=celery --cov-report=xml --junitxml=junit.xml -o junit_family=legacy --cov-report term {posargs}
integration: pytest -xsvv t/integration {posargs}
smoke: pytest -xsvv t/smoke --dist=loadscope --reruns 5 --reruns-delay 10 {posargs}
setenv =
PIP_EXTRA_INDEX_URL=https://celery.github.io/celery-wheelhouse/repo/simple/
BOTO_CONFIG = /dev/null
WORKER_LOGLEVEL = INFO
PYTHONIOENCODING = UTF-8
PYTHONUNBUFFERED = 1
PYTHONDONTWRITEBYTECODE = 1
cache: TEST_BROKER=redis://
cache: TEST_BACKEND=cache+pylibmc://
cassandra: TEST_BROKER=redis://
cassandra: TEST_BACKEND=cassandra://
elasticsearch: TEST_BROKER=redis://
elasticsearch: TEST_BACKEND=elasticsearch://@localhost:9200
rabbitmq: TEST_BROKER=pyamqp://
rabbitmq: TEST_BACKEND=rpc
redis: TEST_BROKER=redis://
redis: TEST_BACKEND=redis://
rabbitmq_redis: TEST_BROKER=pyamqp://
rabbitmq_redis: TEST_BACKEND=redis://
docker: TEST_BROKER=pyamqp://rabbit:5672
docker: TEST_BACKEND=redis://redis
dynamodb: TEST_BROKER=redis://
dynamodb: TEST_BACKEND=dynamodb://@localhost:8000
dynamodb: AWS_ACCESS_KEY_ID=test_aws_key_id
dynamodb: AWS_SECRET_ACCESS_KEY=test_aws_secret_key
azureblockblob: TEST_BROKER=redis://
azureblockblob: TEST_BACKEND=azureblockblob://DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
basepython =
3.9: python3.9
3.10: python3.10
3.11: python3.11
3.12: python3.12
3.13: python3.13
3.14: python3.14
pypy3: pypy3
mypy: python3.13
lint,apicheck,linkcheck,configcheck,bandit: python3.13
usedevelop = True
[testenv:mypy]
commands = python -m mypy --config-file pyproject.toml
[testenv:apicheck]
setenv =
PYTHONHASHSEED = 100
commands =
sphinx-build -j2 -b apicheck -d {envtmpdir}/doctrees docs docs/_build/apicheck
[testenv:configcheck]
commands =
sphinx-build -j2 -b configcheck -d {envtmpdir}/doctrees docs docs/_build/configcheck
[testenv:linkcheck]
commands =
sphinx-build -j2 -b linkcheck -d {envtmpdir}/doctrees docs docs/_build/linkcheck
[testenv:bandit]
commands =
bandit -b bandit.json -r celery/
[testenv:lint]
commands =
pre-commit {posargs:run --all-files --show-diff-on-failure}
[testenv:clean]
deps = cleanpy
allowlist_externals = bash, make, rm
commands =
bash -c 'files=$(find . -name "*.coverage*" -type f); if [ -n "$files" ]; then echo "Removed coverage file(s):"; echo "$files" | tr " " "\n"; rm $files; fi'
bash -c 'containers=$(docker ps -aq --filter label=creator=pytest-docker-tools); if [ -n "$containers" ]; then echo "Removed Docker container(s):"; docker rm -f $containers; fi'
bash -c 'networks=$(docker network ls --filter name=pytest- -q); if [ -n "$networks" ]; then echo "Removed Docker network(s):"; docker network rm $networks; fi'
bash -c 'volumes=$(docker volume ls --filter name=pytest- -q); if [ -n "$volumes" ]; then echo "Removed Docker volume(s):"; docker volume rm $volumes; fi'
python -m cleanpy .
make clean
rm -f test.db statefilename.db 86
|