diff options
author | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2022-07-07 14:09:18 +0200 |
---|---|---|
committer | Pierre Sassoulas <pierre.sassoulas@gmail.com> | 2022-07-07 15:24:08 +0200 |
commit | 081289766b265dd0ee962372324a5f967f7a72e8 (patch) | |
tree | de6d72c09cc3c0a5e9ba341ab9c748ae00928021 /doc/test_messages_documentation.py | |
parent | b8c689efadb4b54d8518e1a910eb0c5a5e0ee517 (diff) | |
download | pylint-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.py | 17 |
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") |