Implement tox.ini config for bashate and pep8 tests

This patch implements tox.ini configuration for bashate and pep8
tests for the purpose of implementing the standard openstack-infra
tests for these.

Change-Id: I72623ea3d531614a803f6b97a9f61f56c376c723
Implements: blueprint gate-split
This commit is contained in:
Jesse Pretorius 2015-08-24 10:40:30 +01:00
parent a40cb58118
commit f82a179de1
1 changed files with 35 additions and 9 deletions

44
tox.ini
View File

@ -1,7 +1,7 @@
[tox]
minversion = 1.6
skipsdist = True
envlist = docs,pep8
envlist = docs,pep8,bashate
[testenv]
usedevelop = True
@ -18,14 +18,40 @@ commands=
deps = -r{toxinidir}/dev-requirements.txt
commands = {posargs}
# Run hacking/flake8 check for all python files
[testenv:pep8]
whitelist_externals = bash
deps = flake8
commands =
bash -c "grep -Irl \
-e '!/usr/bin/env python' \
-e '!/bin/python' \
-e '!/usr/bin/python' \
--exclude-dir '.*' \
--exclude-dir '*.egg' \
--exclude-fir '*.egg-info' \
--exclude 'tox.ini' \
--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
# 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
whitelist_externals = bash
commands =
flake8 {posargs}
# Run bash8 during pep8 runs to ensure violations are caught by
# the check and gate queues
bash -c "find {toxinidir} \
-not -path '*/\.*' \ # stay out of the dot directories
-name '*sh' \ # all shell scripts please
-print0 | xargs -0 bashate -v -i E003,E011"
bash -c "grep -Irl \
-e '!/usr/bin/env bash' \
-e '!/bin/bash' \
-e '!/bin/sh' \
--exclude-dir '.*' \
--exclude-dir '*.egg' \
--exclude-fir '*.egg-info' \
--exclude 'tox.ini' \
{toxinidir} | xargs bashate --verbose --ignore=E003"