summaryrefslogtreecommitdiffstats
path: root/make-lint
diff options
context:
space:
mode:
authorDavid Kupka <dkupka@redhat.com>2015-04-23 14:38:55 +0200
committerTomas Babej <tbabej@redhat.com>2015-04-24 15:57:45 +0200
commit4a5f5b14c3159e3517b2bfefc3e89f16cebe9d4b (patch)
tree88c688c3517eaec8db073a11cdf740ede0d588cf /make-lint
parent528e9503ed71c7d4b5231689ceb8bb37901efced (diff)
downloadfreeipa-4a5f5b14c3159e3517b2bfefc3e89f16cebe9d4b.tar.gz
freeipa-4a5f5b14c3159e3517b2bfefc3e89f16cebe9d4b.tar.xz
freeipa-4a5f5b14c3159e3517b2bfefc3e89f16cebe9d4b.zip
Lint: Skip checking of functions stolen by python-nose.
python-nose modifies namespaces in a way that confuses pylint. To skip these PyCheckers' visit_callfunc method must be extended. Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'make-lint')
-rwxr-xr-xmake-lint13
1 files changed, 11 insertions, 2 deletions
diff --git a/make-lint b/make-lint
index 33adf38ff..2dce0d147 100755
--- a/make-lint
+++ b/make-lint
@@ -29,7 +29,8 @@ try:
from pylint import checkers
from pylint.lint import PyLinter
from pylint.checkers.typecheck import TypeChecker
- from astroid import Class, Instance, Module, InferenceError
+ from pylint.checkers.utils import safe_infer
+ from astroid import Class, Instance, Module, InferenceError, Function
from pylint.reporters.text import TextReporter
except ImportError:
print >> sys.stderr, "To use {0}, please install pylint.".format(sys.argv[0])
@@ -58,7 +59,7 @@ class IPATypeChecker(TypeChecker):
'fragment', 'username', 'password', 'hostname', 'port'],
'urlparse.ParseResult': ['params'],
'pytest': ['fixture', 'raises', 'skip', 'yield_fixture', 'mark', 'fail'],
- 'nose.tools': ['assert_equal', 'assert_raises'],
+ 'unittest.case': ['assertEqual', 'assertRaises'],
'datetime.tzinfo': ['houroffset', 'minoffset', 'utcoffset', 'dst'],
# IPA classes
@@ -130,6 +131,14 @@ class IPATypeChecker(TypeChecker):
super(IPATypeChecker, self).visit_getattr(node)
+ def visit_callfunc(self, node):
+ called = safe_infer(node.func)
+ if isinstance(called, Function):
+ if called.name in self.ignore.get(called.root().name, []):
+ return
+
+ super(IPATypeChecker, self).visit_callfunc(node)
+
class IPALinter(PyLinter):
ignore = (TypeChecker,)