[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}