summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniƫl van Noord <13665637+DanielNoord@users.noreply.github.com>2022-09-04 13:05:29 +0200
committerGitHub <noreply@github.com>2022-09-04 13:05:29 +0200
commit89737663f6a8891f5f5ae3e9a7d689cfec569ee8 (patch)
tree71a1c64f9097525c4753da98475f0f64fc242d6b
parentc2989ad5c71b3e1be0f0a7e5297f9b7e47fa2766 (diff)
downloadpylint-git-89737663f6a8891f5f5ae3e9a7d689cfec569ee8.tar.gz
Add typing to ``unittest_config`` (#7404)
-rw-r--r--pylint/config/option.py16
-rw-r--r--tests/config/unittest_config.py12
2 files changed, 18 insertions, 10 deletions
diff --git a/pylint/config/option.py b/pylint/config/option.py
index 5043fe765..1cef7aba2 100644
--- a/pylint/config/option.py
+++ b/pylint/config/option.py
@@ -9,25 +9,33 @@ import optparse # pylint: disable=deprecated-module
import pathlib
import re
import warnings
+from collections.abc import Sequence
from re import Pattern
+from typing import Any
from pylint import utils
# pylint: disable=unused-argument
-def _csv_validator(_, name, value):
+def _csv_validator(
+ _: Any, name: str, value: str | list[str] | tuple[str]
+) -> Sequence[str]:
return utils._check_csv(value)
# pylint: disable=unused-argument
-def _regexp_validator(_, name, value):
+def _regexp_validator(
+ _: Any, name: str, value: str | re.Pattern[str]
+) -> re.Pattern[str]:
if hasattr(value, "pattern"):
- return value
+ return value # type: ignore[return-value]
return re.compile(value)
# pylint: disable=unused-argument
-def _regexp_csv_validator(_, name, value):
+def _regexp_csv_validator(
+ _: Any, name: str, value: str | list[str]
+) -> list[re.Pattern[str]]:
return [_regexp_validator(_, name, val) for val in _csv_validator(_, name, value)]
diff --git a/tests/config/unittest_config.py b/tests/config/unittest_config.py
index a75de41bb..343663602 100644
--- a/tests/config/unittest_config.py
+++ b/tests/config/unittest_config.py
@@ -17,19 +17,19 @@ from pylint.typing import MessageDefinitionTuple
def test__regexp_validator_valid() -> None:
- result = config.option._regexp_validator(None, None, "test_.*")
+ result = config.option._regexp_validator(None, "", "test_.*")
assert isinstance(result, re.Pattern)
assert result.pattern == "test_.*"
def test__regexp_validator_invalid() -> None:
with pytest.raises(re.error):
- config.option._regexp_validator(None, None, "test_)")
+ config.option._regexp_validator(None, "", "test_)")
def test__csv_validator_no_spaces() -> None:
values = ["One", "Two", "Three"]
- result = config.option._csv_validator(None, None, ",".join(values))
+ result = config.option._csv_validator(None, "", ",".join(values))
assert isinstance(result, list)
assert len(result) == 3
for i, value in enumerate(values):
@@ -38,7 +38,7 @@ def test__csv_validator_no_spaces() -> None:
def test__csv_validator_spaces() -> None:
values = ["One", "Two", "Three"]
- result = config.option._csv_validator(None, None, ", ".join(values))
+ result = config.option._csv_validator(None, "", ", ".join(values))
assert isinstance(result, list)
assert len(result) == 3
for i, value in enumerate(values):
@@ -47,7 +47,7 @@ def test__csv_validator_spaces() -> None:
def test__regexp_csv_validator_valid() -> None:
pattern_strings = ["test_.*", "foo\\.bar", "^baz$"]
- result = config.option._regexp_csv_validator(None, None, ",".join(pattern_strings))
+ result = config.option._regexp_csv_validator(None, "", ",".join(pattern_strings))
for i, regex in enumerate(result):
assert isinstance(regex, re.Pattern)
assert regex.pattern == pattern_strings[i]
@@ -56,7 +56,7 @@ def test__regexp_csv_validator_valid() -> None:
def test__regexp_csv_validator_invalid() -> None:
pattern_strings = ["test_.*", "foo\\.bar", "^baz)$"]
with pytest.raises(re.error):
- config.option._regexp_csv_validator(None, None, ",".join(pattern_strings))
+ config.option._regexp_csv_validator(None, "", ",".join(pattern_strings))
class TestPyLinterOptionSetters(CheckerTestCase):