cinder/tox.ini
Sean McGinnis 6847ba2d6a Drop unicode() hacking check
This hacking check is no longer required now that we have moved to py3.
There probably isn't much need to use unicode() calls, but if the
situation calls for it, it is now better to do that than to direct
people to use six methods.

Some minor cleanup of hacking config included.

Change-Id: I5c97e673223d29b18aad37804d0d7b8c07e501c2
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-03-31 09:06:18 -05:00

227 lines
6.7 KiB
INI

[tox]
minversion = 3.1.0
skipsdist = True
skip_missing_interpreters = true
# python runtimes: https://governance.openstack.org/tc/reference/runtimes/ussuri.html
envlist = py37,py36,compliance,pep8
# this allows tox to infer the base python from the environment name
# and override any basepython configured in this file
ignore_basepython_conflict=true
[testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
OS_STDOUT_CAPTURE=1
OS_STDERR_CAPTURE=1
OS_TEST_TIMEOUT=60
OS_TEST_PATH=./cinder/tests/unit
usedevelop = True
install_command = pip install {opts} {packages}
deps = -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt
# By default stestr will set concurrency
# to ncpu, to specify something else use
# the concurrency=<n> option.
# call ie: 'tox -epy27 -- --concurrency=4'
commands =
find . -ignore_readdir_race -type f -name "*.pyc" -delete
stestr run {posargs}
stestr slowest
whitelist_externals =
bash
find
passenv = *_proxy *_PROXY
[testenv:api-ref]
whitelist_externals = rm
deps = {[testenv:docs]deps}
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]
deps = {[testenv:docs]deps}
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-py36]
setenv =
{[testenv:functional]setenv}
[testenv:functional-py37]
setenv =
{[testenv:functional]setenv}
[testenv:api-samples]
envdir = {toxworkdir}/shared
setenv =
GENERATE_SAMPLES=True
PYTHONHASHSEED=0
commands =
find . -ignore_readdir_race -type f -name "*.pyc" -delete
stestr --test-path=./cinder/tests/functional/api_sample_tests run {posargs}
stestr slowest
[testenv:compliance]
setenv =
OS_TEST_PATH = ./cinder/tests/compliance
[testenv:pep8]
commands =
flake8 {posargs} .
doc8
{toxinidir}/tools/config/check_uptodate.sh
{toxinidir}/tools/check_exec.py {toxinidir}/cinder {toxinidir}/doc/source/ {toxinidir}/releasenotes/notes
[testenv:fast8]
# Use same environment directory as pep8 env to save space and install time
envdir = {toxworkdir}/pep8
commands =
{toxinidir}/tools/fast8.sh
passenv = FAST8_NUM_COMMITS
[testenv:pylint]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
pylint==2.3.0
commands =
bash ./tools/coding-checks.sh --pylint {posargs}
[testenv:cover]
# Also do not run test_coverage_ext tests while gathering coverage as those
# tests conflict with coverage.
setenv =
{[testenv]setenv}
PYTHON=coverage run --source cinder --parallel-mode
commands =
stestr run {posargs}
coverage combine
coverage html -d cover
coverage xml -o cover/coverage.xml
[testenv:genconfig]
sitepackages = False
envdir = {toxworkdir}/pep8
commands = oslo-config-generator --config-file=tools/config/cinder-config-generator.conf
[testenv:genpolicy]
commands = oslopolicy-sample-generator --config-file=tools/config/cinder-policy-generator.conf
[testenv:genopts]
sitepackages = False
envdir = {toxworkdir}/pep8
commands = python tools/config/generate_cinder_opts.py
[testenv:venv]
commands = {posargs}
[testenv:docs]
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands =
rm -fr doc/source/contributor/api/
rm -fr doc/build/html doc/build/doctrees
sphinx-build -W -b html -d doc/build/doctrees doc/source doc/build/html
whitelist_externals = rm
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
commands =
rm -fr doc/source/contributor/api/
rm -fr doc/build/pdf
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
whitelist_externals =
make
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 cinder/tests/* -ll
[testenv:bandit-baseline]
envdir = {toxworkdir}/bandit
commands = bandit-baseline -r cinder -n5 -x cinder/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 {posargs}
usedevelop = False
[flake8]
# Following checks are ignored on purpose.
#
# E251 unexpected spaces around keyword / parameter equals
# reason: no improvement in readability
#
# E402 module level import not at top of file
# reason: there are numerous places where we import modules
# later for legitimate reasons
#
# W503 line break before binary operator
# reason: pep8 itself is not sure about this one and
# reversed this rule in 2016
# W504 line break after binary operator
# reason: no agreement on this being universally
# preferable for our code. Disabled to keep checking
# tools from getting in our way with regards to this.
# H101 include name with TODO
# reason: no real benefit
# G200 Logging statements should not include the exception
# reason: Many existing cases of this that may be legitimate
ignore = E251,E402,W503,W504,H101,G200
# H904 Delay string interpolations at logging calls.
enable-extensions = H106,H203,H904
exclude = .git,.venv,.tox,dist,tools,doc/ext,*egg,build
max-complexity = 30
application-import-names = cinder
import-order-style = pep8
[flake8:local-plugins]
extension =
N322 = checks:no_mutable_default_args
N323 = checks:check_explicit_underscore_import
C301 = checks:check_datetime_now
C303 = checks:check_no_print_statements
C306 = checks:check_timeutils_strtime
C308 = checks:check_timeutils_isotime
C309 = checks:no_test_log
C310 = checks:CheckLoggingFormatArgs
C311 = checks:CheckOptRegistrationArgs
C312 = checks:no_translate_logs
C313 = checks:validate_assertTrue
C336 = checks:dict_constructor_with_list_copy
paths = ./cinder/tests/hacking
[doc8]
ignore-path=.tox,*.egg-info,doc/src/api,doc/source/drivers.rst,doc/build,.eggs/*/EGG-INFO/*.txt,doc/source/configuration/tables,./*.txt
extension=.txt,.rst,.inc
[testenv:lower-constraints]
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt