[tox] envlist = flake8, pylint, mypy, vulture, pytest, eslint, htmlhint, shellcheck skipsdist = true [testenv] basepython = python3.10 sitepackages = true changedir = /src [testenv:flake8] whitelist_externals = bash commands = bash -c 'flake8 --config=testenv/linters/flake8.ini kvmd testenv/tests *.py' deps = flake8 flake8-quotes -rrequirements.txt [testenv:pylint] whitelist_externals = bash commands = bash -c 'pylint -j2 --rcfile=testenv/linters/pylint.ini --output-format=colorized --reports=no kvmd testenv/tests *.py' deps = astroid==2.7.3 pylint pytest pytest-asyncio aiohttp-basicauth -rrequirements.txt [testenv:mypy] whitelist_externals = bash commands = bash -c 'mypy --config-file=testenv/linters/mypy.ini --cache-dir=testenv/.mypy_cache kvmd testenv/tests *.py' deps = mypy -rrequirements.txt [testenv:vulture] whitelist_externals = bash commands = bash -c 'vulture --ignore-names=_format_P,Plugin --ignore-decorators=@exposed_http,@exposed_ws,@pytest.fixture kvmd testenv/tests *.py testenv/linters/vulture-wl.py' deps = vulture -rrequirements.txt [testenv:pytest] commands = py.test -vv --cov-config=testenv/linters/coverage.ini --cov-report=term-missing --cov=kvmd testenv/tests setenv = PYTHONPATH=/src deps = pytest pytest-cov pytest-mock pytest-asyncio pytest-aiohttp aiohttp-basicauth -rrequirements.txt [testenv:eslint] whitelist_externals = eslint commands = eslint --cache-location=/tmp --config=testenv/linters/eslintrc.yaml --color --ext .js web/share/js [testenv:htmlhint] whitelist_externals = htmlhint commands = htmlhint --config=testenv/linters/htmlhint.json web/*.html web/*/*.html [testenv:shellcheck] whitelist_externals = bash commands = bash -c 'shellcheck --color=always kvmd.install scripts/*'