summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2021-10-25 21:41:01 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2021-12-31 15:56:50 +0100
commitffd410607b5379b95b55ce7e9cfe7d81afb6020b (patch)
tree5c1f3b26851cea39579c3c599eb93f2c1fc48f43
parente334af21f66ed50456fab4d6b996d073cec02ff8 (diff)
downloadpylint-git-tests-for-astroid-1207.tar.gz
Add a regression tests for https://github.com/PyCQA/astroid/pull/1207tests-for-astroid-1207
-rw-r--r--tests/lint/test_pylinter.py17
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