diff --git a/HACKING.rst b/HACKING.rst index eb6551abdc..1559fc69d2 100644 --- a/HACKING.rst +++ b/HACKING.rst @@ -28,6 +28,8 @@ Tempest Specific Commandments - [T117] Check negative tests have ``@decorators.attr(type=['negative'])`` applied. +It is recommended to use ``tox -eautopep8`` before submitting a patch. + Test Data/Configuration ----------------------- - Assume nothing about existing test data diff --git a/tools/format.sh b/tools/format.sh index adffb8cc64..dec8f1cdbe 100755 --- a/tools/format.sh +++ b/tools/format.sh @@ -1,5 +1,29 @@ #!/bin/bash + cd $(dirname "$(readlink -f "$0")") -autopep8 --exit-code --max-line-length=79 --experimental --in-place -r ../tempest ../setup.py && echo Formatting was not needed. >&2 +AUTOPEP8=`which autopep8 2>/dev/null` +if [[ -z "$AUTOPEP8" ]]; then + AUTOPEP8=`which autopep8-3` +fi + +if [[ -z "$AUTOPEP8" ]]; then + echo "Unable to locate autopep8" >&2 + exit 2 +fi + +# isort is not compatible with the default flake8 (H306), maybe flake8-isort +# isort -rc -sl -fss ../tempest ../setup.py +$AUTOPEP8 --exit-code --max-line-length=79 --experimental --in-place -r ../tempest ../setup.py +ERROR=$? + +if [[ $ERROR -eq 0 ]]; then + echo "Formatting was not needed." >&2 + exit 0 +elif [[ $ERROR -eq 1 ]]; then + echo "Formatting failed.." >&2 + exit 1 +else + echo "done" >&2 +fi diff --git a/tox.ini b/tox.ini index 433f16841f..230249f4fc 100644 --- a/tox.ini +++ b/tox.ini @@ -198,7 +198,7 @@ whitelist_externals = rm [testenv:pep8] deps = - -r test-requirements.txt + -r{toxinidir}/test-requirements.txt autopep8 basepython = python3 commands = @@ -210,7 +210,7 @@ commands = deps = autopep8 basepython = python3 commands = - autopep8 --max-line-length=79 --experimental --in-place -r tempest setup.py + {toxinidir}/tools/format.sh [testenv:uuidgen] commands =