[tox] envlist = py27, py3, xenial, pycodestyle, pyflakes, pylint recreate = True [testenv] commands = python -m nose {posargs:tests/unittests cloudinit} setenv = LC_ALL = en_US.utf-8 passenv= NOSE_VERBOSE [testenv:pycodestyle] basepython = python3 deps = pycodestyle==2.4.0 commands = {envpython} -m pycodestyle {posargs:cloudinit/ tests/ tools/} # https://github.com/gabrielfalcao/HTTPretty/issues/223 setenv = LC_ALL = en_US.utf-8 [testenv:pylint] basepython = python3 deps = # requirements pylint==2.3.1 # test-requirements because unit tests are now present in cloudinit tree -r{toxinidir}/test-requirements.txt -r{toxinidir}/integration-requirements.txt commands = {envpython} -m pylint {posargs:cloudinit tests tools} [testenv:py3] basepython = python3 deps = nose-timer -r{toxinidir}/test-requirements.txt commands = {envpython} -m nose --with-timer --timer-top-n 10 \ {posargs:--with-coverage --cover-erase --cover-branches \ --cover-inclusive --cover-package=cloudinit \ tests/unittests cloudinit} [testenv:py27] basepython = python2.7 deps = -r{toxinidir}/test-requirements.txt [testenv:py26] deps = -r{toxinidir}/test-requirements.txt commands = nosetests {posargs:tests/unittests cloudinit} setenv = LC_ALL = C [flake8] #H102 Apache 2.0 license header not found ignore=H404,H405,H105,H301,H104,H403,H101,H102,H106,H304 exclude = .venv,.tox,dist,doc,*egg,.git,build,tools [testenv:doc] basepython = python3 deps = -r{toxinidir}/doc-requirements.txt commands = {envpython} -m sphinx {posargs:doc/rtd doc/rtd_html} doc8 doc/rtd [testenv:xenial] commands = python ./tools/pipremove jsonschema python -m nose {posargs:tests/unittests cloudinit} basepython = python3 deps = # requirements jinja2==2.8 pyyaml==3.11 oauthlib==1.0.3 pyserial==3.0.1 configobj==5.0.6 requests==2.9.1 # jsonpatch in xenial is 1.10, not 1.19 (#839779). The oldest version # to work with python3.6 is 1.16 as found in Artful. To keep default # invocation of 'tox' happy, accept the difference in version here. jsonpatch==1.16 six==1.10.0 # test-requirements httpretty==0.9.6 mock==1.3.0 nose==1.3.7 unittest2==1.1.0 contextlib2==0.5.1 [testenv:centos6] basepython = python2.6 commands = nosetests {posargs:tests/unittests cloudinit} deps = # requirements argparse==1.2.1 jinja2==2.2.1 pyyaml==3.10 oauthlib==0.6.0 configobj==4.6.0 requests==2.6.0 jsonpatch==1.2 six==1.9.0 -r{toxinidir}/test-requirements.txt [testenv:opensusel150] basepython = python2.7 commands = nosetests {posargs:tests/unittests cloudinit} deps = # requirements jinja2==2.10 PyYAML==3.12 oauthlib==2.0.6 configobj==5.0.6 requests==2.18.4 jsonpatch==1.16 six==1.11.0 -r{toxinidir}/test-requirements.txt [testenv:tip-pycodestyle] commands = {envpython} -m pycodestyle {posargs:cloudinit/ tests/ tools/} deps = pycodestyle [testenv:pyflakes] commands = {envpython} -m pyflakes {posargs:cloudinit/ tests/ tools/} deps = pyflakes==1.6.0 [testenv:tip-pyflakes] commands = {envpython} -m pyflakes {posargs:cloudinit/ tests/ tools/} deps = pyflakes [testenv:tip-pylint] commands = {envpython} -m pylint {posargs:cloudinit tests tools} deps = # requirements pylint # test-requirements -r{toxinidir}/test-requirements.txt -r{toxinidir}/integration-requirements.txt [testenv:citest] basepython = python3 commands = {envpython} -m tests.cloud_tests {posargs} passenv = HOME deps = -r{toxinidir}/integration-requirements.txt