| from unittest.mock import patch |
| |
| from astroid import AstroidBuildingError |
| |
| from pylint.utils import FileState |
| |
| |
| def raise_exception(*args, **kwargs): |
| raise AstroidBuildingError(modname="spam") |
| |
| |
| @patch.object(FileState, "iter_spurious_suppression_messages", raise_exception) |
| def test_crash_in_file(linter, capsys, tmpdir): |
| args = linter.load_command_line_configuration([__file__]) |
| linter.crash_file_path = str(tmpdir / "pylint-crash-%Y") |
| linter.check(args) |
| out, err = capsys.readouterr() |
| assert not out |
| assert not err |
| files = tmpdir.listdir() |
| assert len(files) == 1 |
| assert "pylint-crash-20" in str(files[0]) |
| with open(files[0], encoding="utf8") as f: |
| content = f.read() |
| assert "Failed to import module spam." in content |