diff options
Diffstat (limited to 'tests/lint/unittest_expand_modules.py')
-rw-r--r-- | tests/lint/unittest_expand_modules.py | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/tests/lint/unittest_expand_modules.py b/tests/lint/unittest_expand_modules.py new file mode 100644 index 000000000..ef98cf575 --- /dev/null +++ b/tests/lint/unittest_expand_modules.py @@ -0,0 +1,110 @@ +# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html +# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE + + +import re +from pathlib import Path + +import pytest + +from pylint.lint.expand_modules import _is_in_ignore_list_re, expand_modules + + +def test__is_in_ignore_list_re_match() -> None: + patterns = [ + re.compile(".*enchilada.*"), + re.compile("unittest_.*"), + re.compile(".*tests/.*"), + ] + assert _is_in_ignore_list_re("unittest_utils.py", patterns) + assert _is_in_ignore_list_re("cheese_enchiladas.xml", patterns) + assert _is_in_ignore_list_re("src/tests/whatever.xml", patterns) + + +def test__is_in_ignore_list_re_nomatch() -> None: + patterns = [ + re.compile(".*enchilada.*"), + re.compile("unittest_.*"), + re.compile(".*tests/.*"), + ] + assert not _is_in_ignore_list_re("test_utils.py", patterns) + assert not _is_in_ignore_list_re("enchilad.py", patterns) + assert not _is_in_ignore_list_re("src/tests.py", patterns) + + +TEST_DIRECTORY = Path(__file__).parent.parent +INIT_PATH = str(TEST_DIRECTORY / "lint/__init__.py") +EXPAND_MODULES = str(TEST_DIRECTORY / "lint/unittest_expand_modules.py") +this_file = { + "basename": "lint.unittest_expand_modules", + "basepath": EXPAND_MODULES, + "isarg": True, + "name": "lint.unittest_expand_modules", + "path": EXPAND_MODULES, +} + +this_file_from_init = { + "basename": "lint", + "basepath": INIT_PATH, + "isarg": False, + "name": "lint.unittest_expand_modules", + "path": EXPAND_MODULES, +} + +unittest_lint = { + "basename": "lint", + "basepath": INIT_PATH, + "isarg": False, + "name": "lint.unittest_lint", + "path": str(TEST_DIRECTORY / "lint/unittest_lint.py"), +} + +test_utils = { + "basename": "lint", + "basepath": INIT_PATH, + "isarg": False, + "name": "lint.test_utils", + "path": str(TEST_DIRECTORY / "lint/test_utils.py"), +} + +test_pylinter = { + "basename": "lint", + "basepath": INIT_PATH, + "isarg": False, + "name": "lint.test_pylinter", + "path": str(TEST_DIRECTORY / "lint/test_pylinter.py"), +} + +init_of_package = { + "basename": "lint", + "basepath": INIT_PATH, + "isarg": True, + "name": "lint", + "path": INIT_PATH, +} + + +@pytest.mark.parametrize( + "files_or_modules,expected", + [ + ([__file__], [this_file]), + ( + [Path(__file__).parent], + [ + init_of_package, + test_pylinter, + test_utils, + this_file_from_init, + unittest_lint, + ], + ), + ], +) +def test_expand_modules(files_or_modules, expected): + ignore_list, ignore_list_re, ignore_list_paths_re = [], [], [] + modules, errors = expand_modules( + files_or_modules, ignore_list, ignore_list_re, ignore_list_paths_re + ) + modules.sort(key=lambda d: d["name"]) + assert modules == expected + assert not errors |