with pytest not being included in the lint environment, flake8-isort didn't know how to treat it vs. incorporealcms imports, leading to false positives only inside tox. this makes it so that certain packages (defined in base deps) can be imported in any/all envs, because they show up in analyzed/imported/etc code rather than being merely tools
93 lines
1.8 KiB
INI
93 lines
1.8 KiB
INI
# tox (https://tox.readthedocs.io/) 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 = py37,security,lint
|
|
|
|
[testenv]
|
|
# build a wheel and test it
|
|
wheel = true
|
|
wheel_build_env = build
|
|
|
|
# whitelist commands we need
|
|
whitelist_externals = ln
|
|
|
|
# for environment sanity, things that are in written code being security
|
|
# checked, linted, etc., but are not part of the installed package, should
|
|
# go here, so that all envs may benefit from them
|
|
[base]
|
|
deps =
|
|
pytest
|
|
|
|
[testenv:build]
|
|
# require setuptools when building
|
|
deps = setuptools
|
|
|
|
[testenv:py37]
|
|
# run pytest with coverage
|
|
deps =
|
|
pytest-cov
|
|
{[base]deps}
|
|
commands =
|
|
pytest --cov={envsitepackagesdir}/incorporealcms/ \
|
|
--cov-report=term-missing --cov-branch --cov-fail-under=90
|
|
ln -sf {distdir} dist
|
|
|
|
[testenv:security]
|
|
# run security checks
|
|
#
|
|
# again it seems the most valuable here to run against the packaged code
|
|
deps =
|
|
bandit
|
|
{[base]deps}
|
|
commands =
|
|
bandit {envsitepackagesdir}/incorporealcms/ -r
|
|
|
|
[testenv:lint]
|
|
# run style checks
|
|
skip_install = true
|
|
deps =
|
|
dlint
|
|
flake8
|
|
flake8-blind-except
|
|
flake8-builtins
|
|
flake8-docstrings
|
|
flake8-executable
|
|
flake8-fixme
|
|
flake8-isort
|
|
flake8-logging-format
|
|
{[base]deps}
|
|
commands =
|
|
flake8
|
|
- flake8 --disable-noqa --select=E,W,F,C,D,A,G,B,I,DUO
|
|
|
|
[coverage:paths]
|
|
source =
|
|
./
|
|
.tox/**/site-packages/
|
|
|
|
[coverage:run]
|
|
branch = True
|
|
omit =
|
|
**/_version.py
|
|
|
|
[flake8]
|
|
exclude =
|
|
.tox/
|
|
versioneer.py
|
|
_version.py
|
|
instance/
|
|
max-complexity = 10
|
|
max-line-length = 120
|
|
|
|
[isort]
|
|
line_length = 120
|
|
|
|
[pytest]
|
|
python_files =
|
|
*_tests.py
|
|
tests.py
|
|
test_*.py
|