# tox (https://tox.readthedocs.io/) is a tool for running tests
# in multiple virtualenvs. This configuration file will run the
# test suite on all supported python versions. To use it, "pip install tox"
# and then run "tox" from this directory.

[tox]
envlist =
    py38
    docs
    style
skip_missing_interpreters = True

[testenv]
description = Run tests and basic automatic issue checking.
whitelist_externals =
    pytest
    pylint
extras = voice, test
commands =
    python -m compileall ./redbot/cogs
    pytest
#    pylint ./redbot

[testenv:postgres]
description = Run pytest with PostgreSQL backend
whitelist_externals =
    pytest
extras = voice, test, postgres
setenv =
    RED_STORAGE_TYPE=postgres
passenv =
    # Use the following env vars for connection options, or other default options described here:
    # https://magicstack.github.io/asyncpg/current/index.html#asyncpg.connection.connect
    PGHOST
    PGPORT
    PGUSER
    PGPASSWORD
    PGDATABASE
commands =
    pytest

[testenv:docs]
description = Attempt to build docs with sphinx-build
whitelist_externals =
    sphinx-build
    make
setenv =
    # This is just for Windows
    # Prioritise make.bat over any make.exe which might be on PATH
    PATHEXT=.BAT;.EXE
basepython = python3.8
extras = docs
commands =
    sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out/html" -W -bhtml
    sphinx-build -d "{toxworkdir}/docs_doctree" docs "{toxworkdir}/docs_out/doctest" -W -bdoctest

[testenv:style]
description = Stylecheck the code with black to see if anything needs changes.
whitelist_externals =
    make
setenv =
    # This is just for Windows
    # Prioritise make.bat over any make.exe which might be on PATH
    PATHEXT=.BAT;.EXE
basepython = python3.8
extras = style
commands =
    make stylediff
