35a75d28e5
Change-Id: I4db0a458e054becc924726f25fff2cf0a80f3cc9
89 lines
2.8 KiB
INI
89 lines
2.8 KiB
INI
[tox]
|
|
minversion = 2.2
|
|
envlist = linters, docs, docs-linkcheck, py37, py38, py39, py310, py311, cover
|
|
skip_missing_interpreters = true
|
|
# custom vars (no meaning to tox)
|
|
install_test_deps = pip install -q -r test-requirements.txt
|
|
|
|
[testenv]
|
|
setenv =
|
|
LANG=en_US.UTF-8
|
|
PYTHONDONTWRITEBYTECODE=1
|
|
SUBUNIT_FORMATTER=tee testr_subunit_log
|
|
VIRTUAL_ENV={envdir}
|
|
usedevelop = True
|
|
install_command = pip install {opts} {packages}
|
|
# cleanup is needed mostly for dev environmnts and assures that if dev
|
|
# is switching branch, no lefovers will impact execution.
|
|
# No git commands here because test should run even from a source archive.
|
|
commands =
|
|
{[tox]install_test_deps}
|
|
- find . -type f -name "*.pyc" -delete
|
|
- find . -type d -name "__pycache__" -delete
|
|
# test that we can call jjb using both variants with same results
|
|
bash {toxinidir}/tools/test-commands.sh
|
|
pytest {posargs}
|
|
allowlist_externals =
|
|
bash
|
|
find
|
|
|
|
[testenv:tips]
|
|
# tests what happens with unreleased version of dependencies, like python-jenkins
|
|
install_command = pip install -U {opts} {packages}
|
|
commands =
|
|
bash -c "if [ -d {toxinidir}/../python-jenkins ]; then \
|
|
pip install -q -U -e 'git+file://{toxinidir}/../python-jenkins#egg=python-jenkins' ; else \
|
|
pip install -q -U -e 'git+https://git.openstack.org/openstack/python-jenkins@master#egg=python-jenkins' ; fi "
|
|
pytest {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
{[testenv]setenv}
|
|
commands =
|
|
{[tox]install_test_deps}
|
|
coverage run --source jenkins_jobs -m pytest {posargs}
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
|
|
[testenv:linters]
|
|
basepython = python3
|
|
deps =
|
|
pre-commit>=1.12.0
|
|
commands =
|
|
python -m pre_commit run --all
|
|
|
|
# points to linters, kept only for developer convenience
|
|
[testenv:pep8]
|
|
envdir={toxworkdir}/linters
|
|
deps={[testenv:linters]deps}
|
|
commands = {[testenv:linters]commands}
|
|
|
|
[testenv:pyflakes]
|
|
deps = pyflakes
|
|
commands = pyflakes jenkins_jobs tests setup.py
|
|
|
|
[testenv:compare-xml-config]
|
|
commands = jenkins-jobs {posargs:test -o .test/run-conf/default/out/ .test/run-conf/config/}
|
|
|
|
[testenv:compare-xml-old]
|
|
commands = jenkins-jobs test -o .test/old/out/ .test/old/config/
|
|
|
|
[testenv:compare-xml-new]
|
|
commands = jenkins-jobs test -o .test/new/out/ .test/new/config/
|
|
|
|
[testenv:docs]
|
|
commands =
|
|
{[tox]install_test_deps}
|
|
sphinx-build -n -W -b html -d doc/build/doctrees doc/source doc/build/html
|
|
|
|
[testenv:docs-linkcheck]
|
|
# If you are behind a proxy, for this test to work you will need to set
|
|
# TOX_TESTENV_PASSENV="http_proxy https_proxy no_proxy ..." to pass
|
|
# through the proxy environment settings to be able to validate any urls.
|
|
commands =
|
|
{[tox]install_test_deps}
|
|
sphinx-build -n -W -b linkcheck -d doc/build/doctrees doc/source doc/build/linkcheck
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|