summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDudeNr33 <3929834+DudeNr33@users.noreply.github.com>2021-04-09 21:13:14 +0200
committerGitHub <noreply@github.com>2021-04-09 21:13:14 +0200
commitd0591ba2a097312c41d544e4269eda5b809c47a0 (patch)
tree579eab53b63ab759e8c26f7f62fcdb45ed44c61b
parentcd90e9ec218b4735c3406b757f48d4898a2aee5e (diff)
downloadpylint-git-d0591ba2a097312c41d544e4269eda5b809c47a0.tar.gz
Enable loading of plugins in functional tests (Fix 4331) (#4332)
* Load plugins if defined in option file of functional test. * Fix functional test which now fails after optional plugins are now loaded correctly * Added functional test for bad_builtins from #4291
-rw-r--r--pylint/testutils/lint_module_test.py6
-rw-r--r--tests/functional/b/bad_builtins.py3
-rw-r--r--tests/functional/b/bad_builtins.rc5
-rw-r--r--tests/functional/b/bad_builtins.txt4
-rw-r--r--tests/functional/f/fixture_docparams_missing.py4
-rw-r--r--tests/functional/f/fixture_docparams_missing.txt4
6 files changed, 24 insertions, 2 deletions
diff --git a/pylint/testutils/lint_module_test.py b/pylint/testutils/lint_module_test.py
index 158e4f6a5..500513ce3 100644
--- a/pylint/testutils/lint_module_test.py
+++ b/pylint/testutils/lint_module_test.py
@@ -22,6 +22,7 @@ from pylint.testutils.functional_test_file import (
)
from pylint.testutils.output_line import OutputLine
from pylint.testutils.reporter_for_tests import FunctionalTestReporter
+from pylint.utils import utils
class LintModuleTest:
@@ -38,6 +39,11 @@ class LintModuleTest:
self._linter.disable("useless-suppression")
try:
self._linter.read_config_file(test_file.option_file)
+ if self._linter.cfgfile_parser.has_option("MASTER", "load-plugins"):
+ plugins = utils._splitstrip(
+ self._linter.cfgfile_parser.get("MASTER", "load-plugins")
+ )
+ self._linter.load_plugin_modules(plugins)
self._linter.load_config_file()
except NoFileError:
pass
diff --git a/tests/functional/b/bad_builtins.py b/tests/functional/b/bad_builtins.py
new file mode 100644
index 000000000..9737e0ffc
--- /dev/null
+++ b/tests/functional/b/bad_builtins.py
@@ -0,0 +1,3 @@
+# pylint: disable=missing-docstring
+input("Yes or no ? (Y=1, n=0)") # [bad-builtin]
+print(map(str, filter(1, [1, 2, 3]))) # [bad-builtin, bad-builtin, bad-builtin]
diff --git a/tests/functional/b/bad_builtins.rc b/tests/functional/b/bad_builtins.rc
new file mode 100644
index 000000000..e32b9f32c
--- /dev/null
+++ b/tests/functional/b/bad_builtins.rc
@@ -0,0 +1,5 @@
+[MASTER]
+load-plugins = pylint.extensions.bad_builtin
+
+[pylint.DEPRECATED_BUILTINS]
+bad-functions=map,input,filter,print
diff --git a/tests/functional/b/bad_builtins.txt b/tests/functional/b/bad_builtins.txt
new file mode 100644
index 000000000..093b1d1e5
--- /dev/null
+++ b/tests/functional/b/bad_builtins.txt
@@ -0,0 +1,4 @@
+bad-builtin:2:0::Used builtin function 'input'
+bad-builtin:3:15::Used builtin function 'filter'. Using a list comprehension can be clearer.
+bad-builtin:3:6::Used builtin function 'map'. Using a list comprehension can be clearer.
+bad-builtin:3:0::Used builtin function 'print'
diff --git a/tests/functional/f/fixture_docparams_missing.py b/tests/functional/f/fixture_docparams_missing.py
index 50a688b20..b879afcfb 100644
--- a/tests/functional/f/fixture_docparams_missing.py
+++ b/tests/functional/f/fixture_docparams_missing.py
@@ -1,11 +1,11 @@
"""Fixture for testing missing documentation in docparams."""
-def _private_func(param1):
+def _private_func(param1): # [missing-return-doc, missing-return-type-doc]
if param1:
raise Exception('Example')
return param1
-def _private_func2(param1):
+def _private_func2(param1): # [missing-yield-doc, missing-yield-type-doc]
yield param1
diff --git a/tests/functional/f/fixture_docparams_missing.txt b/tests/functional/f/fixture_docparams_missing.txt
new file mode 100644
index 000000000..5eb327895
--- /dev/null
+++ b/tests/functional/f/fixture_docparams_missing.txt
@@ -0,0 +1,4 @@
+missing-return-doc:4:0:_private_func:Missing return documentation
+missing-return-type-doc:4:0:_private_func:Missing return type documentation
+missing-yield-doc:10:0:_private_func2:Missing yield documentation
+missing-yield-type-doc:10:0:_private_func2:Missing yield type documentation