diff options
author | Matus Valo <matusvalo@users.noreply.github.com> | 2022-05-13 08:06:04 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-13 08:06:04 +0200 |
commit | 6ad350fb0aee8ff532b860cf9426afb98760ff88 (patch) | |
tree | 1d356ffcba0599a5b3ee62620da11fff183e2c1a /tests/lint | |
parent | dc18f82af3a5351410caa7c72dcfa36159dd880e (diff) | |
download | pylint-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.py | 43 |
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`.""" |