# Tox (http://tox.testrun.org/) 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 = black-format,flake8,pydocstyle,py{36,37,38}

[flake8]
max-line-length = 120
exclude =
    build/
    .git
    __pycache__
    .tox
    venv/

max-complexity = 10

ignore =
    C901,
    E203,  # whitespace before ':': Black disagrees with and explicitly violates this.
    FI10,
    FI12,
    FI13,
    FI14,
    FI15,
    FI16,
    FI17,
    FI18,  # __future__ import "annotations" missing -> check only Python 3.7 compatible
    FI50,
    FI51,
    FI52,
    FI53,
    FI54,
    FI55,
    FI56,
    FI57,
    W503

require-code = True

[testenv]
commands =
    pytest --cov=pipelines --cov-append {posargs}
    coverage report --fail-under=0
deps = .[test]
depends =
    {py36,py37,py38}: clean

[testenv:flake8]
skipdist = true
skip_install = true
deps = flake8
commands = flake8

[testenv:black-format]
deps = black
commands =
    black -l 100 ./

[testenv:black-check]
deps = black
commands =
    black -l 100 --check ./

[testenv:clean]
skip_install = true
deps = coverage
commands = coverage erase

[testenv:pydocstyle]
deps = pydocstyle
commands = 
    pydocstyle pipelines