Revise all lint tests and add consolidated 'linters' tox environment

OpenStack-Infra has requested that lint tests be pipelined into the 'linters'
tox target in order to make more efficient use of nodepool resources.

This patch:

- Ensures that a complete set of lints tests is available in individual
  tox targets.
- Adds a 'linters' target which executes all the other lints tests.

Change-Id: I7a682da5c94534dad4da441dbe285e9a33205a95
This commit is contained in:
Jesse Pretorius 2016-02-03 13:01:07 +00:00
parent f009a790e2
commit da3da53c10
1 changed files with 25 additions and 18 deletions

43
tox.ini
View File

@ -1,7 +1,7 @@
[tox]
minversion = 1.6
skipsdist = True
envlist = docs,pep8,bashate
envlist = docs,linters
[testenv]
usedevelop = True
@ -18,11 +18,12 @@ commands=
deps = -r{toxinidir}/test-requirements.txt
commands = {posargs}
# Run hacking/flake8 check for all python files
[testenv:pep8]
deps = flake8
deps =
flake8
whitelist_externals = bash
commands =
# Run hacking/flake8 check for all python files
bash -c "grep -Irl \
-e '!/usr/bin/env python' \
-e '!/bin/python' \
@ -36,26 +37,32 @@ commands =
--exclude '*.sh' \
{toxinidir} | xargs flake8 --verbose"
[flake8]
# Ignores the following rules due to how ansible modules work in general
# F403 'from ansible.module_utils.basic import *' used; unable to detect undefined names
# F403 'from ansible.module_utils.basic import *' used;
# unable to detect undefined names
# H303 No wildcard (*) import.
ignore=F403,H303
# Run bashate check for all bash scripts
# Ignores the following rules:
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
[testenv:bashate]
deps = bashate
deps =
bashate
whitelist_externals = bash
commands =
bash -c "grep -Irl \
-e '!/usr/bin/env bash' \
-e '!/bin/bash' \
-e '!/bin/sh' \
--exclude-dir '.*' \
--exclude-dir '*.egg' \
--exclude-dir '*.egg-info' \
--exclude 'tox.ini' \
{toxinidir} | xargs bashate --verbose --ignore=E003"
# Run bashate check for all bash scripts
# Ignores the following rules:
# E003: Indent not multiple of 4 (we prefer to use multiples of 2)
bash -c "grep --recursive --binary-files=without-match \
--files-with-match '^.!.*\(ba\)\?sh$' \
--exclude-dir .tox \
--exclude-dir .git \
{toxinidir} | xargs bashate --error . --verbose --ignore=E003"
[testenv:linters]
deps =
{[testenv:pep8]deps}
{[testenv:bashate]deps}
whitelist_externals = bash
commands =
{[testenv:pep8]commands}
{[testenv:bashate]commands}