diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-10-25 21:41:01 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2021-12-31 15:56:50 +0100 |
commit | ffd410607b5379b95b55ce7e9cfe7d81afb6020b (patch) | |
tree | 5c1f3b26851cea39579c3c599eb93f2c1fc48f43 | |
parent | e334af21f66ed50456fab4d6b996d073cec02ff8 (diff) | |
download | pylint-git-ffd410607b5379b95b55ce7e9cfe7d81afb6020b.tar.gz |
Add a regression tests for https://github.com/PyCQA/astroid/pull/1207tests-for-astroid-1207
-rw-r--r-- | tests/lint/test_pylinter.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/lint/test_pylinter.py b/tests/lint/test_pylinter.py index 9d6695a25..6adcab3b7 100644 --- a/tests/lint/test_pylinter.py +++ b/tests/lint/test_pylinter.py @@ -1,10 +1,11 @@ from typing import Any, NoReturn from unittest.mock import patch -from astroid import AstroidBuildingError +from astroid import AstroidBuildingError, extract_node, nodes from py._path.local import LocalPath # type: ignore[import] from pytest import CaptureFixture +from pylint.checkers.utils import safe_infer from pylint.lint.pylinter import PyLinter from pylint.utils import FileState @@ -13,6 +14,20 @@ def raise_exception(*args: Any, **kwargs: Any) -> NoReturn: raise AstroidBuildingError(modname="spam") +def test_safe_infer_on_bz2_compress_return(): + """Regression tests for https://github.com/PyCQA/astroid/pull/1207""" + src_node = extract_node('import bz2\nunused = bz2.compress(b"")') + assignment = next(src_node.nodes_of_class(nodes.Assign)) + inferred = safe_infer(assignment.value.func) + assert isinstance(inferred, nodes.FunctionDef), str(inferred) + try: + value = next(inferred.nodes_of_class(nodes.Return)) + assert isinstance(value, nodes.Return) + assert value.parent.name == "compress" + except StopIteration: + assert False, f"No return found in body of:\n{str(inferred)}." + + @patch.object(FileState, "iter_spurious_suppression_messages", raise_exception) def test_crash_in_file( linter: PyLinter, capsys: CaptureFixture, tmpdir: LocalPath |