[tox] minversion = 4.2.5 envlist = py38,py39,py311,pep8 ignore_basepython_conflict = True [testenv] basepython = python3 usedevelop = True setenv = VIRTUAL_ENV={envdir} OBSERVABILITY_CLIENT_EXEC_DIR={envdir}/bin OS_TEST_PATH = ./observabilityclient/tests/unit passenv = PROMETHEUS_* OBSERVABILITY_* deps = -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands = stestr run --slowest {posargs} --test-path {env:OS_TEST_PATH} [testenv:pep8] basepython = python3 deps = hacking<3.1.0,>=3.0 commands = flake8 [testenv:venv] commands = {posargs} [testenv:cover] deps = {[testenv]deps} pytest-cov commands = observabilityclient {posargs} {env:$OS_TEST_PATH} [testenv:functional] setenv = OS_TEST_PATH = ./observabilityclient/tests/functional OS_TESTENV_NAME = {envname} allowlist_externals = bash deps = {[testenv]deps} pytest commands = bash tools/fix_ca_bundle.sh stestr run --slowest {posargs} --test-path {env:OS_TEST_PATH} [flake8] show-source = True # A002 argument "input" is shadowing a python builtin # A003 class attribute "list" is shadowing a python builtin # D100 Missing docstring in public module # D101 Missing docstring in public class # D102 Missing docstring in public method # D103 Missing docstring in public function # D104 Missing docstring in public package # D105 Missing docstring in magic method # D106 Missing docstring in public nested class # D107 Missing docstring in __init__ # W503 line break before binary operator # W504 line break after binary operator ignore = A002,A003,D100,D101,D102,D103,D104,D105,D106,D107,W503,W504 exclude=.venv,.git,.tox,dist,doc,*egg,build # [H101] Include your name with TODOs as in # TODO(yourname). # [H104] Empty files should not contain license or comments # [H106] Do not put vim configuration in source files. # [H201] Do not write except:, use except Exception: at the very least. # [H202] Testing for Exception being raised # [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. # [H23] Py3 compat # [H301] Do not import more than one module per line (*) # [H303] Do not use wildcard * import (*) # [H304] Do not make relative imports # [H306] Alphabetically order your imports by the full module path. enable-extensions=G,H101,H104,H106,H201,H202,H203,H204,H205,H23,H301,H303,H304,H306 application-import-names = observabilityclient [pytest] addopts = --verbose norecursedirs = .tox [testenv:releasenotes] deps = -r{toxinidir}/doc/requirements.txt -r{toxinidir}/requirements.txt allowlist_externals = sphinx-build commands = sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html