[tox]
requires =
    tox-poetry
    poetry
envlist = check, apply-check, docs, tests, build

[testenv]
whitelist_externals =
    bash

[testenv:check]
commands =
    black --check --diff src/keycloak tests docs
    isort -c --df src/keycloak tests docs
    flake8 src/keycloak tests docs

[testenv:apply-check]
commands =
    black -C src/keycloak tests docs
    black src/keycloak tests docs
    isort src/keycloak tests docs

[testenv:docs]
extras = docs
commands =
    sphinx-build -T -E -W -b html -d _build/doctrees -D language=en ./docs/source _build/html

[testenv:tests]
setenv = file|tox.env
passenv = CONTAINER_HOST
commands =
    ./test_keycloak_init.sh "pytest -vv --cov=keycloak --cov-report term-missing {posargs}"

[testenv:build]
deps = 
    poetry
setenv =
    POETRY_VIRTUALENVS_CREATE = false
commands =
    poetry build --format sdist
    poetry build --format wheel

[flake8]
max-line-length = 99
docstring-convention = all
ignore = D203, D213, W503