137 lines
3.8 KiB
INI
137 lines
3.8 KiB
INI
[tox]
|
|
envlist = py27,py36,py39,pep8,pylint
|
|
minversion = 1.6
|
|
#skipsdist = True
|
|
|
|
# tox does not work if the path to the workdir is too long, so move it to /tmp
|
|
toxworkdir = /tmp/{env:USER}_cgtsclienttox
|
|
stxdir = {toxinidir}/../../../..
|
|
distshare={toxworkdir}/.tox/distshare
|
|
|
|
[testenv]
|
|
setenv = VIRTUAL_ENV={envdir}
|
|
PYTHONWARNINGS=default::DeprecationWarning
|
|
OS_TEST_PATH=cgtsclient/tests
|
|
TESTR_START_DIR=cgtsclient/tests
|
|
basepython = python3
|
|
usedevelop = True
|
|
install_command = pip install \
|
|
-U \
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/stable/stein/upper-constraints.txt} \
|
|
{opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-e{[tox]stxdir}/config/tsconfig/tsconfig
|
|
|
|
commands =
|
|
find {toxinidir} -not -path '{toxinidir}/.tox/*' -name '*.py[c|o]' -delete
|
|
|
|
allowlist_externals =
|
|
bash
|
|
find
|
|
rm
|
|
passenv =
|
|
http_proxy
|
|
HTTP_PROXY
|
|
https_proxy
|
|
HTTPS_PROXY
|
|
no_proxy
|
|
NO_PROXY
|
|
|
|
[testenv:py27]
|
|
basepython = python2.7
|
|
commands =
|
|
{[testenv]commands}
|
|
stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:py36]
|
|
basepython = python3.6
|
|
commands =
|
|
{[testenv]commands}
|
|
stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:py39]
|
|
basepython = python3.9
|
|
install_command = pip install \
|
|
-U \
|
|
-c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/starlingx/root/raw/branch/master/build-tools/requirements/debian/upper-constraints.txt} \
|
|
{opts} {packages}
|
|
deps = -r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/test-requirements.txt
|
|
-e{[tox]stxdir}/config/tsconfig/tsconfig
|
|
commands =
|
|
{[testenv]commands}
|
|
stestr run {posargs}
|
|
stestr slowest
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
flake8-bugbear
|
|
commands =
|
|
flake8 cgtsclient
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:cover]
|
|
basepython = python2.7
|
|
setenv = {[testenv]setenv}
|
|
PYTHON=coverage run --parallel-mode
|
|
commands =
|
|
{[testenv]commands}
|
|
coverage erase
|
|
rm -f .coverage
|
|
rm -Rf cover
|
|
rm -f coverage.xml
|
|
stestr run {posargs}
|
|
coverage combine
|
|
coverage html -d cover
|
|
coverage xml -o cover/coverage.xml
|
|
coverage report
|
|
|
|
|
|
[flake8]
|
|
show-source = true
|
|
exclude=.*,dist,*lib/python*,*egg,build
|
|
max-complexity=25
|
|
# H102 Apache 2.0 license header not found
|
|
# H104 File contains nothing but comments
|
|
# H105 Don't use author tags
|
|
# H238 old style class declaration, use new style (inherit from `object`)
|
|
# H404 multi line docstring should start without a leading new line
|
|
# H405 multi line docstring summary not separated with an empty line
|
|
# -B- codes are bugbear
|
|
# B004 Using `hasattr(x, '__call__')` to test if `x` is callable is unreliable.
|
|
# B005 Using .strip() with multi-character strings is misleading the reader.
|
|
# B006 Do not use mutable data structures for argument defaults
|
|
# B009 Do not call getattr with a constant attribute value
|
|
# B010 Do not call setattr with a constant attribute value
|
|
# -W- codes are warnings
|
|
# W503 line break before binary operator
|
|
# W504 line break after binary operator
|
|
# W605 invalid escape sequence
|
|
# -E- codes are errors
|
|
# E501 line too long
|
|
# E731 do not assign a lambda expression, use a def
|
|
# -F- codes are errors
|
|
ignore = H102,H104,H105,H238,H404,H405,
|
|
B004,B005,B006,B009,B010,
|
|
W503,W504,W605,
|
|
E501,E731
|
|
|
|
[testenv:pylint]
|
|
basepython = python3
|
|
commands = pylint {posargs} cgtsclient --rcfile=./pylint.rc --extension-pkg-whitelist=lxml.etree,greenlet
|
|
|
|
[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.
|
|
skip_install = True
|
|
deps = bindep
|
|
commands = bindep test
|