[tox]
envlist =
    py{38,39,310,311}-django{32,40,41,42}
    lint
    sandbox
    docs


[testenv]
commands = coverage run --parallel -m pytest {posargs}
extras = test
pip_pre = true
deps =
    django32: django>=3.2,<3.3
    django40: django>=4.0,<4.1
    django41: django>=4.1,<4.2
    django42: django>=4.2,<4.3

[testenv:lint]
basepython = python3.11
deps =
    -r{toxinidir}/requirements.txt
allowlist_externals = npm
commands =
    npm ci
    flake8 src tests setup.py
    isort -c -q --diff src/ tests/
    npm run eslint
    django-admin.py compilemessages


[testenv:sandbox]
basepython = python3.11
deps =
    -r{toxinidir}/requirements.txt
    django>=4.2,<4.3
allowlist_externals = make
commands =
    make build_sandbox

[testenv:docs]
basepython = python3.11
allowlist_externals = make
changedir = {toxinidir}/docs
pip_pre = false
deps =
    -r{toxinidir}/docs/requirements.txt
commands =
    make html
