Sorin Sbarnea 539d13e816 Fix flake8 failures and make its execution more consistent
- upgrade flake8 to 3.6.0
- remove use of hacking since pre-commit replaced it
- mentioned minimal flake8 version on pre-commit config
- fixed newer linting errors
- disable W504 as it seems not possible to fix (conflict with W403)
- replaced buggy tox deps installation with native pip install, which
  address the issue of missing to install new deps when the reqs files
  are updated, developer being forced to to recreate the virtualenv.
- prepare for migration from tox-pep8 to tox-linters, now these being
  just aliases.

Change-Id: I310578dce215aaf00a5b2d54716f90da9a1ecb4d
Depends-On: https://review.openstack.org/#/c/613726/
2018-10-28 11:44:43 +00:00

87 lines
2.7 KiB
INI

[tox]
minversion = 2.2
envlist = linters, docs, py34, py35, py36, py27, 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
stestr run --slowest {posargs}
whitelist_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 "
stestr run --slowest {posargs}
[testenv:cover]
setenv =
{[testenv]setenv}
PYTHON=coverage run --source jenkins_jobs --parallel-mode
commands =
{[tox]install_test_deps}
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:linters]
basepython = python3
commands =
{[tox]install_test_deps}
python -m pre_commit run --all
# points to linters, kept only for developer convenience
[testenv:pep8]
envdir={toxworkdir}/linters
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}
python setup.py build_sphinx {posargs}
[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 = python setup.py build_sphinx -b linkcheck
[testenv:venv]
commands = {posargs}