89 lines
2.8 KiB
INI
89 lines
2.8 KiB
INI
[tox]
|
|
envlist = flake8,py2,py3,bandit
|
|
|
|
[testenv:flake8]
|
|
deps =
|
|
flake8
|
|
# On EL6, pip would get us a flake8 that doesn't work with python2.6. The next
|
|
# two lines let us use an RPM-based version from EPEL if it is installed
|
|
sitepackages = true
|
|
whitelist_externals = flake8
|
|
# These two lines just speed things up by avoiding unnecessary setup
|
|
skip_install=true
|
|
usedevelop=true
|
|
commands =
|
|
flake8
|
|
|
|
[testenv]
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
# We need to access python-rpm, at least, and potentially more on EL6
|
|
sitepackages = true
|
|
# Tell the rpm-py-installer package to download binaries instead of building
|
|
# from source
|
|
setenv =
|
|
RPM_PY_INSTALL_BIN=true
|
|
# If rpm's python bindings are missing, don't continue
|
|
# Also, because coverage might be installed system-wide and it serves as our
|
|
# entry point, let's make sure it's installed in the virtualenv.
|
|
commands_pre =
|
|
{envbindir}/python -c "import rpm"
|
|
pip install -I coverage
|
|
|
|
[testenv:py3]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHONPATH=hub/.:plugins/hub/.:plugins/builder/.:plugins/cli/.:cli/.:www/lib
|
|
commands_pre =
|
|
{[testenv]commands_pre}
|
|
{envbindir}/coverage3 erase --rcfile .coveragerc3
|
|
commands =
|
|
{envbindir}/coverage3 run --rcfile .coveragerc3 --source . -m pytest {posargs}
|
|
{envbindir}/coverage3 report --rcfile .coveragerc3
|
|
{envbindir}/coverage3 html -d {toxinidir}/htmlcov/py3 --rcfile .coveragerc3
|
|
|
|
[testenv:py2]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHONPATH=.:plugins/builder/.:plugins/cli/.:cli/.:www/lib
|
|
PYTHONHASHSEED=0
|
|
commands_pre =
|
|
{[testenv]commands_pre}
|
|
{envbindir}/coverage2 erase
|
|
commands =
|
|
{envbindir}/coverage2 run --source . -m pytest {posargs:\
|
|
tests/test_builder tests/test_cli \
|
|
tests/test_plugins/test_runroot_builder.py \
|
|
tests/test_plugins/test_save_failed_tree_builder.py \
|
|
tests/test_plugins/test_runroot_cli.py \
|
|
tests/test_plugins/test_save_failed_tree_cli.py}
|
|
{envbindir}/coverage2 report
|
|
{envbindir}/coverage2 html -d {toxinidir}/htmlcov/py2
|
|
|
|
# This is identical to the py2 testenv, but without attempting to install
|
|
# dependencies from requirements.txt. In practice this will mean RPM-based
|
|
# dependencies must be installed.
|
|
[testenv:py2-rpmdeps]
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
setenv =
|
|
{[testenv:py2]setenv}
|
|
commands_pre =
|
|
{[testenv:py2]commands_pre}
|
|
commands =
|
|
{[testenv:py2]commands}
|
|
|
|
[testenv:bandit]
|
|
# B108 - Insecure usage of temp - we're very often handling it in non-standard way
|
|
# (temp inside mock, etc)
|
|
# B608 - hardcoded SQL - not everything is turned into Processors
|
|
deps =
|
|
bandit
|
|
commands =
|
|
bandit -ll -s B108,B608 -r \
|
|
builder cli hub koji plugins util vm www \
|
|
builder/kojid \
|
|
cli/koji \
|
|
util/koji-gc util/kojira util/koji-shadow util/koji-sweep-db \
|
|
vm/kojivmd
|