<commit_before>[tox]
minversion = 3.1
envlist = pep8,py27,py37
skipsdist = True
ignore_basepython_conflict = True

[testenv]
usedevelop = True
install_command = pip install {opts} {packages}
passenv = OS_* OPENSTACKSDK_*
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
setenv =
    VIRTUAL_ENV={envdir}
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LC_ALL=C
    OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
    OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
    OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
    -r{toxinidir}/test-requirements.txt
    -r{toxinidir}/requirements.txt
commands = stestr run {posargs}
           stestr slowest

[testenv:examples]
commands = stestr --test-path ./openstack/tests/examples run {posargs}
           stestr slowest

[testenv:functional]
# Some jobs (especially heat) takes longer, therefore increase default timeout
# This timeout should not be smaller, than the longest individual timeout
setenv =
    {[testenv]setenv}
    OS_TEST_TIMEOUT=600
    OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
commands = stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs}
           stestr slowest

[testenv:pep8]
commands =
    flake8
    doc8 doc/source README.rst

[hacking]
local-check-factory = openstack._hacking.factory

[testenv:venv]
commands = {posargs}

[testenv:debug]
# allow 1 year, or 31536000 seconds, to debug a test before it times out
setenv = OS_TEST_TIMEOUT=31536000
whitelist_externals = find
commands =
    find . -type f -name "*.pyc" -delete
    oslo_debug_helper -t openstack/tests {posargs}

[testenv:cover]
setenv =
    {[testenv]setenv}
    PYTHON=coverage run --source openstack --parallel-mode
commands =
    stestr run {posargs}
    coverage combine
    coverage html -d cover
    coverage xml -o cover/coverage.xml

[testenv:ansible]
# Need to pass some env vars for the Ansible playbooks
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
passenv = HOME USER ANSIBLE_VAR_*
deps =
    {[testenv]deps}
    ansible
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}

[testenv:docs]
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/doc/requirements.txt
commands =
    sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html

[testenv:pdf-docs]
deps = {[testenv:docs]deps}
whitelist_externals =
    make
commands =
    sphinx-build -W -d doc/build/doctrees -b latex doc/source/ doc/build/pdf
    make -C doc/build/pdf

[testenv:releasenotes]
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt}
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html

[flake8]
# The following are ignored on purpose. It's not super worth it to fix them.
# However, if you feel strongly about it, patches will be accepted to fix them
# if they fix ALL of the occurances of one and only one of them.
# H306 Is about alphabetical imports - there's a lot to fix.
# H4 Are about docstrings and there's just a huge pile of pre-existing issues.
# W503 Is supposed to be off by default but in the latest pycodestyle isn't.
#      Also, both openstacksdk and Donald Knuth disagree with the rule. Line
#      breaks should occur before the binary operator for readability.
ignore = H306,H4,W503
show-source = True
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build

[doc8]<commit_msg>Update the constraints url<commit_after>[tox]
minversion = 3.1
envlist = pep8,py27,py37
skipsdist = True
ignore_basepython_conflict = True

[testenv]
usedevelop = True
install_command = pip install {opts} {packages}
passenv = OS_* OPENSTACKSDK_*
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
setenv =
    VIRTUAL_ENV={envdir}
    LANG=en_US.UTF-8
    LANGUAGE=en_US:en
    LC_ALL=C
    OS_LOG_CAPTURE={env:OS_LOG_CAPTURE:true}
    OS_STDOUT_CAPTURE={env:OS_STDOUT_CAPTURE:true}
    OS_STDERR_CAPTURE={env:OS_STDERR_CAPTURE:true}
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
    -r{toxinidir}/test-requirements.txt
    -r{toxinidir}/requirements.txt
commands = stestr run {posargs}
           stestr slowest

[testenv:examples]
commands = stestr --test-path ./openstack/tests/examples run {posargs}
           stestr slowest

[testenv:functional]
# Some jobs (especially heat) takes longer, therefore increase default timeout
# This timeout should not be smaller, than the longest individual timeout
setenv =
    {[testenv]setenv}
    OS_TEST_TIMEOUT=600
    OPENSTACKSDK_FUNC_TEST_TIMEOUT_LOAD_BALANCER=600
commands = stestr --test-path ./openstack/tests/functional/{env:OPENSTACKSDK_TESTS_SUBDIR:} run --serial {posargs}
           stestr slowest

[testenv:pep8]
commands =
    flake8
    doc8 doc/source README.rst

[hacking]
local-check-factory = openstack._hacking.factory

[testenv:venv]
commands = {posargs}

[testenv:debug]
# allow 1 year, or 31536000 seconds, to debug a test before it times out
setenv = OS_TEST_TIMEOUT=31536000
whitelist_externals = find
commands =
    find . -type f -name "*.pyc" -delete
    oslo_debug_helper -t openstack/tests {posargs}

[testenv:cover]
setenv =
    {[testenv]setenv}
    PYTHON=coverage run --source openstack --parallel-mode
commands =
    stestr run {posargs}
    coverage combine
    coverage html -d cover
    coverage xml -o cover/coverage.xml

[testenv:ansible]
# Need to pass some env vars for the Ansible playbooks
basepython = {env:OPENSTACKSDK_TOX_PYTHON:python3}
passenv = HOME USER ANSIBLE_VAR_*
deps =
    {[testenv]deps}
    ansible
commands = {toxinidir}/extras/run-ansible-tests.sh -e {envdir} {posargs}

[testenv:docs]
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/doc/requirements.txt
commands =
    sphinx-build -W -d doc/build/doctrees -b html doc/source/ doc/build/html

[testenv:pdf-docs]
deps = {[testenv:docs]deps}
whitelist_externals =
    make
commands =
    sphinx-build -W -d doc/build/doctrees -b latex doc/source/ doc/build/pdf
    make -C doc/build/pdf

[testenv:releasenotes]
deps =
    -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
    -r{toxinidir}/requirements.txt
    -r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html

[flake8]
# The following are ignored on purpose. It's not super worth it to fix them.
# However, if you feel strongly about it, patches will be accepted to fix them
# if they fix ALL of the occurances of one and only one of them.
# H306 Is about alphabetical imports - there's a lot to fix.
# H4 Are about docstrings and there's just a huge pile of pre-existing issues.
# W503 Is supposed to be off by default but in the latest pycodestyle isn't.
#      Also, both openstacksdk and Donald Knuth disagree with the rule. Line
#      breaks should occur before the binary operator for readability.
ignore = H306,H4,W503
show-source = True
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build

[doc8]
{'fraction_non_alphanumeric': 0.10072134651349185, 'fraction_numerical': 0.013892599519102324, 'mean_word_length': 4.184903047091413, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 4}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2378826', 'n_tokens_mistral': 2792, 'n_tokens_neox': 2659, 'n_words': 654}