Follow-up: Move linters dependencies to tox.ini

After commit 89e2fad8ef,
pep8/bandit/bashate tox envs have different dependencies than
the default tox env. If tox envs with different dependencies share
some common envdir, tox env will be recreated every time a different
tox env is specified. (For example, "tox -e cover" after "tox -e pep8"
recreates the tox env.)

To address it, this commit introduces a new common envdir for linters
(envdir = {toxworkdir}/lint). It also moves deependencies of bashate
and bandit envs to pep8 env to ensure these three tox envs have the
same dependencies.

Cleanups are also made in test-requirements and lower-constraints.
* astroid and isort can be dropped from test-requirements.txt
  as pylint has proper version cappings for astroid and isort.
  (These cappings are available in pylint 2.5 and later.)
* reno is a document dependency, so it is unnecessary in test-requirements.
* reno, astroid and isort are dropped from lower-constraints
  as they are not installed in lower-constraints tests.

Change-Id: Iaa3168764d050875e3d08784aee2dfba809e53be
This commit is contained in:
Akihiro Motoki 2021-01-07 04:26:07 +09:00
parent c0c6a2b3a9
commit d64c25c019
3 changed files with 7 additions and 15 deletions

View File

@ -31,7 +31,6 @@ greenlet==0.4.14
httplib2==0.9.1
imagesize==0.7.1
iso8601==0.1.11
isort==4.3.21
Jinja2==2.10
jmespath==0.9.0
jsonpatch==1.16
@ -109,7 +108,6 @@ python-novaclient==9.1.0
python-subunit==1.0.0
pytz==2013.6
PyYAML==5.3.1
reno==3.1.0
repoze.lru==0.7
requests==2.14.2
requestsexceptions==1.2.0

View File

@ -10,9 +10,6 @@ testscenarios>=0.4 # Apache-2.0/BSD
WebTest>=2.0.27 # MIT
oslotest>=3.2.0 # Apache-2.0
stestr>=1.0.0 # Apache-2.0
reno>=3.1.0 # Apache-2.0
ddt>=1.0.1 # MIT
astroid==2.4.0 # LGPLv2.1
isort==4.3.21 # MIT
# Needed to run DB commands in virtualenvs
PyMySQL>=0.7.6 # MIT License

17
tox.ini
View File

@ -94,11 +94,11 @@ deps = -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
[testenv:pep8]
envdir = {toxworkdir}/shared
envdir = {toxworkdir}/lint
deps =
{[testenv]deps}
{[testenv:bashate]deps}
{[testenv:bandit]deps}
bashate>=0.5.1 # Apache-2.0
bandit!=1.6.0,>=1.1.0 # Apache-2.0
flake8-import-order==0.18.1 # LGPLv3
pylint==2.5.3 # GPLv2
commands=
@ -203,20 +203,17 @@ extension =
import_exceptions = neutron._i18n
[testenv:bandit]
envdir = {toxworkdir}/shared
envdir = {toxworkdir}/lint
deps = {[testenv:pep8]deps}
# B104: Possible binding to all interfaces
# B303: prohibit list calls: md5, sha1
# B311: Standard pseudo-random generators are not suitable for security/cryptographic purpose
# B604: any_other_function_with_shell_equals_true
deps =
bandit!=1.6.0,>=1.1.0 # Apache-2.0
-r{toxinidir}/test-requirements.txt
commands = bandit -r neutron -x tests -n5 -s B104,B303,B311,B604
[testenv:bashate]
envdir = {toxworkdir}/shared
deps =
bashate>=0.5.1 # Apache-2.0
envdir = {toxworkdir}/lint
deps = {[testenv:pep8]deps}
commands = bash -c "find {toxinidir} \
-not \( -type d -name .tox\* -prune \) \
-not \( -type d -name .venv\* -prune \) \