cinder/tox.ini
jeremy.zhang 85a1b8d40b Enable some off-by-default checks
Some of the available checks are disabled by default in flake8, like:
[H106] Don’t put vim configuration in source files
[H203] Use assertIs(Not)None to check for None

This patch is to enable the H106 and H203 checks in Cinder project.
The C312 hacking rule will be removed when turn on H203.

Change-Id: I2e883c301b64d5977bbb907b63c9c144bc6f959d
2017-06-22 02:17:54 +00:00

147 lines
4.3 KiB
INI

[tox]
minversion = 2.0
skipsdist = True
envlist = py35,py27,compliance,pep8
[testenv]
# Note the hash seed is set to 0 until cinder can be tested with a
# random hash seed successfully.
setenv = VIRTUAL_ENV={envdir}
PYTHONHASHSEED=0
PYTHONWARNINGS=default::DeprecationWarning
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
deps = -r{toxinidir}/test-requirements.txt
# By default ostestr will set concurrency
# to ncpu, to specify something else use
# the concurrency=<n> option.
# call ie: 'tox -epy27 -- --concurrency=4'
commands =
find . -type f -name "*.pyc" -delete
ostestr {posargs}
whitelist_externals =
bash
find
passenv = *_proxy *_PROXY
[testenv:api-ref]
# (sheel)This environment is called from CI scripts to test and publish
# the API Ref to developer.openstack.org.
whitelist_externals = rm
deps = -r{toxinidir}/test-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/
[testenv:releasenotes]
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:functional]
setenv =
OS_TEST_PATH = ./cinder/tests/functional
[testenv:functional-py35]
basepython=
py35: python3.5
setenv =
{[testenv:functional]setenv}
[testenv:compliance]
setenv =
OS_TEST_PATH = ./cinder/tests/compliance
[testenv:pep8]
commands =
flake8 {posargs} .
{toxinidir}/tools/config/check_uptodate.sh
{toxinidir}/tools/check_exec.py {toxinidir}/cinder
[testenv:fast8]
# Use same environment directory as pep8 env to save space and install time
envdir = {toxworkdir}/pep8
commands =
{toxinidir}/tools/fast8.sh
[testenv:pylint]
deps = -r{toxinidir}/requirements.txt
pylint==0.26.0
commands = bash tools/lintstack.sh
[testenv:cover]
# Also do not run test_coverage_ext tests while gathering coverage as those
# tests conflict with coverage.
commands =
python setup.py testr --coverage \
--testr-args='^(?!.*test.*coverage).*$'
coverage report
[testenv:genconfig]
sitepackages = False
envdir = {toxworkdir}/pep8
commands = oslo-config-generator --config-file=cinder/config/cinder-config-generator.conf
[testenv:genopts]
sitepackages = False
envdir = {toxworkdir}/pep8
commands = python cinder/config/generate_cinder_opts.py
[testenv:venv]
commands = {posargs}
[testenv:docs]
commands =
python setup.py build_sphinx
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html/
doc8 --ignore D001 --ignore-path .tox --ignore-path cinder.egg-info --ignore-path doc/src/api --ignore-path doc/source/drivers.rst --ignore-path doc/build --ignore-path .eggs/*/EGG-INFO/*.txt -e txt -e rst
whitelist_externals = rm
[testenv:gendriverlist]
sitepackages = False
envdir = {toxworkdir}/venv
commands = python {toxinidir}/tools/generate_driver_list.py
[testenv:bandit]
deps = -r{toxinidir}/test-requirements.txt
commands = bandit -r cinder -n5 -x tests -ll
[testenv:bandit-baseline]
envdir = {toxworkdir}/bandit
commands = bandit-baseline -r cinder -n5 -x tests -ii -ll
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False
[flake8]
# Following checks are ignored on purpose.
#
# E251 unexpected spaces around keyword / parameter equals
# reason: no improvement in readability
ignore = E251
enable-extensions = H106,H203
exclude = .git,.venv,.tox,dist,tools,doc/ext,*egg,build
max-complexity=30
[hacking]
local-check-factory = cinder.hacking.checks.factory
import_exceptions = cinder.i18n
[testenv:pip-missing-reqs]
# do not install test-requirements as that will pollute the virtualenv for
# determining missing packages
# this also means that pip-missing-reqs must be installed separately, outside
# of the requirements.txt files
deps = pip_check_reqs>=2.0.1
commands = pip-missing-reqs -d --ignore-file=cinder/tests/* cinder