[tox] minversion = 2.0 skipsdist = True envlist = py3,py27,functional,pep8 [testenv] usedevelop = True install_command = pip install -U -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt} {opts} {packages} setenv = VIRTUAL_ENV={envdir} PYTHONDONTWRITEBYTECODE = 1 OS_TEST_PATH=./ironic_python_agent/tests/unit LANGUAGE=en_US LC_ALL=en_US.utf-8 deps = -r{toxinidir}/test-requirements.txt commands = stestr run {posargs} [testenv:functional] basepython = python3 usedevelop = True # Define virtualenv directory, port to use for functional testing, and number # of seconds to wait for the agent to come alive during functional testing. setenv = VIRTUAL_ENV={envdir} PYTHONDONTWRITEBYTECODE = 1 OS_TEST_PATH=./ironic_python_agent/tests/functional TEST_PORT=9999 IPA_WAIT_TRIES=100 commands = stestr run {posargs} [testenv:pep8] basepython = python3 whitelist_externals = bash commands = flake8 {posargs:ironic_python_agent imagebuild} # Run bashate during pep8 runs to ensure violations are caught by # the check and gate queues. {toxinidir}/tools/run_bashate.sh {toxinidir} doc8 doc/source README.rst [testenv:cover] basepython = python3 setenv = VIRTUAL_ENV={envdir} PYTHON=coverage run --source ironic_python_agent --omit='*tests*' --parallel-mode commands = coverage erase stestr run {posargs} coverage combine coverage report --omit='*tests*' coverage html -d ./cover --omit='*tests*' [testenv:venv] basepython = python3 setenv = PYTHONHASHSEED=0 commands = {posargs:} [testenv:debug] basepython = python3 envdir = {toxworkdir}/venv commands = oslo_debug_helper -t ironic_python_agent/tests/unit {posargs} [testenv:devenv] basepython = python3 envdir = devenv usedevelop = True [testenv:docs] basepython = python3 setenv = PYTHONHASHSEED=0 sitepackages = False commands = python setup.py build_sphinx [testenv:releasenotes] basepython = python3 commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [flake8] # [E129] visually indented line with same indent as next logical line. # [W503] Line break before binary operator. ignore = E129,W503 exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,imagebuild/tinyipa/tinyipafinal,imagebuild/tinyipa/tinyipabuild import-order-style = pep8 application-import-names = ironic_python_agent # [H106] Don't put vim configuration in source files. # [H203] Use assertIs(Not)None to check for None. # [H204] Use assert(Not)Equal to check for equality. # [H205] Use assert(Greater|Less)(Equal) for comparison. # [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls # [H904] Delay string interpolations at logging calls. enable-extensions=H106,H203,H204,H205,H210,H904 [hacking] import_exceptions = ironic.openstack.common.gettextutils._,testtools.matchers [testenv:checkconfig] basepython = python3 sitepackages = False envdir = {toxworkdir}/venv commands = {toxinidir}/tools/config/check_uptodate.sh [testenv:genconfig] basepython = python3 sitepackages = False envdir = {toxworkdir}/venv commands = oslo-config-generator --config-file=tools/config/ipa-config-generator.conf [testenv:lower-constraints] basepython = python3 deps = -c{toxinidir}/lower-constraints.txt -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt [testenv:bandit] basepython = python3 deps = -r{toxinidir}/test-requirements.txt commands = bandit -r ironic_python_agent -x tests -n5 -ll -c tools/bandit.yml