mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-02-02 12:49:03 +08:00
104 lines
2.8 KiB
INI
104 lines
2.8 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, bandit
|
|
|
|
[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 \
|
|
--ignore tests/test_memory \
|
|
--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 = python3
|
|
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
|
|
requests_kerberos
|
|
# 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}
|
|
|
|
[testenv:memory]
|
|
basepython = python3
|
|
deps = {[testenv]deps}
|
|
passenv =
|
|
MBS_TEST_INSTANCE_PID
|
|
DATABASE_URI
|
|
commands =
|
|
py.test -rA {posargs:tests/test_memory --show-capture=no}
|