minversion = 1.6
skipsdist = True
#envlist = py35,py27,functional,pep8
-envlist = py27,pep8
+envlist = py3,pep8,pep8diff
[testenv]
+basepython=python3
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
-install_command = pip install -U {opts} {packages}
+install_command = pip install --no-cache-dir -U {opts} {packages}
usedevelop = True
setenv = VIRTUAL_ENV={envdir}
OS_TEST_PATH=conductor/tests/unit
passenv = OS_TEST_TIMEOUT OS_STDOUT_CAPTURE OS_STDERR_CAPTURE OS_LOG_CAPTURE
commands =
- {toxinidir}/tools/pretty_tox.sh "{posargs}"
+ coverage run --module pytest --junitxml xunit-results.xml
oslo-config-generator --config-file=etc/conductor/conductor-config-generator.conf
whitelist_externals = bash
find
coverage erase
find . -type f -name "*.pyc" -delete
find . -type f -name ".coverage.*" -delete
- {toxinidir}/tools/pretty_tox.sh "{posargs}"
- coverage combine
+ coverage run --module pytest --junitxml xunit-results.xml
coverage html -d cover
coverage xml -o cover/coverage.xml
- coverage report --omit=".tox/py27/*","conductor/tests/*"
+ coverage report --omit=".tox/*","conductor/tests/*"
[testenv:pep8]
-deps = hacking<0.12,>=0.11.0
+deps = hacking>=2.0.0
commands =
- flake8
+ flake8 --exit-zero
+
+[testenv:pep8diff]
+deps = hacking>=2.0.0
+commands =
+ bash -c "files=$(git diff HEAD^ HEAD --relative --diff-filter=d --name-only | grep -E '(^conductor\/)'| grep -E '*\.py$'); if [[ -z $files ]]; then exit 0; else flake8 $files; fi"
[testenv:genconfig]
commands = oslo-config-generator --config-file=etc/conductor/conductor-config-generator.conf
commands = bash -x oslo_debug_helper {posargs}
[flake8]
-ignore = H301,E401,E226,E302,E41,E303,E501,E265,E125,E101,E131,E127,E306,
-exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,install-guide
+select = E,H,W,F
+max-line-length = 119
+exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,install-guide,*/tests/*,__init__.py,conductor/data/service.py
show-source = True
+ignore = W503 H904 #conflict with W504
+per-file-ignores = conductor/data/plugins/inventory_provider/aai.py:F821, conductor/common/sms.py:F401
[hacking]
import_exceptions = conductor.common.i18n