summaryrefslogtreecommitdiff
path: root/doc/test_messages_documentation.py
diff options
context:
space:
mode:
authorPierre Sassoulas <pierre.sassoulas@gmail.com>2022-07-07 14:09:18 +0200
committerPierre Sassoulas <pierre.sassoulas@gmail.com>2022-07-07 15:24:08 +0200
commit081289766b265dd0ee962372324a5f967f7a72e8 (patch)
treede6d72c09cc3c0a5e9ba341ab9c748ae00928021 /doc/test_messages_documentation.py
parentb8c689efadb4b54d8518e1a910eb0c5a5e0ee517 (diff)
downloadpylint-git-081289766b265dd0ee962372324a5f967f7a72e8.tar.gz
[test documentation] Better error message when good.py tests fail
Co-authored-by: Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>
Diffstat (limited to 'doc/test_messages_documentation.py')
-rw-r--r--doc/test_messages_documentation.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/doc/test_messages_documentation.py b/doc/test_messages_documentation.py
index 2a422fde9..038674916 100644
--- a/doc/test_messages_documentation.py
+++ b/doc/test_messages_documentation.py
@@ -149,13 +149,26 @@ class LintModuleTest:
expected_messages = self._get_expected()
actual_messages = self._get_actual()
if self.is_good_test_file():
- msg = "There should be no warning raised for 'good.py'"
- assert actual_messages.total() == 0, msg # type: ignore[attr-defined]
+ assert actual_messages.total() == 0, self.assert_message_good(actual_messages) # type: ignore[attr-defined]
if self.is_bad_test_file():
msg = "There should be at least one warning raised for 'bad.py'"
assert actual_messages.total() > 0, msg # type: ignore[attr-defined]
assert expected_messages == actual_messages
+ def assert_message_good(self, actual_messages: MessageCounter) -> str:
+ messages = "\n- ".join(f"{v} (l. {i})" for i, v in actual_messages)
+ msg = f"""There should be no warning raised for 'good.py' but these messages were raised:
+- {messages}
+
+See:
+
+"""
+ with open(self._test_file[1]) as f:
+ lines = [line[:-1] for line in f.readlines()]
+ for line_index, value in actual_messages:
+ lines[line_index - 1] += f" # <-- /!\\ unexpected '{value}' /!\\"
+ return msg + "\n".join(lines)
+
@pytest.mark.parametrize("test_file", TESTS, ids=TESTS_NAMES)
@pytest.mark.filterwarnings("ignore::DeprecationWarning")