Skip to content

Commit

Permalink
Update Python lint test
Browse files Browse the repository at this point in the history
The pki-lint script has been split into python-lint.py and
python-flake8.py such that they can run independently. This
way a failure in one test will not prevent the other test
from running.
  • Loading branch information
edewata committed Jan 21, 2025
1 parent bb22542 commit 126c573
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 13 deletions.
8 changes: 7 additions & 1 deletion .github/workflows/python-lint-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,13 @@ jobs:
HOSTNAME: pki.example.com

- name: Run Python lint
if: always()
run: |
docker exec pki pylint-3 --version
docker exec pki /usr/share/pki/tests/bin/python-lint.py
- name: Run Python flake8
if: always()
run: |
docker exec pki python3-flake8 --version
docker exec pki /usr/share/pki/tests/bin/pki-lint
docker exec pki /usr/share/pki/tests/bin/python-flake8.py
13 changes: 1 addition & 12 deletions tests/bin/pki-lint → tests/bin/python-flake8.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,12 @@
BIN_DIR=`dirname "$SCRIPT_PATH"`
TESTS_DIR=`dirname "$BIN_DIR"`

RC_FILE="$TESTS_DIR/pylintrc"
FLAKE8_CONFIG="$TESTS_DIR/tox.ini"

usage() {
echo "Usage: $SCRIPT_NAME [OPTIONS]"
echo
echo "Options:"
echo " --rcfile=<path> pylint configuration (default: $RC_FILE)"
echo " --config=<path> flake8 configuration (default: $FLAKE8_CONFIG)"
echo " -v,--verbose Run in verbose mode."
echo " --debug Run in debug mode."
Expand All @@ -29,9 +27,6 @@
LONG_OPTARG="${OPTARG#*=}"

case $OPTARG in
rcfile=?*)
RC_FILE="$LONG_OPTARG"
;;
config?*)
FLAKE8_CONFIG="$LONG_OPTARG"
;;
Expand All @@ -42,7 +37,7 @@
'')
break # "--" terminates argument processing
;;
rcfile* | config*)
config*)
echo "ERROR: Missing argument for --$OPTARG option" >&2
exit 1
;;
Expand Down Expand Up @@ -70,12 +65,6 @@
SOURCES="$SOURCES `find /usr/share/pki/upgrade -name "*.py"`"
SOURCES="$SOURCES `find /usr/share/pki/server/upgrade -name "*.py"`"

echo "Running pylint..."
pylint-3 \
--rcfile=${RC_FILE} \
$SOURCES

echo "Running flake8..."
python3-flake8 \
--config ${FLAKE8_CONFIG} \
$SOURCES
70 changes: 70 additions & 0 deletions tests/bin/python-lint.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#! /bin/bash -e

SCRIPT_PATH=`readlink -f "$0"`
SCRIPT_NAME=`basename "$SCRIPT_PATH"`

BIN_DIR=`dirname "$SCRIPT_PATH"`
TESTS_DIR=`dirname "$BIN_DIR"`

RC_FILE="$TESTS_DIR/pylintrc"

usage() {
echo "Usage: $SCRIPT_NAME [OPTIONS]"
echo
echo "Options:"
echo " --rcfile=<path> pylint configuration (default: $RC_FILE)"
echo " -v,--verbose Run in verbose mode."
echo " --debug Run in debug mode."
echo " --help Show help message."
}

while getopts v-: arg ; do
case $arg in
v)
set -x
;;
-)
LONG_OPTARG="${OPTARG#*=}"

case $OPTARG in
rcfile=?*)
RC_FILE="$LONG_OPTARG"
;;
help)
usage
exit
;;
'')
break # "--" terminates argument processing
;;
rcfile*)
echo "ERROR: Missing argument for --$OPTARG option" >&2
exit 1
;;
*)
echo "ERROR: Illegal option --$OPTARG" >&2
exit 1
;;
esac
;;
\?)
exit 1 # getopts already reported the illegal option
;;
esac
done

PATHS=`python3 -Ic "import sys; print(' '.join(sys.path))"`
SOURCES=""

for path in $PATHS; do
if [ -d $path/pki ]; then
SOURCES="$SOURCES `find $path/pki -name "*.py"`"
fi
done

SOURCES="$SOURCES `find /usr/share/pki/upgrade -name "*.py"`"
SOURCES="$SOURCES `find /usr/share/pki/server/upgrade -name "*.py"`"

pylint-3 \
--rcfile=${RC_FILE} \
$SOURCES

0 comments on commit 126c573

Please sign in to comment.