Update toxfile with new environments and test automation

Add proper testenv with pytest command to run (currently trivial) tests
Update static and security envs to use variable for path identification
  * Avoids transversals and errors caused by different working dirs
Add static-tests env for enforcing quality checks on test files
Update security env to include test files
This commit is contained in:
Ethan Paul 2020-09-24 21:55:23 -04:00
parent b95ad7a3a0
commit 31fc3e6bb1
No known key found for this signature in database
GPG Key ID: C5F5542B54A4D9C6

54
tox.ini
View File

@ -1,17 +1,19 @@
[tox]
envlist = py36, py37, py38, static, security
envlist = py36, py37, py38, static, static-tests, security
isolated_build = true
[testenv]
description = Run the tests
deps =
requests
pytest
pytest-cov
toml
commands =
pip freeze
pytest --cov tox_poetry_installer --cov-config {toxinidir}/.coveragerc tests/ --cov-report term-missing
[testenv:static]
description = Static code quality checks and formatting enforcement
basepython = python3.7
description = Static formatting and quality enforcement
basepython = python3.8
ignore_errors = true
deps =
pylint
@ -20,21 +22,41 @@ deps =
reorder-python-imports
pre-commit
commands =
black tox_poetry_installer.py
reorder-python-imports tox_poetry_installer.py
pylint tox_poetry_installer.py
mypy tox_poetry_installer.py --ignore-missing-imports --no-strict-optional
black {toxinidir}/tox_poetry_installer.py
reorder-python-imports {toxinidir}/tox_poetry_installer.py
pre-commit run --all-files
pylint --rcfile {toxinidir}/.pylintrc {toxinidir}/tox_poetry_installer.py
mypy --ignore-missing-imports --no-strict-optional {toxinidir}/tox_poetry_installer.py
[testenv:security]
description = Security checks
basepython = python3.7
ignore_errors = true
[testenv:static-tests]
description = Static formatting and quality enforcement for the tests
basepython = python3.8
ingore_errors = true
deps =
bandit
safety
pylint
mypy
black
reorder-python-imports
allowlist_externals =
bash
commands =
bandit tox_poetry_installer.py --recursive
black {toxinidir}/tests/
bash -c "reorder-python-imports {toxinidir}/tests/*.py --unclassifiable-application-module tox_poetry_installer"
pylint --rcfile {toxinidir}/.pylintrc {toxinidir}/tests/
mypy --ignore-missing-imports --no-strict-optional {toxinidir}/tests/
[testenv:security]
description = Security checks
basepython = python3.8
ignore_errors = true
skip_install = true
deps =
bandit
safety
poetry
allowlist_externals =
bash
commands =
bandit --recursive {toxinidir}/tox_poetry_installer.py
bash -c "bandit --skip B101 {toxinidir}/tests/*.py"
bash -c "poetry export --format requirements.txt --without-hashes --dev | safety check --stdin --bare"