99 lines
3.1 KiB
INI
99 lines
3.1 KiB
INI
[tox]
|
|
envlist = flake8,py2,py3,bandit
|
|
|
|
[testenv:flake8]
|
|
deps =
|
|
flake8
|
|
flake8-import-order
|
|
# 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
|
|
# dtto with for newer tox
|
|
allowlist_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
|
|
# We need to access python-rpm, at least, and potentially more on EL6
|
|
sitepackages = true
|
|
setenv =
|
|
COLUMNS=80
|
|
# Expected that python-rpm is installed on the host
|
|
# 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.
|
|
#
|
|
# COLUMNS setting is propagated to optparse and ensures that formatted text
|
|
# is same in the CLI output on all platforms
|
|
commands_pre =
|
|
{envbindir}/python -c "import rpm"
|
|
|
|
[testenv:py3]
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
setenv =
|
|
{[testenv]setenv}
|
|
PYTHONPATH=.:plugins/hub/.:plugins/builder/.:plugins/cli/.:cli/.:www/lib
|
|
commands_pre =
|
|
{[testenv]commands_pre}
|
|
python -m coverage erase --rcfile .coveragerc3
|
|
commands =
|
|
python -m pytest -n auto --cov --cov-config .coveragerc3 --cov-report=html
|
|
|
|
[testenv:py2]
|
|
deps =
|
|
-r{toxinidir}/test-requirements.txt
|
|
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_lib \
|
|
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 \
|
|
tests/test_plugins/test_sidetag_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]
|
|
# These two lines just speed things up by avoiding unnecessary setup
|
|
skip_install=true
|
|
usedevelop=true
|
|
# 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
|
|
allowlist_externals = bandit
|
|
commands =
|
|
bandit -ll -s B108,B608 -r \
|
|
builder cli kojihub koji plugins util vm www \
|
|
builder/kojid \
|
|
cli/koji \
|
|
util/koji-gc util/kojira util/koji-shadow util/koji-sweep-db \
|
|
vm/kojivmd
|