[tox]
skipsdist = True
usedevelop = True

envlist = py{38,39,310,311,312}-dj{32,41,42,50,50stable,main}-{sqlite,postgres,mysql,mssql}-{elasticsearch8,elasticsearch7,elasticsearch6,elasticsearch5,noelasticsearch}-{customuser,emailuser}-{tz,notz},

[testenv]
install_command = pip install -e ".[testing]" -U {opts} {packages}
commands =
    elasticsearch5: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch5
    elasticsearch6: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch6
    elasticsearch7: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch7
    elasticsearch8: coverage run runtests.py wagtail.search wagtail.documents wagtail.images --elasticsearch8
    noelasticsearch: coverage run runtests.py {posargs}

basepython =
    py38: python3.8
    py39: python3.9
    py310: python3.10
    py311: python3.11
    py312: python3.12

deps =
    django-sendfile==0.3.6
    Embedly

    dj32: Django~=3.2.0
    dj41: Django~=4.1.0
    dj42: Django~=4.2.0
    dj50: Django~=5.0.0
    dj50stable: git+https://github.com/django/django.git@stable/5.0.x#egg=Django
    djmain: git+https://github.com/django/django.git@main#egg=Django

    postgres: psycopg2>=2.6
    mysql: mysqlclient>=1.4,<2
    elasticsearch5: elasticsearch>=5,<6
    elasticsearch5: certifi
    elasticsearch6: elasticsearch>=6.4.0,<7
    elasticsearch6: certifi
    elasticsearch7: elasticsearch>=7,<8
    elasticsearch7: certifi
    elasticsearch8: elasticsearch>=8,<9
    elasticsearch8: certifi

setenv =
    postgres: DATABASE_ENGINE=django.db.backends.postgresql

    mysql: DATABASE_ENGINE=django.db.backends.mysql
    mysql: DATABASE_HOST=localhost
    mysql: DATABASE_USER=root

    sqlite: DATABASE_NAME=wagtail.db

    emailuser: USE_EMAIL_USER_MODEL=yes
    notz: DISABLE_TIMEZONE=yes

    # Specific for Appveyor, see:
    # https://www.appveyor.com/docs/services-databases/#sql-server-2016
    mssql: DATABASE_ENGINE=sql_server.pyodbc
    mssql: DATABASE_HOST=(local)\SQL2016
    mssql: DATABASE_NAME=master
    mssql: DATABASE_USER=sa
    mssql: DATABASE_PASSWORD=Password12!