[tox]
envlist =
    py311
    py312

    linters
skipsdist = True

[testenv]
sitepackages = False
deps =
    coverage
    channels[daphne]~=4.0.0
    crispy-bootstrap5~=2023.10
    Django>=5.0,<6.0
    django-crispy-forms~=2.1
    django-filter~=23.5
    git+https://github.com/django-haystack/django-haystack.git#v3.3b1
    django-phonenumber-field~=7.3.0
    django-polymorphic~=3.1.0
    django-tables2~=2.7.0
    djangorestframework~=3.14.0
    django-rest-polymorphic~=0.1.10
    odfpy~=1.4.1
    phonenumbers~=8.13.27
    pypdf~=3.17.4
    python-magic~=0.4.27
    requests~=2.31.0

commands =
    coverage run --source=api,draw,logs,participation,registration,tfjm ./manage.py test api/ draw/ logs/ participation/ registration/ tfjm/
    coverage report -m

[testenv:linters]
deps =
    flake8
    flake8-colors
    flake8-django
    flake8-import-order
    flake8-typing-imports
    pep8-naming
    pyflakes
commands =
    flake8 api/ draw/ logs/ participation/ registration/ tfjm/

[flake8]
exclude =
    .tox,
    .git,
    __pycache__,
    build,
    dist,
    *.pyc,
    *.egg-info,
    .cache,
    .eggs,
    *migrations*
max-complexity = 15
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
