aboutsummaryrefslogtreecommitdiff
path: root/tests/lint/unittest_expand_modules.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lint/unittest_expand_modules.py')
-rw-r--r--tests/lint/unittest_expand_modules.py110
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