diff options
author | Daniƫl van Noord <13665637+DanielNoord@users.noreply.github.com> | 2021-12-28 16:28:54 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-28 16:28:54 +0100 |
commit | efe59ca44b9ed350c9790d79a39a7343af5e7ea7 (patch) | |
tree | 20ab2724681990fbf1d391158421a94efbed5548 | |
parent | 8367a571203a3cf0242394e21a24a67566de44f8 (diff) | |
download | pylint-git-efe59ca44b9ed350c9790d79a39a7343af5e7ea7.tar.gz |
Make functional tests always go through config initialization (#5594)
Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com>
-rw-r--r-- | pylint/config/config_initialization.py | 3 | ||||
-rw-r--r-- | pylint/testutils/lint_module_test.py | 29 | ||||
-rw-r--r-- | pylint/testutils/testing_pylintrc | 9 |
3 files changed, 30 insertions, 11 deletions
diff --git a/pylint/config/config_initialization.py b/pylint/config/config_initialization.py index 46031bae3..d03822030 100644 --- a/pylint/config/config_initialization.py +++ b/pylint/config/config_initialization.py @@ -2,6 +2,7 @@ # For details: https://github.com/PyCQA/pylint/blob/main/LICENSE import sys +from pathlib import Path from typing import TYPE_CHECKING, List, Optional, Union from pylint import reporters @@ -15,7 +16,7 @@ def _config_initialization( linter: "PyLinter", args_list: List[str], reporter: Union[reporters.BaseReporter, reporters.MultiReporter, None] = None, - config_file: Optional[str] = None, + config_file: Union[None, str, Path] = None, verbose_mode: Optional[bool] = None, ) -> List[str]: """Parse all available options, read config files and command line arguments and diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py index e89f82ace..8dbf5e60b 100644 --- a/pylint/testutils/lint_module_test.py +++ b/pylint/testutils/lint_module_test.py @@ -7,8 +7,9 @@ import platform import sys from collections import Counter from io import StringIO +from pathlib import Path from typing import Counter as CounterType -from typing import Dict, List, Optional, TextIO, Tuple +from typing import Dict, List, Optional, TextIO, Tuple, Union import pytest from _pytest.config import Config @@ -28,6 +29,8 @@ from pylint.testutils.reporter_for_tests import FunctionalTestReporter MessageCounter = CounterType[Tuple[int, str]] +PYLINTRC = Path(__file__).parent / "testing_pylintrc" + class LintModuleTest: maxDiff = None @@ -37,21 +40,27 @@ class LintModuleTest: ) -> None: _test_reporter = FunctionalTestReporter() self._linter = PyLinter() - self._linter.set_reporter(_test_reporter) self._linter.config.persistent = 0 checkers.initialize(self._linter) - self._linter.disable("suppressed-message") - self._linter.disable("locally-disabled") - self._linter.disable("useless-suppression") + + # See if test has its own .rc file, if so we use that one + rc_file: Union[Path, str] = PYLINTRC try: - _config_initialization( - self._linter, - [test_file.source], - config_file=test_file.option_file, - ) + rc_file = test_file.option_file + self._linter.disable("suppressed-message") + self._linter.disable("locally-disabled") + self._linter.disable("useless-suppression") except NoFileError: pass + try: + args = [test_file.source] + except NoFileError: + # If we're still raising NoFileError the actual source file doesn't exist + args = [""] + _config_initialization( + self._linter, args_list=args, config_file=rc_file, reporter=_test_reporter + ) self._test_file = test_file self._config = config self._check_end_position = ( diff --git a/pylint/testutils/testing_pylintrc b/pylint/testutils/testing_pylintrc new file mode 100644 index 000000000..ba5318b51 --- /dev/null +++ b/pylint/testutils/testing_pylintrc @@ -0,0 +1,9 @@ +# A bare minimum pylintrc used for the functional tests that don't specify +# their own settings. + +[MESSAGES CONTROL] + +disable= + suppressed-message, + locally-disabled, + useless-suppression, |