From 77933ce2c674abaeaefb29d7401c55d549496836 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 4 Jun 2024 00:04:10 -0700 Subject: [PATCH 1/5] switch the assert order --- pylint/testutils/lint_module_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py index 48ee5a0b2f..9d76f76d69 100644 --- a/pylint/testutils/lint_module_test.py +++ b/pylint/testutils/lint_module_test.py @@ -253,12 +253,12 @@ def _runTest(self) -> None: self._linter.check(modules_to_check) expected_messages, expected_output = self._get_expected() actual_messages, actual_output = self._get_actual() + self._check_output_text(expected_messages, expected_output, actual_output) assert ( expected_messages == actual_messages ), self.error_msg_for_unequal_messages( actual_messages, expected_messages, actual_output ) - self._check_output_text(expected_messages, expected_output, actual_output) def error_msg_for_unequal_messages( self, From 6b0fb2c730064a657f2a3813f06068eccc025dd8 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 4 Jun 2024 01:23:53 -0700 Subject: [PATCH 2/5] hack --- pylint/testutils/lint_module_test.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py index 9d76f76d69..a36ad89c24 100644 --- a/pylint/testutils/lint_module_test.py +++ b/pylint/testutils/lint_module_test.py @@ -253,12 +253,17 @@ def _runTest(self) -> None: self._linter.check(modules_to_check) expected_messages, expected_output = self._get_expected() actual_messages, actual_output = self._get_actual() - self._check_output_text(expected_messages, expected_output, actual_output) - assert ( - expected_messages == actual_messages - ), self.error_msg_for_unequal_messages( - actual_messages, expected_messages, actual_output - ) + try: + assert ( + expected_messages == actual_messages + ), self.error_msg_for_unequal_messages( + actual_messages, expected_messages, actual_output + ) + except AssertionError: + raise + finally: + # _check_output_text is always ran in case we are updating expected output file + self._check_output_text(expected_messages, expected_output, actual_output) def error_msg_for_unequal_messages( self, From e180e7211a4f75e994836b61cb4e53a9dd0de384 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 4 Jun 2024 01:26:31 -0700 Subject: [PATCH 3/5] Revert "hack" This reverts commit 6b0fb2c730064a657f2a3813f06068eccc025dd8. --- pylint/testutils/lint_module_test.py | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py index a36ad89c24..9d76f76d69 100644 --- a/pylint/testutils/lint_module_test.py +++ b/pylint/testutils/lint_module_test.py @@ -253,17 +253,12 @@ def _runTest(self) -> None: self._linter.check(modules_to_check) expected_messages, expected_output = self._get_expected() actual_messages, actual_output = self._get_actual() - try: - assert ( - expected_messages == actual_messages - ), self.error_msg_for_unequal_messages( - actual_messages, expected_messages, actual_output - ) - except AssertionError: - raise - finally: - # _check_output_text is always ran in case we are updating expected output file - self._check_output_text(expected_messages, expected_output, actual_output) + self._check_output_text(expected_messages, expected_output, actual_output) + assert ( + expected_messages == actual_messages + ), self.error_msg_for_unequal_messages( + actual_messages, expected_messages, actual_output + ) def error_msg_for_unequal_messages( self, From a3374f96dd5043ee00dc7433837c1494bb5c113c Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Tue, 4 Jun 2024 01:42:03 -0700 Subject: [PATCH 4/5] don't touch output of LintModuleTest->_runTest --- .../functional/lint_module_output_update.py | 31 +++++++++---------- pylint/testutils/lint_module_test.py | 2 +- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/pylint/testutils/functional/lint_module_output_update.py b/pylint/testutils/functional/lint_module_output_update.py index 38ed465aad..8619aeee79 100644 --- a/pylint/testutils/functional/lint_module_output_update.py +++ b/pylint/testutils/functional/lint_module_output_update.py @@ -24,20 +24,19 @@ class TestDialect(csv.excel): csv.register_dialect("test", TestDialect) - def _check_output_text( - self, - _: MessageCounter, - expected_output: list[OutputLine], - actual_output: list[OutputLine], - ) -> None: + def _runTest(self) -> None: """Overwrite or remove the expected output file based on actual output.""" - # Remove the expected file if no output is actually emitted and a file exists - if not actual_output: - if os.path.exists(self._test_file.expected_output): - os.remove(self._test_file.expected_output) - return - # Write file with expected output - with open(self._test_file.expected_output, "w", encoding="utf-8") as f: - writer = csv.writer(f, dialect="test") - for line in actual_output: - writer.writerow(line.to_csv()) + try: + super()._runTest() + finally: + actual_messages, actual_output = self._get_actual() + # Remove the expected file if no output is actually emitted and a file exists + if not actual_output: + if os.path.exists(self._test_file.expected_output): + os.remove(self._test_file.expected_output) + return + # Write file with expected output + with open(self._test_file.expected_output, "w", encoding="utf-8") as f: + writer = csv.writer(f, dialect="test") + for line in actual_output: + writer.writerow(line.to_csv()) diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py index 9d76f76d69..48ee5a0b2f 100644 --- a/pylint/testutils/lint_module_test.py +++ b/pylint/testutils/lint_module_test.py @@ -253,12 +253,12 @@ def _runTest(self) -> None: self._linter.check(modules_to_check) expected_messages, expected_output = self._get_expected() actual_messages, actual_output = self._get_actual() - self._check_output_text(expected_messages, expected_output, actual_output) assert ( expected_messages == actual_messages ), self.error_msg_for_unequal_messages( actual_messages, expected_messages, actual_output ) + self._check_output_text(expected_messages, expected_output, actual_output) def error_msg_for_unequal_messages( self, From 63cbd3e7debd0fc5c0020abd36b53d9a74008f64 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 4 Jun 2024 08:44:48 +0000 Subject: [PATCH 5/5] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- pylint/testutils/functional/lint_module_output_update.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pylint/testutils/functional/lint_module_output_update.py b/pylint/testutils/functional/lint_module_output_update.py index 8619aeee79..363dc2f545 100644 --- a/pylint/testutils/functional/lint_module_output_update.py +++ b/pylint/testutils/functional/lint_module_output_update.py @@ -7,8 +7,7 @@ import csv import os -from pylint.testutils.lint_module_test import LintModuleTest, MessageCounter -from pylint.testutils.output_line import OutputLine +from pylint.testutils.lint_module_test import LintModuleTest class LintModuleOutputUpdate(LintModuleTest):