summaryrefslogtreecommitdiff
path: root/tests/lint
diff options
context:
space:
mode:
authorMatus Valo <matusvalo@users.noreply.github.com>2022-05-13 08:06:04 +0200
committerGitHub <noreply@github.com>2022-05-13 08:06:04 +0200
commit6ad350fb0aee8ff532b860cf9426afb98760ff88 (patch)
tree1d356ffcba0599a5b3ee62620da11fff183e2c1a /tests/lint
parentdc18f82af3a5351410caa7c72dcfa36159dd880e (diff)
downloadpylint-git-6ad350fb0aee8ff532b860cf9426afb98760ff88.tar.gz
Respect ignore configuration options when --recursive=y. (#6528)
* Ignore specified files/directories in recursive mode * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update Changelog * Fix typo in Changelog * Fix typo in comment * Add missing regrtest data directory * Improved unittests * Move common code of checking if file is ignored to separate function * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Rename is_ignored_file to _is_ignored_file Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> * Apply suggestions from code review Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update ChangeLog Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Pierre Sassoulas <pierre.sassoulas@gmail.com> Co-authored-by: Daniël van Noord <13665637+DanielNoord@users.noreply.github.com>
Diffstat (limited to 'tests/lint')
-rw-r--r--tests/lint/unittest_lint.py43
1 files changed, 43 insertions, 0 deletions
diff --git a/tests/lint/unittest_lint.py b/tests/lint/unittest_lint.py
index 954bc6f34..3dbde39ce 100644
--- a/tests/lint/unittest_lint.py
+++ b/tests/lint/unittest_lint.py
@@ -869,6 +869,49 @@ def test_by_module_statement_value(initialized_linter: PyLinter) -> None:
assert module_stats["statement"] == linter2.stats.statement
+@pytest.mark.parametrize(
+ "ignore_parameter,ignore_parameter_value",
+ [
+ ("--ignore", "failing.py"),
+ ("--ignore", "ignored_subdirectory"),
+ ("--ignore-patterns", "failing.*"),
+ ("--ignore-patterns", "ignored_*"),
+ ("--ignore-paths", ".*directory/ignored.*"),
+ ("--ignore-paths", ".*ignored.*/failing.*"),
+ ],
+)
+def test_recursive_ignore(ignore_parameter, ignore_parameter_value) -> None:
+ run = Run(
+ [
+ "--recursive",
+ "y",
+ ignore_parameter,
+ ignore_parameter_value,
+ join(REGRTEST_DATA_DIR, "directory"),
+ ],
+ exit=False,
+ )
+
+ linted_files = run.linter._iterate_file_descrs(
+ tuple(run.linter._discover_files([join(REGRTEST_DATA_DIR, "directory")]))
+ )
+ linted_file_paths = [file_item.filepath for file_item in linted_files]
+
+ ignored_file = os.path.abspath(
+ join(REGRTEST_DATA_DIR, "directory", "ignored_subdirectory", "failing.py")
+ )
+ assert ignored_file not in linted_file_paths
+
+ for regrtest_data_module in (
+ ("directory", "subdirectory", "subsubdirectory", "module.py"),
+ ("directory", "subdirectory", "module.py"),
+ ("directory", "package", "module.py"),
+ ("directory", "package", "subpackage", "module.py"),
+ ):
+ module = os.path.abspath(join(REGRTEST_DATA_DIR, *regrtest_data_module))
+ assert module in linted_file_paths
+
+
def test_import_sibling_module_from_namespace(initialized_linter: PyLinter) -> None:
"""If the parent directory above `namespace` is on sys.path, ensure that
modules under `namespace` can import each other without raising `import-error`."""