[tox]
envlist = reset,py{27,27-portable,35,36,38,39,310},stats
skip_missing_interpreters = true

[testenv]
setenv =
    BITMESSAGE_HOME = {envtmpdir}
    HOME = {envtmpdir}
    PYTHONWARNINGS = default
deps = -rrequirements.txt
commands =
    python checkdeps.py
    coverage run -a src/bitmessagemain.py -t
    coverage run -a -m tests

[testenv:lint-basic]
basepython = python3
deps =
    bandit
    flake8
commands =
    bandit -r --exit-zero -s B105,B301,B411,B413,B608 \
    -x checkdeps.*,bitmessagecurses,bitmessageqt,tests pybitmessage
    flake8 pybitmessage --count --select=E9,F63,F7,F82 \
    --show-source --statistics

[testenv:py27]
sitepackages = true

[testenv:py27-doc]
deps =
    .[docs]
    -r docs/requirements.txt
commands = python setup.py build_sphinx

[testenv:py27-portable]
skip_install = true
commands = python pybitmessage/bitmessagemain.py -t

[testenv:reset]
deps = coverage
commands = coverage erase

[testenv:stats]
deps = coverage
commands =
    coverage report
    coverage xml

[coverage:run]
source = src
omit =
    tests.py
    */tests/*
    src/bitmessagekivy/*
    src/version.py
    src/fallback/umsgpack/*

[coverage:report]
ignore_errors = true