Move linters dependencies to tox.ini
One of suggestions discussed in the mailling thread [1] is to decouple linters from test-requirements.txt. We uses specific versions of linters (hacking, flake8, pylint and bandit) and they are potentially incompatbile with other libraries in test-requirements.txt. One example is bandit incompatibility detected by the new pip resolver. This commit moves linters to tox.ini and introduces a new tox envdir shared by linter related tox envs. Note that we have a unit test for a local hacking rule so hacking needs to be installed as part of the default dependencies. We can have it in test-requirements.txt but I think it is better to have it in tox.ini as hacking is a part of linters and other linter dependencies are declared in tox.ini now. [1] http://lists.openstack.org/pipermail/openstack-discuss/2020-December/thread.html#19362 Change-Id: Ia41c5f665f01bdab187c9256b2319885998d12c3
This commit is contained in:
parent
792ffb3cfd
commit
ffe84dbf9d
@ -3,7 +3,6 @@ amqp==2.1.1
|
|||||||
appdirs==1.4.0
|
appdirs==1.4.0
|
||||||
asn1crypto==0.23.0
|
asn1crypto==0.23.0
|
||||||
Babel==2.6.0
|
Babel==2.6.0
|
||||||
bandit==1.4.0
|
|
||||||
cachetools==2.0.0
|
cachetools==2.0.0
|
||||||
cffi==1.14.0
|
cffi==1.14.0
|
||||||
chardet==3.0.4
|
chardet==3.0.4
|
||||||
@ -78,7 +77,6 @@ positional==1.2.1
|
|||||||
prettytable==0.7.2
|
prettytable==0.7.2
|
||||||
pycodestyle==2.5.0
|
pycodestyle==2.5.0
|
||||||
pycparser==2.18
|
pycparser==2.18
|
||||||
pyflakes==2.1.0
|
|
||||||
Pygments==2.2.0
|
Pygments==2.2.0
|
||||||
pyinotify==0.9.6
|
pyinotify==0.9.6
|
||||||
pymongo==3.0.2
|
pymongo==3.0.2
|
||||||
|
@ -6,19 +6,13 @@
|
|||||||
# added in alphabetical order, however, some dependencies may need to
|
# added in alphabetical order, however, some dependencies may need to
|
||||||
# be installed in a specific order.
|
# be installed in a specific order.
|
||||||
#
|
#
|
||||||
# Hacking should appear first in case something else depends on pep8
|
|
||||||
hacking>=3.0.1,<3.1.0 # Apache-2.0
|
|
||||||
#
|
|
||||||
bandit!=1.6.0,>=1.4.0 # Apache-2.0
|
|
||||||
coverage!=4.4,>=4.0 # Apache-2.0
|
coverage!=4.4,>=4.0 # Apache-2.0
|
||||||
flake8-import-order==0.12 # LGPLv3
|
|
||||||
freezegun>=0.3.15 # Apache-2.0
|
freezegun>=0.3.15 # Apache-2.0
|
||||||
nodeenv>=0.9.4 # BSD
|
nodeenv>=0.9.4 # BSD
|
||||||
pytest>=5.3.5 # MIT
|
pytest>=5.3.5 # MIT
|
||||||
pytest-django>=3.8.0 # BSD (3 clause)
|
pytest-django>=3.8.0 # BSD (3 clause)
|
||||||
pytest-html>=2.0.1 #MPL-2.0
|
pytest-html>=2.0.1 #MPL-2.0
|
||||||
python-memcached>=1.59 # PSF
|
python-memcached>=1.59 # PSF
|
||||||
pylint==2.6.0 # GPLv2
|
|
||||||
selenium>=2.50.1 # Apache-2.0
|
selenium>=2.50.1 # Apache-2.0
|
||||||
testscenarios>=0.4 # Apache-2.0/BSD
|
testscenarios>=0.4 # Apache-2.0/BSD
|
||||||
testtools>=2.2.0 # MIT
|
testtools>=2.2.0 # MIT
|
||||||
|
20
tox.ini
20
tox.ini
@ -23,6 +23,8 @@ deps =
|
|||||||
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
||||||
-r{toxinidir}/test-requirements.txt
|
-r{toxinidir}/test-requirements.txt
|
||||||
-r{toxinidir}/requirements.txt
|
-r{toxinidir}/requirements.txt
|
||||||
|
# Unit test for a local hacking rule requires hacking.
|
||||||
|
hacking>=3.0.1,<3.1.0 # Apache-2.0
|
||||||
commands =
|
commands =
|
||||||
find . -type f -name "*.pyc" -delete
|
find . -type f -name "*.pyc" -delete
|
||||||
bash {toxinidir}/tools/unit_tests.sh {toxinidir} {posargs}
|
bash {toxinidir}/tools/unit_tests.sh {toxinidir} {posargs}
|
||||||
@ -32,13 +34,20 @@ deps =
|
|||||||
-c{toxinidir}/lower-constraints.txt
|
-c{toxinidir}/lower-constraints.txt
|
||||||
-r{toxinidir}/test-requirements.txt
|
-r{toxinidir}/test-requirements.txt
|
||||||
-r{toxinidir}/requirements.txt
|
-r{toxinidir}/requirements.txt
|
||||||
|
# Unit test for a local hacking rule requires hacking.
|
||||||
|
hacking>=3.0.1,<3.1.0 # Apache-2.0
|
||||||
|
|
||||||
[testenv:venv]
|
[testenv:venv]
|
||||||
envdir = {toxworkdir}/venv
|
envdir = {toxworkdir}/venv
|
||||||
commands = {posargs}
|
commands = {posargs}
|
||||||
|
|
||||||
[testenv:pep8]
|
[testenv:pep8]
|
||||||
envdir = {toxworkdir}/venv
|
envdir = {toxworkdir}/linters
|
||||||
|
deps =
|
||||||
|
{[testenv]deps}
|
||||||
|
flake8-import-order==0.12 # LGPLv3
|
||||||
|
pylint==2.6.0 # GPLv2
|
||||||
|
bandit!=1.6.0,>=1.4.0 # Apache-2.0
|
||||||
setenv =
|
setenv =
|
||||||
DJANGO_SETTINGS_MODULE=openstack_dashboard.test.settings
|
DJANGO_SETTINGS_MODULE=openstack_dashboard.test.settings
|
||||||
commands =
|
commands =
|
||||||
@ -131,7 +140,6 @@ commands =
|
|||||||
doc8 doc/source
|
doc8 doc/source
|
||||||
|
|
||||||
[testenv:pdf-docs]
|
[testenv:pdf-docs]
|
||||||
basepython = python3
|
|
||||||
envdir = {toxworkdir}/docs
|
envdir = {toxworkdir}/docs
|
||||||
deps = {[testenv:docs]deps}
|
deps = {[testenv:docs]deps}
|
||||||
whitelist_externals =
|
whitelist_externals =
|
||||||
@ -164,12 +172,14 @@ commands =
|
|||||||
{envpython} {toxinidir}/manage.py compilemessages -v 0 --traceback
|
{envpython} {toxinidir}/manage.py compilemessages -v 0 --traceback
|
||||||
|
|
||||||
[testenv:bandit]
|
[testenv:bandit]
|
||||||
envdir = {toxworkdir}/venv
|
envdir = {toxworkdir}/linters
|
||||||
|
deps = {[testenv:pep8]deps}
|
||||||
commands = bandit -r horizon openstack_auth openstack_dashboard -n5 -x tests -ll
|
commands = bandit -r horizon openstack_auth openstack_dashboard -n5 -x tests -ll
|
||||||
|
|
||||||
[testenv:bandit-baseline]
|
[testenv:bandit-baseline]
|
||||||
envdir = {toxworkdir}/venv
|
envdir = {toxworkdir}/linters
|
||||||
commands = bandit-baseline -r horizon openstack_auth openstack_dashboard -n5 -x tests -ii -ll
|
deps = {[testenv:pep8]deps}
|
||||||
|
commands = bandit-baseline -r horizon openstack_auth openstack_dashboard -n5 -x tests -ii -ll
|
||||||
|
|
||||||
[flake8]
|
[flake8]
|
||||||
filename = *.py,django.wsgi
|
filename = *.py,django.wsgi
|
||||||
|
Loading…
Reference in New Issue
Block a user