mirror of
https://github.com/virt-manager/virt-manager.git
synced 2024-10-27 10:25:25 +03:00
Add 'make check-pylint' command.
This commit is contained in:
parent
bebd868d65
commit
83884c0ef6
@ -9,3 +9,6 @@ DISTCLEAN_FILES = @PACKAGE@.spec intltool-extract intltool-merge intltool-update
|
||||
|
||||
rpm: clean
|
||||
$(MAKE) dist && rpmbuild -ta $(distdir).tar.gz
|
||||
|
||||
check-pylint:
|
||||
tests/pylint-virt-manager.sh
|
||||
|
113
tests/pylint-virt-manager.sh
Normal file
113
tests/pylint-virt-manager.sh
Normal file
@ -0,0 +1,113 @@
|
||||
#!/bin/sh
|
||||
|
||||
# pylint doesn't work well with a file named xxx.py.xxx
|
||||
cp src/virt-manager.py.in src/_virt-manager
|
||||
|
||||
cd src || exit 1
|
||||
|
||||
IGNOREFILES="IPy.py"
|
||||
FILES="virtManager/ _virt-manager"
|
||||
|
||||
# Deliberately ignored warnings:
|
||||
# Don't print pylint config warning
|
||||
NO_PYL_CONFIG=".*No config file found.*"
|
||||
|
||||
# The gettext function is installed in the builtin namespace
|
||||
GETTEXT_VAR="Undefined variable '_'"
|
||||
|
||||
# These all work fine and are legit, just false positives
|
||||
GOBJECT_VAR="has no '__gobject_init__' member"
|
||||
EMIT_VAR="has no 'emit' member"
|
||||
ERROR_VBOX="vmmErrorDialog.__init__.*Class 'vbox' has no 'pack_start' member"
|
||||
EXCEPTHOOK="no '__excepthook__' member"
|
||||
CONNECT_VAR="no 'connect' member"
|
||||
|
||||
# os._exit is needed for forked processes.
|
||||
OS_EXIT="protected member _exit of a client class"
|
||||
|
||||
# Avahi API may have requirements on callback argument names, so ignore these
|
||||
# warnings
|
||||
BTYPE_LIST="(vmmConnect.add_service|vmmConnect.remove_service|vmmConnect.add_conn_to_list)"
|
||||
BUILTIN_TYPE="${BTYPE_LIST}.*Redefining built-in 'type'"
|
||||
|
||||
|
||||
DMSG=""
|
||||
addmsg() {
|
||||
DMSG="${DMSG},$1"
|
||||
}
|
||||
|
||||
addchecker() {
|
||||
DCHECKERS="${DCHECKERS},$1"
|
||||
}
|
||||
|
||||
# Disabled unwanted messages
|
||||
addmsg "C0103" # C0103: Name doesn't match some style regex
|
||||
addmsg "C0111" # C0111: No docstring
|
||||
addmsg "C0301" # C0301: Line too long
|
||||
addmsg "C0302" # C0302: Too many lines in module
|
||||
addmsg "C0324" # C0324: *Comma not followed by a space*
|
||||
addmsg "R0201" # R0201: Method could be a function
|
||||
addmsg "W0105" # W0105: String statement has no effect
|
||||
addmsg "W0141" # W0141: Complaining about 'map' and 'filter'
|
||||
addmsg "W0142" # W0142: *Used * or ** magic*
|
||||
addmsg "W0403" # W0403: Relative imports
|
||||
addmsg "W0603" # W0603: Using the global statement
|
||||
addmsg "W0702" # W0703: No exception type specified
|
||||
addmsg "W0703" # W0703: Catch 'Exception'
|
||||
addmsg "W0704" # W0704: Exception doesn't do anything
|
||||
|
||||
# Potentially useful messages, disabled for now
|
||||
addmsg "C0322" # C0322: *Operator not preceded by a space*
|
||||
addmsg "C0323" # C0323: *Operator not followed by a space*
|
||||
addmsg "W0201" # W0201: Defined outside __init__
|
||||
addmsg "W0511" # W0511: FIXME and XXX: messages
|
||||
addmsg "W0613" # W0613: Unused arguments
|
||||
|
||||
# Disabled Checkers:
|
||||
addchecker "Design" # Things like "Too many func arguments",
|
||||
# "Too man public methods"
|
||||
addchecker "Similarities" # Finds duplicate code (enable this later?)
|
||||
|
||||
# May want to enable this in the future
|
||||
SHOW_REPORT="n"
|
||||
|
||||
AWK=awk
|
||||
[ `uname -s` = 'SunOS' ] && AWK=nawk
|
||||
|
||||
pylint --ignore=IPy.py $FILES \
|
||||
--reports=$SHOW_REPORT \
|
||||
--output-format=colorized \
|
||||
--dummy-variables-rgx="dummy|ignore*" \
|
||||
--disable-msg=${DMSG}\
|
||||
--disable-checker=${DCHECKERS} 2>&1 | \
|
||||
egrep -ve "$NO_PYL_CONFIG" \
|
||||
-ve "$GOBJECT_VAR" \
|
||||
-ve "$EMIT_VAR" \
|
||||
-ve "$CONNECT_VAR" \
|
||||
-ve "$GETTEXT_VAR" \
|
||||
-ve "$OS_EXIT" \
|
||||
-ve "$BUILTIN_TYPE" \
|
||||
-ve "$ERROR_VBOX" \
|
||||
-ve "$EXCEPTHOOK" | \
|
||||
$AWK '\
|
||||
# Strip out any "*** Module name" lines if we dont list any errors for them
|
||||
BEGIN { found=0; cur_line="" }
|
||||
{
|
||||
if (found == 1) {
|
||||
if ( /\*\*\*/ ) {
|
||||
prev_line = $0
|
||||
} else {
|
||||
print prev_line
|
||||
print $0
|
||||
found = 0
|
||||
}
|
||||
} else if ( /\*\*\*/ ) {
|
||||
found = 1
|
||||
prev_line = $0
|
||||
} else {
|
||||
print $0
|
||||
}
|
||||
}'
|
||||
|
||||
cd - > /dev/null
|
||||
rm src/_virt-manager
|
Loading…
Reference in New Issue
Block a user