You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
2.4 KiB
104 lines
2.4 KiB
# 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 = begin,py38,py39,py310,coverage,security,lint,bundle |
|
|
|
[testenv] |
|
# build a wheel and test it |
|
wheel = true |
|
wheel_build_env = build |
|
|
|
# whitelist commands we need |
|
whitelist_externals = cp |
|
|
|
# install everything via requirements-dev.txt, so that developer environment |
|
# is the same as the tox environment (for ease of use/no weird gotchas in |
|
# local dev results vs. tox results) and also to avoid ticky-tacky maintenance |
|
# of "oh this particular env has weird results unless I install foo" --- just |
|
# shotgun blast install everything everywhere |
|
deps = |
|
-rrequirements/requirements-dev.txt |
|
|
|
[testenv:build] |
|
# require setuptools when building |
|
deps = setuptools |
|
|
|
[testenv:begin] |
|
# clean up potential previous coverage runs |
|
skip_install = true |
|
commands = coverage erase |
|
|
|
[testenv:py38] |
|
# run pytest with coverage |
|
commands = |
|
pytest --cov-append --cov={envsitepackagesdir}/incorporealcms/ --cov-branch |
|
|
|
[testenv:py39] |
|
# run pytest with coverage |
|
commands = |
|
pytest --cov-append --cov={envsitepackagesdir}/incorporealcms/ --cov-branch |
|
|
|
[testenv:py310] |
|
# run pytest with coverage |
|
commands = |
|
pytest --cov-append --cov={envsitepackagesdir}/incorporealcms/ --cov-branch |
|
|
|
[testenv:coverage] |
|
# report on coverage runs from above |
|
skip_install = true |
|
commands = |
|
coverage report --fail-under=95 --show-missing |
|
|
|
[testenv:security] |
|
# run security checks |
|
# |
|
# again it seems the most valuable here to run against the packaged code |
|
commands = |
|
bandit {envsitepackagesdir}/incorporealcms/ -r |
|
safety check -r requirements/requirements-dev.txt |
|
|
|
[testenv:lint] |
|
# run style checks |
|
commands = |
|
flake8 |
|
- flake8 --disable-noqa --ignore= --select=E,W,F,C,D,A,G,B,I,T,M,DUO |
|
|
|
[testenv:bundle] |
|
# take extra actions (build sdist, sphinx, whatever) to completely package the app |
|
commands = |
|
cp -r {distdir} . |
|
python setup.py sdist |
|
|
|
[coverage:paths] |
|
source = |
|
./ |
|
.tox/**/site-packages/ |
|
|
|
[coverage:run] |
|
branch = True |
|
|
|
omit = |
|
**/_version.py |
|
|
|
[flake8] |
|
enable-extensions = G,M |
|
exclude = |
|
.tox/ |
|
versioneer.py |
|
_version.py |
|
instance/ |
|
extend-ignore = T101 |
|
max-complexity = 10 |
|
max-line-length = 120 |
|
|
|
[isort] |
|
line_length = 120 |
|
|
|
[pytest] |
|
python_files = |
|
*_tests.py |
|
tests.py |
|
test_*.py
|
|
|