summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAshley Whetter <ashley@awhetter.co.uk>2016-07-13 21:26:10 +0100
committerClaudiu Popa <pcmanticore@gmail.com>2016-07-15 10:17:46 +0300
commit45f24844c6d53dd742b7e76bb36c0aae398da7b0 (patch)
tree9d63d30ae4128ceff5ba2afa598ec57a35badc15
parent5c18af73f57081fa4dc8684bb8490dd5ad54d2ec (diff)
downloadpylint-git-45f24844c6d53dd742b7e76bb36c0aae398da7b0.tar.gz
possible_exc_types checks for Uninferables
Fixes #998
-rw-r--r--pylint/extensions/_check_docs_utils.py3
-rw-r--r--pylint/test/extensions/test_check_docs_utils.py13
2 files changed, 15 insertions, 1 deletions
diff --git a/pylint/extensions/_check_docs_utils.py b/pylint/extensions/_check_docs_utils.py
index fe6cb1808..759c72d69 100644
--- a/pylint/extensions/_check_docs_utils.py
+++ b/pylint/extensions/_check_docs_utils.py
@@ -68,7 +68,8 @@ def possible_exc_types(node):
handler = handler.parent
if handler and handler.type:
- excs = (exc.name for exc in astroid.unpack_infer(handler.type))
+ excs = astroid.unpack_infer(handler.type)
+ excs = (exc.name for exc in excs if exc is not astroid.Uninferable)
excs = set(exc for exc in excs if not node_ignores_exception(node, exc))
return excs
diff --git a/pylint/test/extensions/test_check_docs_utils.py b/pylint/test/extensions/test_check_docs_utils.py
index 4931d6a3d..b55cf5b03 100644
--- a/pylint/test/extensions/test_check_docs_utils.py
+++ b/pylint/test/extensions/test_check_docs_utils.py
@@ -125,5 +125,18 @@ class PossibleExcTypesText(unittest.TestCase):
expected = set(["RuntimeError", "ValueError"])
self.assertEqual(found, expected)
+ def test_ignores_uninferable_type(self):
+ raise_node = astroid.extract_node('''
+ import not_a_module
+ def my_func():
+ try:
+ fake_func()
+ except not_a_module.Error:
+ raise #@
+ ''')
+ found = utils.possible_exc_types(raise_node)
+ expected = set()
+ self.assertEqual(found, expected)
+
if __name__ == '__main__':
unittest.main()