mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-08 07:43:20 +08:00
'rpm' is an optional dependency for kobo, which is required by the integration tests. Previously this dependency was implicitly satisfied by 'koji' pulling in 'rpm-py-installer' which made sure 'rpm' is available. But koji==1.20.0 made this dependency optional, so importing kobo.rpmlib started failing. Fix this by making 'rpm-py-installer' and explicit dependency for the integration test environment. Signed-off-by: Hunor Csomortáni <csomh@redhat.com>
93 lines
2.6 KiB
INI
93 lines
2.6 KiB
INI
# Tox (http://tox.testrun.org/) 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 = flake8, intflake, py27, py3
|
|
|
|
[flake8]
|
|
ignore = E731,W503
|
|
max-line-length = 100
|
|
exclude = .tox,.git,module_build_service/migrations,build,.env
|
|
|
|
[testenv]
|
|
usedevelop = true
|
|
sitepackages = true
|
|
# Allow to switch database backend for running tests.
|
|
passenv = DATABASE_URI
|
|
whitelist_externals =
|
|
flake8
|
|
py.test
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands =
|
|
py.test -v \
|
|
--ignore tests/integration \
|
|
--cov module_build_service \
|
|
--cov-report html \
|
|
--cov-report term \
|
|
-W "ignore:Use .persist_selectable:DeprecationWarning" \
|
|
-W "ignore:The ConnectionEvents.dbapi_error() event is deprecated and will be removed in a future release. Please refer to the ConnectionEvents.handle_error() event.:DeprecationWarning" \
|
|
{posargs}
|
|
|
|
[testenv:coverage]
|
|
basepython = python2
|
|
deps =
|
|
{[testenv]deps}
|
|
coverage
|
|
commands =
|
|
coverage run --parallel-mode -m pytest
|
|
coverage combine
|
|
coverage report --omit=tests/*,.tox/*,/usr/* -m --skip-covered
|
|
|
|
[testenv:flake8]
|
|
basepython = python2
|
|
skip_install = true
|
|
deps = flake8
|
|
# doing this until --extend-exclude support becomes available
|
|
# https://flake8.readthedocs.io/en/latest/user/options.html#cmdoption-flake8-extend-exclude
|
|
commands = flake8 --exclude={[flake8]exclude},tests/integration
|
|
|
|
[testenv:intflake]
|
|
basepython = python3
|
|
skip_install = true
|
|
sitepackages = false
|
|
deps = flake8
|
|
commands = flake8 tests/integration
|
|
|
|
[testenv:bandit]
|
|
basepython = python2
|
|
skip_install = true
|
|
deps = bandit
|
|
commands =
|
|
/bin/bash -c "bandit -r -ll $(find . -mindepth 1 -maxdepth 1 ! -name tests ! -name \.\* -type d -o -name \*.py)"
|
|
ignore_outcome = True
|
|
|
|
[testenv:integration]
|
|
basepython = python3
|
|
skipsdist = true
|
|
skip_install = true
|
|
sitepackages = false
|
|
# let's handle integration test deps separately
|
|
deps =
|
|
kobo
|
|
koji
|
|
pytest
|
|
pytest-html
|
|
pytest-xdist
|
|
PyYAML
|
|
requests
|
|
# rpm is an optional dependency for kobo, rpm-py-installer makes it work
|
|
rpm-py-installer
|
|
sh
|
|
# Set this to /etc/pki/tls/certs/ca-bundle.crt, for example,
|
|
# if the instance tested has a self-signed certificate.
|
|
passenv = REQUESTS_CA_BUNDLE MBS_TEST_CONFIG MBS_TEST_WORKERS HOME
|
|
commands =
|
|
pytest -rA -vv \
|
|
--confcutdir=tests/integration \
|
|
-n {env:MBS_TEST_WORKERS:0} \
|
|
--html=report.html \
|
|
--self-contained-html \
|
|
{posargs:tests/integration}
|