summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2021-12-28 16:28:54 +0100
committerGitHub <noreply@github.com>2021-12-28 16:28:54 +0100
commitefe59ca44b9ed350c9790d79a39a7343af5e7ea7 (patch)
tree20ab2724681990fbf1d391158421a94efbed5548
parent8367a571203a3cf0242394e21a24a67566de44f8 (diff)
downloadpylint-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.py3
-rw-r--r--pylint/testutils/lint_module_test.py29
-rw-r--r--pylint/testutils/testing_pylintrc9
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,