diff --git a/tests/scripts/check-python-files.sh b/tests/scripts/check-python-files.sh index 518c423d9c..a80860d515 100755 --- a/tests/scripts/check-python-files.sh +++ b/tests/scripts/check-python-files.sh @@ -14,11 +14,13 @@ # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. -# -# Purpose: -# -# Run 'pylint' on Python files for programming errors and helps enforcing -# PEP8 coding standards. + +# Purpose: check Python files for potential programming errors or maintenance +# hurdles. Run pylint to detect some potential mistakes and enforce PEP8 +# coding standards. If available, run mypy to perform static type checking. + +# We'll keep going on errors and report the status at the end. +ret=0 if type python3 >/dev/null 2>/dev/null; then PYTHON=python3 @@ -26,4 +28,17 @@ else PYTHON=python fi -$PYTHON -m pylint -j 2 scripts/*.py tests/scripts/*.py +$PYTHON -m pylint -j 2 scripts/*.py tests/scripts/*.py || { + echo >&2 "pylint reported errors" + ret=1 +} + +# Check types if mypy is available +if type mypy >/dev/null 2>/dev/null; then + echo + echo 'Running mypy ...' + mypy scripts/*.py tests/scripts/*.py || + ret=1 +fi + +exit $ret