Andreas Jaeger 3ac1870e85 Update hacking for Python3
The repo is Python 3 now, so update hacking to version 3.0 which
supports Python 3.

Update local hacking checks for new flake8.

Many tests are failing, so disable all that fail and fix most of them in a
followup.

Change-Id: I34a767406ed9110fc6e0cf5015b88cf1e7f43801
2020-04-01 09:20:58 +02:00

179 lines
5.9 KiB
INI

[tox]
minversion = 2.0
skipsdist = True
envlist = py3,pep8
[testenv]
basepython = python3
setenv = VIRTUAL_ENV={envdir}
usedevelop = True
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages}
whitelist_externals = find
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
find . -type f -name "*.py[c|o]" -delete
stestr run {posargs}
stestr slowest
[testenv:releasenotes]
deps =
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-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
[testenv:debug]
commands = oslo_debug_helper {posargs}
[testenv:pep8]
# Let's gate pep8 under py3 by default because the py3 checks are stricter.
commands =
flake8 {posargs}
# Run bashate during pep8 runs to ensure violations are caught by
# the check and gate queues.
bashate -i E006,E042,E043 \
tools/enable-pre-commit-hook.sh \
contrib/ci/pre_test_hook.sh \
contrib/ci/post_test_hook.sh \
devstack/plugin.sh \
devstack/upgrade/from-mitaka/upgrade-manila \
devstack/upgrade/resources.sh \
devstack/upgrade/shutdown.sh \
devstack/upgrade/upgrade.sh \
tools/cover.sh \
tools/check_logging.sh \
tools/coding-checks.sh
{toxinidir}/tools/check_exec.py {toxinidir}/manila
{toxinidir}/tools/check_logging.sh {toxinidir}/manila
[testenv:genconfig]
whitelist_externals = bash
commands =
oslo-config-generator --config-file etc/oslo-config-generator/manila.conf
[testenv:genpolicy]
commands = oslopolicy-sample-generator --config-file=etc/manila/manila-policy-generator.conf
[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 -rf doc/build
sphinx-build -W -b html doc/source doc/build/html
# Ignore D001 since we allow lines in excess of 79 characters.
doc8 --ignore D001 --ignore-path .tox --ignore-path doc/build --ignore-path manila.egg-info -e .txt -e .rst -e .inc
whitelist_externals = rm
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
whitelist_externals =
make
commands =
sphinx-build -W -b latex doc/source doc/build/pdf
make -C doc/build/pdf
[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
[testenv:cover]
setenv =
{[testenv]setenv}
PYTHON=coverage run --source manila --parallel-mode
commands =
{toxinidir}/tools/cover.sh {posargs}
[testenv:fast8]
# Let's run fast8 under py3 by default because the py3 checks are stricter.
commands =
{toxinidir}/tools/fast8.sh
[testenv:pylint]
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
pylint==2.3.1
whitelist_externals = bash
commands = bash ./tools/coding-checks.sh --pylint {posargs}
[testenv:api-ref]
# This environment is called from CI scripts to test and publish
# the API Ref to docs.openstack.org.
deps = {[testenv:docs]deps}
whitelist_externals = rm
commands =
rm -rf api-ref/build
python {toxinidir}/tools/validate-json-files.py {toxinidir}/api-ref/source/samples/
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
[testenv:dbrevision]
deps = -r{toxinidir}/requirements.txt
commands = alembic -c manila/db/migrations/alembic.ini revision -m ""{posargs}
[flake8]
# Following checks are ignored on purpose:
# Following checks should be evaluated and fixed:
# E123 closing bracket does not match indentation of opening bracket's line
# E402 module level import not at top of file
# W503 line break before binary operator
# W504 line break after binary operator
# W605 invalid escape sequence
# E741 ambiguous variable name 'l'
# E305 expected 2 blank lines after class or function definition, found 1
# E241 multiple spaces after ':'
# E731 do not assign a lambda expression, use a def
# F632 use ==/!= to compare str, bytes, and int literals
# E117 over-indented
# F841 local variable 'e' is assigned to but never used
# E226 missing whitespace around arithmetic operator
# F601 dictionary key 'qos' repeated with different values
ignore = E117,E123,E226,E241,E305,E402,E731,E741,F601,F632,F841,W503,W504,W605
builtins = _
# [H106] Don't put vim configuration in source files.
# [H203] Use assertIs(Not)None to check for None.
# [H904] Use ',' instead of '%', String interpolation should be delayed to be handled by the logging code,
# rather than being done at the point of the logging call..
enable-extensions = H106,H203,H904
exclude = .git,.tox,.testrepository,.venv,build,cover,dist,doc,*egg,api-ref/build,*/source/conf.py
[hacking]
import_exceptions =
manila.i18n
[flake8:local-plugins]
extension =
M310 = checks:CheckLoggingFormatArgs
M313 = checks:validate_assertTrue
M323 = checks:check_explicit_underscore_import
M325 = checks:CheckForStrUnicodeExc
M326 = checks:CheckForTransAdd
M333 = checks:check_oslo_namespace_imports
M336 = checks:dict_constructor_with_list_copy
M337 = checks:no_xrange
M338 = checks:no_log_warn_check
M354 = checks:check_uuid4
M359 = checks:no_translate_logs
paths = ./manila/hacking
[testenv:lower-constraints]
deps =
-c{toxinidir}/lower-constraints.txt
-r{toxinidir}/test-requirements.txt
-r{toxinidir}/requirements.txt