# 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} . [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 --ignore= --select=E,W,F,C,D,A,G,B,I,T,DUO [coverage:paths] source = ./ .tox/**/site-packages/ [coverage:run] branch = True omit = **/_version.py [flake8] enable-extensions = G exclude = .tox/ versioneer.py _version.py instance/ ignore = T101 max-complexity = 10 max-line-length = 120 [isort] line_length = 120 [pytest] python_files = *_tests.py tests.py test_*.py