mirror of
https://github.com/pacnpal/django-anymail.git
synced 2025-12-19 19:31:06 -05:00
- Docs build now requires package installed - Update tox docs to use Python 3.11, same as RTD
124 lines
4.1 KiB
INI
124 lines
4.1 KiB
INI
[tox]
|
|
envlist =
|
|
# Anymail supports the same Python versions as Django, plus PyPy.
|
|
# https://docs.djangoproject.com/en/dev/faq/install/#what-python-version-can-i-use-with-django
|
|
# Factors: django-python-extras
|
|
# Test lint, docs, earliest/latest Django first, to catch most errors early...
|
|
lint
|
|
django42-py311-all
|
|
django30-py37-all
|
|
docs
|
|
# ... then test all the other supported combinations:
|
|
# Django 4.2: Python 3.8, 3.9, 3.10, 3.11
|
|
django42-py{38,39,310,py38,py39}-all
|
|
# Django 4.1: Python 3.8, 3.9, 3.10
|
|
django41-py{38,39,310,py38,py39}-all
|
|
# Django 4.0: Python 3.8, 3.9, 3.10
|
|
django40-py{38,39,310,py38,py39}-all
|
|
# Django 3.2: Python 3.6 (eol 2021-12-23), 3.7, 3.8, 3.9
|
|
django32-py{37,38,39,py38,py39}-all
|
|
# Django 3.1: Python 3.6 (eol 2021-12-23), 3.7, 3.8, 3.9 (added in 3.1.3)
|
|
django31-py{37,38,39,py38,py39}-all
|
|
# Django 3.0: Python 3.6 (eol 2021-12-23), 3.7, 3.8, 3.9 (added in 3.0.11)
|
|
django30-py{38,39,py38,py39}-all
|
|
# ... then prereleases (if available) and current development:
|
|
# Django 5.0 alpha: Python 3.10+
|
|
# [not yet in alpha] django50-py{310,311,py310,py311}-all
|
|
# Django 5.0 dev: Python 3.10+
|
|
djangoDev-py{310,311}-all
|
|
# ... then partial installation (limit extras):
|
|
django42-py311-{none,amazon_ses,postal}
|
|
# tox requires isolated builds to use pyproject.toml build config:
|
|
isolated_build = True
|
|
|
|
[testenv]
|
|
args_are_paths = false
|
|
# Download latest version of pip/setuptools available on each Python version:
|
|
download = true
|
|
deps =
|
|
-rtests/requirements.txt
|
|
django30: django~=3.0.0
|
|
django31: django~=3.1.0
|
|
django32: django~=3.2.0
|
|
django40: django~=4.0.0
|
|
django41: django~=4.1.0
|
|
django42: django~=4.2.0
|
|
django50: django~=5.0.0a0
|
|
djangoDev: https://github.com/django/django/tarball/main
|
|
extras =
|
|
# Install [esp-name] extras only when testing "all" or esp_name factor.
|
|
# (Only ESPs with extra dependencies need to be listed here.
|
|
# Careful: tox factors (on the left) use underscore; extra names use hyphen.)
|
|
all,amazon_ses: amazon-ses
|
|
all,postal: postal
|
|
setenv =
|
|
# tell runtests.py to limit some test tags based on extras factor
|
|
none: ANYMAIL_SKIP_TESTS=amazon_ses,postal
|
|
amazon_ses: ANYMAIL_ONLY_TEST=amazon_ses
|
|
mailersend: ANYMAIL_ONLY_TEST=mailersend
|
|
mailgun: ANYMAIL_ONLY_TEST=mailgun
|
|
mailjet: ANYMAIL_ONLY_TEST=mailjet
|
|
mandrill: ANYMAIL_ONLY_TEST=mandrill
|
|
postal: ANYMAIL_ONLY_TEST=postal
|
|
postmark: ANYMAIL_ONLY_TEST=postmark
|
|
sendgrid: ANYMAIL_ONLY_TEST=sendgrid
|
|
sendinblue: ANYMAIL_ONLY_TEST=sendinblue
|
|
sparkpost: ANYMAIL_ONLY_TEST=sparkpost
|
|
ignore_outcome =
|
|
# CI that wants to handle errors itself can set TOX_OVERRIDE_IGNORE_OUTCOME=false
|
|
djangoDev: {env:TOX_OVERRIDE_IGNORE_OUTCOME:true}
|
|
commands_pre =
|
|
python -VV
|
|
python -m pip --version
|
|
python -c 'import django; print("Django", django.__version__)'
|
|
commands =
|
|
python runtests.py {posargs}
|
|
passenv =
|
|
ANYMAIL_ONLY_TEST
|
|
ANYMAIL_SKIP_TESTS
|
|
ANYMAIL_RUN_LIVE_TESTS
|
|
CONTINUOUS_INTEGRATION
|
|
ANYMAIL_TEST_*
|
|
|
|
[testenv:lint]
|
|
basepython = python3.8
|
|
skip_install = true
|
|
passenv =
|
|
CONTINUOUS_INTEGRATION
|
|
# Make sure pre-commit can clone hook repos over ssh or http proxy.
|
|
# https://pre-commit.com/#usage-with-tox
|
|
SSH_AUTH_SOCK
|
|
http_proxy
|
|
https_proxy
|
|
no_proxy
|
|
# (but not any of the live test API keys)
|
|
deps =
|
|
pre-commit
|
|
commands_pre =
|
|
python -VV
|
|
pre-commit --version
|
|
commands =
|
|
pre-commit validate-config
|
|
pre-commit run --all-files
|
|
|
|
[testenv:docs]
|
|
basepython = python3.11
|
|
passenv =
|
|
CONTINUOUS_INTEGRATION
|
|
# (but not any of the live test API keys)
|
|
setenv =
|
|
DOCS_BUILD_DIR={envdir}/_html
|
|
deps =
|
|
-rdocs/requirements.txt
|
|
commands_pre =
|
|
python -VV
|
|
sphinx-build --version
|
|
commands =
|
|
# Build and verify docs:
|
|
sphinx-build -W -b dirhtml docs {env:DOCS_BUILD_DIR}
|
|
# Build and verify package metadata readme.
|
|
# Errors here are in README.rst:
|
|
python docs/_readme/render.py \
|
|
--package django-anymail \
|
|
--out {env:DOCS_BUILD_DIR}/readme.html
|