diff options
author | Ashley Whetter <ashley@awhetter.co.uk> | 2016-07-13 21:26:10 +0100 |
---|---|---|
committer | Claudiu Popa <pcmanticore@gmail.com> | 2016-07-15 10:17:46 +0300 |
commit | 45f24844c6d53dd742b7e76bb36c0aae398da7b0 (patch) | |
tree | 9d63d30ae4128ceff5ba2afa598ec57a35badc15 | |
parent | 5c18af73f57081fa4dc8684bb8490dd5ad54d2ec (diff) | |
download | pylint-git-45f24844c6d53dd742b7e76bb36c0aae398da7b0.tar.gz |
possible_exc_types checks for Uninferables
Fixes #998
-rw-r--r-- | pylint/extensions/_check_docs_utils.py | 3 | ||||
-rw-r--r-- | pylint/test/extensions/test_check_docs_utils.py | 13 |
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() |