Well, mostly. We still keep our own flake8 hooks and the hacking hooks enabled. Everything else can be handled by ruff. Doing this enables a couple of hacking checks that were previously unaddressed. It also highlights a few cases that flake8 missed. Both are addressed. Change-Id: If81c7055e9ef692425da2789bae18a96d04b104f Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
		
			
				
	
	
		
			122 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			INI
		
	
	
	
	
	
[tox]
 | 
						|
minversion = 4.3.0
 | 
						|
envlist = py3,pep8
 | 
						|
 | 
						|
[testenv]
 | 
						|
description =
 | 
						|
    Run unit tests.
 | 
						|
usedevelop = true
 | 
						|
setenv =
 | 
						|
    OS_STDOUT_CAPTURE=1
 | 
						|
    OS_STDERR_CAPTURE=1
 | 
						|
    OS_TEST_TIMEOUT=60
 | 
						|
deps =
 | 
						|
    -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 | 
						|
    -r{toxinidir}/test-requirements.txt
 | 
						|
    -r{toxinidir}/requirements.txt
 | 
						|
commands =
 | 
						|
    stestr run {posargs}
 | 
						|
 | 
						|
[testenv:pep8]
 | 
						|
description =
 | 
						|
    Run style checks.
 | 
						|
skip_install = true
 | 
						|
deps =
 | 
						|
    pre-commit
 | 
						|
commands =
 | 
						|
    pre-commit run --all-files --show-diff-on-failure
 | 
						|
 | 
						|
[testenv:bandit]
 | 
						|
description =
 | 
						|
    Run bandit security checks.
 | 
						|
skip_install = true
 | 
						|
deps =
 | 
						|
    pre-commit
 | 
						|
commands =
 | 
						|
    pre-commit run --all-files --show-diff-on-failure bandit
 | 
						|
 | 
						|
[testenv:unit-tips]
 | 
						|
commands =
 | 
						|
    python -m pip install -q -U -e {toxinidir}/../cliff#egg=cliff
 | 
						|
    python -m pip install -q -U -e {toxinidir}/../keystoneauth#egg=keystoneauth
 | 
						|
    python -m pip install -q -U -e {toxinidir}/../osc-lib#egg=osc_lib
 | 
						|
    python -m pip install -q -U -e {toxinidir}/../openstacksdk#egg=openstacksdk
 | 
						|
    python -m pip freeze
 | 
						|
    stestr run {posargs}
 | 
						|
 | 
						|
[testenv:functional{,-tips,-py38,-py39,-py310,-py311,-py312}]
 | 
						|
description =
 | 
						|
    Run functional tests.
 | 
						|
setenv =
 | 
						|
    OS_TEST_PATH=./openstackclient/tests/functional
 | 
						|
passenv =
 | 
						|
    OS_*
 | 
						|
commands =
 | 
						|
    tips: python -m pip install -q -U -e {toxinidir}/../cliff#egg=cliff
 | 
						|
    tips: python -m pip install -q -U -e {toxinidir}/../keystoneauth#egg=keystoneauth1
 | 
						|
    tips: python -m pip install -q -U -e {toxinidir}/../osc-lib#egg=osc_lib
 | 
						|
    tips: python -m pip install -q -U -e {toxinidir}/../openstacksdk#egg=openstacksdk
 | 
						|
    tips: python -m pip freeze
 | 
						|
    {[testenv]commands}
 | 
						|
 | 
						|
[testenv:venv]
 | 
						|
description =
 | 
						|
    Run specified command in a virtual environment with all dependencies installed.
 | 
						|
deps =
 | 
						|
    -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 | 
						|
    -r{toxinidir}/requirements.txt
 | 
						|
    -r{toxinidir}/doc/requirements.txt
 | 
						|
commands =
 | 
						|
    {posargs}
 | 
						|
 | 
						|
[testenv:cover]
 | 
						|
description =
 | 
						|
    Run unit tests and generate coverage report.
 | 
						|
setenv =
 | 
						|
    {[testenv]setenv}
 | 
						|
    PYTHON=coverage run --source openstackclient --parallel-mode
 | 
						|
commands =
 | 
						|
    stestr run {posargs}
 | 
						|
    coverage combine
 | 
						|
    coverage html -d cover
 | 
						|
    coverage xml -o cover/coverage.xml
 | 
						|
 | 
						|
[testenv:debug]
 | 
						|
description =
 | 
						|
    Run specified tests through oslo_debug_helper, which allows use of pdb.
 | 
						|
passenv =
 | 
						|
    OS_*
 | 
						|
commands =
 | 
						|
    oslo_debug_helper -t openstackclient/tests {posargs}
 | 
						|
 | 
						|
[testenv:docs]
 | 
						|
description =
 | 
						|
    Build documentation in HTML format.
 | 
						|
deps =
 | 
						|
    -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 | 
						|
    -r{toxinidir}/doc/requirements.txt
 | 
						|
commands =
 | 
						|
    sphinx-build -a -E -W -d doc/build/doctrees -b html doc/source doc/build/html
 | 
						|
    sphinx-build -a -E -W -d doc/build/doctrees -b man doc/source doc/build/man
 | 
						|
    # Validate redirects (must be done after the docs build
 | 
						|
    whereto doc/build/html/.htaccess doc/test/redirect-tests.txt
 | 
						|
 | 
						|
[testenv:releasenotes]
 | 
						|
description =
 | 
						|
    Build release note documentation in HTML format.
 | 
						|
deps =
 | 
						|
    -c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 | 
						|
    -r{toxinidir}/doc/requirements.txt
 | 
						|
commands =
 | 
						|
    sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
 | 
						|
 | 
						|
[flake8]
 | 
						|
show-source = true
 | 
						|
exclude = .venv,.git,.tox,dist,doc,*lib/python*,*egg,build,tools,releasenotes
 | 
						|
# We only enable the hacking (H) checks
 | 
						|
select = H
 | 
						|
# H301 Black will put commas after imports that can't fit on one line
 | 
						|
ignore = H301
 | 
						|
import-order-style = pep8
 | 
						|
application_import_names = openstackclient
 |