Skip to content

Commit 736c0be

Browse files
authored
Unify validation of functional test option files (#5510)
1 parent 2920947 commit 736c0be

File tree

2 files changed

+9
-10
lines changed

2 files changed

+9
-10
lines changed

pylint/testutils/functional/test_file.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ class TestFileOptions(TypedDict):
2727
max_pyver: Tuple[int, ...]
2828
min_pyver_end_position: Tuple[int, ...]
2929
requires: List[str]
30-
except_implementations: str # Type is actually comma separated list of string
31-
exclude_platforms: str # Type is actually comma separated list of string
30+
except_implementations: List[str]
31+
exclude_platforms: List[str]
3232

3333

3434
# mypy need something literal, we can't create this dynamically from TestFileOptions
@@ -39,7 +39,6 @@ class TestFileOptions(TypedDict):
3939
"requires",
4040
"except_implementations",
4141
"exclude_platforms",
42-
"exclude_platforms",
4342
}
4443

4544

@@ -50,7 +49,9 @@ class FunctionalTestFile:
5049
"min_pyver": parse_python_version,
5150
"max_pyver": parse_python_version,
5251
"min_pyver_end_position": parse_python_version,
53-
"requires": lambda s: s.split(","),
52+
"requires": lambda s: [i.strip() for i in s.split(",")],
53+
"except_implementations": lambda s: [i.strip() for i in s.split(",")],
54+
"exclude_platforms": lambda s: [i.strip() for i in s.split(",")],
5455
}
5556

5657
def __init__(self, directory: str, filename: str) -> None:
@@ -61,8 +62,8 @@ def __init__(self, directory: str, filename: str) -> None:
6162
"max_pyver": (4, 0),
6263
"min_pyver_end_position": (3, 8),
6364
"requires": [],
64-
"except_implementations": "",
65-
"exclude_platforms": "",
65+
"except_implementations": [],
66+
"exclude_platforms": [],
6667
}
6768
self._parse_options()
6869

pylint/testutils/lint_module_test.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -74,14 +74,12 @@ def setUp(self) -> None:
7474
pytest.skip(f"Requires {','.join(missing)} to be present.")
7575
except_implementations = self._test_file.options["except_implementations"]
7676
if except_implementations:
77-
implementations = [i.strip() for i in except_implementations.split(",")]
78-
if platform.python_implementation() in implementations:
77+
if platform.python_implementation() in except_implementations:
7978
msg = "Test cannot run with Python implementation %r"
8079
pytest.skip(msg % platform.python_implementation())
8180
excluded_platforms = self._test_file.options["exclude_platforms"]
8281
if excluded_platforms:
83-
platforms = [p.strip() for p in excluded_platforms.split(",")]
84-
if sys.platform.lower() in platforms:
82+
if sys.platform.lower() in excluded_platforms:
8583
pytest.skip(f"Test cannot run on platform {sys.platform!r}")
8684

8785
def runTest(self) -> None:

0 commit comments

Comments
 (0)