c72cf50c08
The upstream OpenStack default node type changed yesterday from Ubuntu Xenial to Bionic. We have a number of jobs pegged directly to py35 which is no longer available in Bionic. We can either pin the py35 jobs to Xenial nodes or update them to py36 or py37. OpenStack is supporting both of those for the Stein release, since StarlingX does not have any position on Python 3 versions (yet!) I am suggesting we move straight to py37 and in the case of issues now make these jobs non-voting until any incompatibilities are resolved. Change-Id: I99b6fdb4fe319e51fc5bf0a2d33e67c57bfec01f Signed-off-by: Dean Troyer <dtroyer@gmail.com>
171 lines
5.2 KiB
INI
171 lines
5.2 KiB
INI
#
|
||
# Copyright (c) 2018 Wind River Systems, Inc.
|
||
#
|
||
# SPDX-License-Identifier: Apache-2.0
|
||
#
|
||
|
||
# Tox (http://tox.testrun.org/) is a tool for running tests
|
||
# in multiple virtualenvs. This configuration file will run the
|
||
# test suite on all supported python versions. To use it, "pip install tox"
|
||
# and then run "tox" from this directory.
|
||
[tox]
|
||
envlist = linters,pep8,py27,py37,pylint
|
||
minversion = 2.3
|
||
skipsdist = True
|
||
|
||
[testenv]
|
||
install_command = pip install -U {opts} {packages}
|
||
setenv = VIRTUAL_ENV={envdir}
|
||
OS_STDOUT_CAPTURE=1
|
||
OS_STDERR_CAPTURE=1
|
||
OS_TEST_TIMEOUT=60
|
||
PYTHONDONTWRITEBYTECODE=True
|
||
cgcs_patch_dir = {toxinidir}/cgcs-patch/cgcs-patch
|
||
cgcs_patch_src_dir = {[testenv]cgcs_patch_dir}/cgcs_patch
|
||
patch_alarm_dir = {toxinidir}/patch-alarm/patch-alarm
|
||
patch_alarm_src_dir = {[testenv]patch_alarm_dir}/patch_alarm
|
||
tsconfig_dir = {toxinidir}/tsconfig/tsconfig
|
||
tsconfig_src_dir = {[testenv]tsconfig_dir}/tsconfig
|
||
commands = find {toxinidir} -type f -not -path '{toxinidir}/.tox/*' -not -path '*/__pycache__/*' -name '*.py[c|o]' -delete
|
||
deps = -r{toxinidir}/requirements.txt
|
||
-r{toxinidir}/test-requirements.txt
|
||
{[testenv]cgcs_patch_dir}
|
||
{[testenv]patch_alarm_dir}
|
||
{[testenv]tsconfig_dir}
|
||
|
||
[testenv:linters]
|
||
basepython = python3
|
||
whitelist_externals = bash
|
||
commands =
|
||
bash -c "find {toxinidir} \
|
||
-not \( -type d -name .?\* -prune \) \
|
||
-type f \
|
||
-not -name \*~ \
|
||
-not -name \*.md \
|
||
\( \
|
||
-name \*.sh \
|
||
-or -not -wholename \*/devstack/files/\* \
|
||
-wholename \*/devstack/\* \
|
||
\) \
|
||
-print0 | xargs -0 bashate -v -e 'E*' -iE006"
|
||
bash -c "find {toxinidir} \
|
||
\( -name .tox -prune \) \
|
||
-o -type f -name '*.yaml' \
|
||
-print0 | xargs -0 yamllint"
|
||
|
||
[flake8]
|
||
# ignore below errors , will fix flake8 errors in future
|
||
# H101 Use TODO(NAME)
|
||
# H102 Apache 2.0 license header not found
|
||
# H105 Don't use author tags
|
||
# H237 module posixfile is removed in Python 3
|
||
# H238 old style class declaration
|
||
# H306 imports not in alphabetical order
|
||
# H401 docstring should not start with a space
|
||
# H404 multi line docstring should start without a leading new line
|
||
# H405 multi line docstring summary not separated with an empty line
|
||
# E501 line too long. skipped because some of the code files include templates
|
||
# that end up quite wide
|
||
# F401 'XXXXX' imported but unused
|
||
# F841 local variable 'XXXXXX' is assigned to but never used
|
||
show-source = True
|
||
ignore = H101,H102,H105,H237,H238,H306,H401,H404,H405,E501,F401,F841
|
||
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,release-tag-*
|
||
# TODO: H106 Don’t put vim configuration in source files (off by default).
|
||
# H203 Use assertIs(Not)None to check for None (off by default).
|
||
# TODO: enable: H904 Delay string interpolations at logging calls (off by default).
|
||
enable-extensions = H203
|
||
max-line-length = 120
|
||
|
||
|
||
# Use flake8 to replace pep8.
|
||
[testenv:pep8]
|
||
basepython = python3
|
||
usedevelop = False
|
||
skip_install = True
|
||
commands =
|
||
flake8
|
||
|
||
[testenv:venv]
|
||
basepython = python3
|
||
commands = {posargs}
|
||
|
||
[nosetests]
|
||
verbosity=2
|
||
|
||
[testenv:py27]
|
||
basepython = python2.7
|
||
deps = {[testenv]deps}
|
||
whitelist_externals = cp
|
||
find
|
||
tox
|
||
recreate = True
|
||
commands = {[testenv]commands}
|
||
tox -c tsconfig/tsconfig -e py27
|
||
|
||
[testenv:py37]
|
||
basepython = python3
|
||
deps = {[testenv]deps}
|
||
whitelist_externals = cp
|
||
find
|
||
tox
|
||
recreate = True
|
||
commands = {[testenv]commands}
|
||
tox -c tsconfig/tsconfig -e py37
|
||
|
||
[testenv:pylint]
|
||
deps = {[testenv]deps}
|
||
pylint
|
||
-e{toxinidir}/../stx-config/sysinv/sysinv/sysinv
|
||
-e{toxinidir}/../stx-fault/fm-api
|
||
pyCrypto
|
||
daemon
|
||
keystoneauth1
|
||
keystonemiddleware
|
||
mock
|
||
netaddr
|
||
oslo_config
|
||
pecan
|
||
requests
|
||
requests_toolbelt
|
||
rpm
|
||
basepython = python2.7
|
||
commands = pylint {[testenv]cgcs_patch_src_dir} \
|
||
{[testenv]patch_alarm_src_dir} \
|
||
{[testenv]tsconfig_src_dir} \
|
||
--rcfile=./pylint.rc
|
||
|
||
[testenv:docs]
|
||
basepython = python3
|
||
deps = -r{toxinidir}/doc/requirements.txt
|
||
commands =
|
||
rm -rf doc/build
|
||
sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
|
||
whitelist_externals = rm
|
||
|
||
[testenv:releasenotes]
|
||
basepython = python3
|
||
deps = -r{toxinidir}/doc/requirements.txt
|
||
commands =
|
||
rm -rf releasenotes/build
|
||
sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
|
||
whitelist_externals =
|
||
rm
|
||
reno
|
||
|
||
[testenv:newnote]
|
||
basepython = python3
|
||
# Re-use the releasenotes venv
|
||
envdir = {toxworkdir}/releasenotes
|
||
deps = -r{toxinidir}/doc/requirements.txt
|
||
commands = reno new {posargs}
|
||
|
||
[testenv:api-ref]
|
||
basepython = python3
|
||
deps =
|
||
-r{toxinidir}/doc/requirements.txt
|
||
commands =
|
||
rm -rf api-ref/build
|
||
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
||
whitelist_externals = rm
|