Since we dropped support for python 2 [1], we no longer need to use the
mock library, which existed to backport py3 functionality into py2.
Which must be done by saying::
from unittest import mock
...because if you say::
import mock
...you definitely will not be getting the standard library mock.
That will always import the third party mock library.
This commit adds hacking check N366 to enforce the former.
This check can be removed in the future (and we can start saying
``import mock`` again) if we manage to purge these transitive
dependencies. I'm not holding my breath.
[1]https://review.opendev.org/#/c/717540
Change-Id: I8c8c99024e8de61d9151480d70543f809a100998
141 lines
4.0 KiB
INI
141 lines
4.0 KiB
INI
[tox]
|
|
minversion = 2.0
|
|
envlist = py36,py37,pep8
|
|
skipsdist = True
|
|
ignore_basepython_conflict = True
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
usedevelop = True
|
|
whitelist_externals = find
|
|
rm
|
|
install_command = pip install {opts} {packages}
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
rm -f .testrepository/times.dbm
|
|
find . -type f -name "*.py[c|o]" -delete
|
|
stestr run {posargs}
|
|
passenv = http_proxy HTTP_PROXY https_proxy HTTPS_PROXY no_proxy NO_PROXY
|
|
|
|
[testenv:pep8]
|
|
commands =
|
|
doc8 doc/source/ CONTRIBUTING.rst HACKING.rst README.rst
|
|
flake8
|
|
bandit -r watcher -x watcher/tests/* -n5 -ll -s B320,B322
|
|
|
|
[testenv:venv]
|
|
setenv = PYTHONHASHSEED=0
|
|
deps =
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
|
|
-r{toxinidir}/doc/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|
|
commands = {posargs}
|
|
|
|
[testenv:cover]
|
|
setenv =
|
|
PYTHON=coverage run --source watcher --parallel-mode
|
|
commands =
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
[testenv:docs]
|
|
setenv = PYTHONHASHSEED=0
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands =
|
|
rm -fr doc/build doc/source/api/ .autogenerated
|
|
sphinx-build -W --keep-going -b html doc/source doc/build/html
|
|
|
|
[testenv:api-ref]
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
whitelist_externals = bash
|
|
commands =
|
|
bash -c 'rm -rf api-ref/build'
|
|
sphinx-build -W --keep-going -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
|
|
|
|
[testenv:debug]
|
|
commands = oslo_debug_helper -t watcher/tests {posargs}
|
|
|
|
[testenv:genconfig]
|
|
sitepackages = False
|
|
commands =
|
|
oslo-config-generator --config-file etc/watcher/oslo-config-generator/watcher.conf
|
|
|
|
[testenv:genpolicy]
|
|
commands =
|
|
oslopolicy-sample-generator --config-file etc/watcher/oslo-policy-generator/watcher-policy-generator.conf
|
|
|
|
[flake8]
|
|
filename = *.py,app.wsgi
|
|
show-source=True
|
|
# W504 line break after binary operator
|
|
ignore= H105,E123,E226,N320,H202,W504
|
|
builtins= _
|
|
enable-extensions = H106,H203,H904
|
|
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,*sqlalchemy/alembic/versions/*,demo/,releasenotes
|
|
|
|
[testenv:wheel]
|
|
commands = python setup.py bdist_wheel
|
|
|
|
[hacking]
|
|
import_exceptions = watcher._i18n
|
|
|
|
[flake8:local-plugins]
|
|
extension =
|
|
N319 = checks:no_translate_debug_logs
|
|
N321 = checks:use_jsonutils
|
|
N322 = checks:check_assert_called_once_with
|
|
N325 = checks:check_python3_xrange
|
|
N326 = checks:check_no_basestring
|
|
N327 = checks:check_python3_no_iteritems
|
|
N328 = checks:check_asserttrue
|
|
N329 = checks:check_assertfalse
|
|
N330 = checks:check_assertempty
|
|
N331 = checks:check_assertisinstance
|
|
N332 = checks:check_assertequal_for_httpcode
|
|
N333 = checks:check_log_warn_deprecated
|
|
N340 = checks:check_oslo_i18n_wrapper
|
|
N341 = checks:check_builtins_gettext
|
|
N342 = checks:no_redundant_import_alias
|
|
N366 = checks:import_stock_mock
|
|
paths = ./watcher/hacking
|
|
|
|
|
|
[doc8]
|
|
extension=.rst
|
|
# todo: stop ignoring doc/source/man when https://bugs.launchpad.net/doc8/+bug/1502391 is fixed
|
|
ignore-path=doc/source/image_src,doc/source/man,doc/source/api
|
|
|
|
[testenv:pdf-docs]
|
|
envdir = {toxworkdir}/docs
|
|
deps = {[testenv:docs]deps}
|
|
whitelist_externals =
|
|
rm
|
|
make
|
|
commands =
|
|
rm -rf doc/build/pdf
|
|
sphinx-build -W --keep-going -b latex doc/source doc/build/pdf
|
|
make -C doc/build/pdf
|
|
|
|
[testenv:releasenotes]
|
|
deps = -r{toxinidir}/doc/requirements.txt
|
|
commands = sphinx-build -a -W -E -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html
|
|
|
|
[testenv:bandit]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
commands = bandit -r watcher -x watcher/tests/* -n5 -ll -s B320
|
|
|
|
[testenv:lower-constraints]
|
|
deps =
|
|
-c{toxinidir}/lower-constraints.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-r{toxinidir}/requirements.txt
|