porthole/tox.ini
Sergiy Markin 693f99363e Update porthole project
This PS performs the following changes:
- updates approach to freeze requirements.txt
- adds freeze tox profile
- upgrades helm to v3.9.4
- changes deployment scripts in accordance with new helm v3
- python code has been re-styled to pass pep8 tests
- added tox-docs zuul gate
- added tox-py38 zuul gate
- added tox-cover zuul gate
- added tox-pep8 zuul gate
- deprecated old unit-tests zuul gate
- added a dependency pre-run playbook to deliver zuul node setup needed
  for python tox gates to run unit tests
- added tox profiles for py38,pep8,docs and cover tests

Change-Id: I960326fb0ab8d98cc3f62ffa638286e4fdcbb7c7
2023-06-02 16:01:08 +00:00

129 lines
3.2 KiB
INI

[tox]
minversion = 3.28.0
envlist = dev,pep8,py38,bandit,docs,list-tests
skipsdist = true
[testenv:dev]
useddevelop = True
basepython = python3
passenv =
http_proxy
HTTP_PROXY
https_proxy
HTTPS_PROXY
no_proxy
NO_PROXY
allowlist_externals = find
setenv =
VIRTUAL_ENV={envdir}
PYTHONWARNINGS=default::DeprecationWarning
deps =
freeze-req: -r{toxinidir}/requirements-frozen.txt
list-tests: -r {toxinidir}/requirements-frozen.txt
envdir=
{toxinidir}/.tox/{envname}
commands_pre =
find . -type f -name "*.pyc"
list-tests: stestr init
[testenv:venv]
commands = {posargs}
[testenv:freeze]
basepython=python3
recreate = True
allowlist_externals=
rm
sh
deps=
-r{toxinidir}/requirements-direct.txt
commands=
rm -f requirements-frozen.txt
sh -c "pip freeze --all | grep -vE 'pyinotify|pkg-resources==0.0.0' > requirements-frozen.txt"
[testenv:py38]
setenv =
PYTHONWARNING=all
KUBECONFIG={env:HOME}/.kube/config
deps =
-r{toxinidir}/requirements-frozen.txt
-r{toxinidir}/test-requirements.txt
allowlist_externals=
pytest
commands =
pytest -vv \
{posargs}
[testenv:cover]
setenv =
PYTHONWARNING=all
KUBECONFIG={env:HOME}/.kube/config
deps =
-r{toxinidir}/requirements-frozen.txt
-r{toxinidir}/test-requirements.txt
allowlist_externals=
pytest
commands=
py.test \
--cov=kube_utility_container \
--cov-report html:cover \
--cov-report xml:cover/coverage.xml \
--cov-report term \
-vv \
{toxinidir}/kube_utility_container/tests/unit/services \
{toxinidir}/kube_utility_container/tests/utility/compute \
{toxinidir}/kube_utility_container/tests/utility/etcd \
{toxinidir}/kube_utility_container/tests/utility/calico \
{toxinidir}/kube_utility_container/tests/utility/ceph \
{toxinidir}/kube_utility_container/tests/utility/mysqlclient \
{toxinidir}/kube_utility_container/tests/utility/openstack \
{toxinidir}/kube_utility_container/tests/utility/postgresql
[testenv:bandit]
deps =
-r{toxinidir}/test-requirements.txt
commands =
bandit -r {toxinidir}
[testenv:docs]
pass_env = {[pkgenv]pass_env}
allowlist_externals =
rm
deps =
-r{toxinidir}/doc/requirements.txt
-r{toxinidir}/requirements-frozen.txt
commands =
rm -rf doc/build
sphinx-build -W -b html doc/source doc/build/html
[testenv:pep8]
deps =
-r{toxinidir}/test-requirements.txt
commands =
yapf -ri {toxinidir}/setup.py {toxinidir}/tests {toxinidir}/docs {toxinidir}/kube_utility_container
flake8 {toxinidir}
bandit -r {toxinidir}/kube_utility_container
[flake8]
# [H106] Don't put vim configuration in source files.
# [H203] Use assertIs(Not)None to check for None.
# [H204] Use assert(Not)Equal to check for equality.
# [H205] Use assert(Greater|Less)(Equal) for comparison.
# [H210] Require 'autospec', 'spec', or 'spec_set' in mock.patch/mock.patch.object calls
# [H904] Delay string interpolations at logging calls.
enable-extensions = H106,H203,H204,H205,H210
# [E731] Do not assign a lambda expression, use a def. This reduces readability in some cases.
ignore = E126,E731,F405,H102,H301,H306,H401,H404,H405,H904,W503,W504
exclude = .venv,.git,.tox,dist,*lib/python*,*egg,build,releasenotes,doc,alembic/versions