[tox]
envlist =
    # Debian Buster Python
    py37-django22

    # Ubuntu 20.04 Python
    py38-django22

    linters
skipsdist = True

[testenv]
setenv =
	PYTHONWARNINGS = all
deps =
    -r{toxinidir}/requirements/base.txt
    -r{toxinidir}/requirements/cas.txt
    -r{toxinidir}/requirements/production.txt
    coverage
commands =
    ./manage.py makemigrations
    coverage run --omit='*migrations*' --source=apps,note_kfet ./manage.py test apps/
    coverage report -m

[testenv:linters]
deps =
    -r{toxinidir}/requirements/base.txt
    -r{toxinidir}/requirements/cas.txt
    -r{toxinidir}/requirements/production.txt
    flake8
    flake8-colors
    flake8-import-order
    flake8-typing-imports
    pep8-naming
    pyflakes
commands =
    flake8 apps/activity apps/api apps/logs apps/member apps/note apps/permission apps/treasury apps/wei

[flake8]
# Ignore too many errors, should be reduced in the future
ignore = D203, W503, E203, I100, I101, C901
exclude =
    .tox,
    .git,
    __pycache__,
    build,
    dist,
    *.pyc,
    *.egg-info,
    .cache,
    .eggs,
    *migrations*
max-complexity = 10
max-line-length = 160
import-order-style = google
application-import-names = flake8
format = ${cyan}%(path)s${reset}:${yellow_bold}%(row)d${reset}:${green_bold}%(col)d${reset}: ${red_bold}%(code)s${reset} %(text)s
