mirror of
https://github.com/PyCQA/flake8.git
synced 2026-04-05 04:36:52 +00:00
Adds warning when invalid error codes are parsed for ignore or extend-ignore from config file
This commit is contained in:
parent
5eeee3fbc0
commit
1346ddefd3
6 changed files with 84 additions and 36 deletions
|
|
@ -31,37 +31,6 @@ def _loaded(plugin=None, obj=None, parameters=None):
|
|||
return finder.LoadedPlugin(plugin, obj, parameters)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"s",
|
||||
(
|
||||
"E",
|
||||
"E1",
|
||||
"E123",
|
||||
"ABC",
|
||||
"ABC1",
|
||||
"ABC123",
|
||||
),
|
||||
)
|
||||
def test_valid_plugin_prefixes(s):
|
||||
assert finder.VALID_CODE.match(s)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"s",
|
||||
(
|
||||
"",
|
||||
"A1234",
|
||||
"ABCD",
|
||||
"abc",
|
||||
"a-b",
|
||||
"☃",
|
||||
"A𝟗",
|
||||
),
|
||||
)
|
||||
def test_invalid_plugin_prefixes(s):
|
||||
assert finder.VALID_CODE.match(s) is None
|
||||
|
||||
|
||||
def test_loaded_plugin_entry_name_vs_display_name():
|
||||
loaded = _loaded(_plugin(package="package-name", ep=_ep(name="Q")))
|
||||
assert loaded.entry_name == "Q"
|
||||
|
|
|
|||
36
tests/unit/test_defaults.py
Normal file
36
tests/unit/test_defaults.py
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import pytest
|
||||
|
||||
from flake8.defaults import VALID_CODE_PREFIX
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"s",
|
||||
(
|
||||
"E",
|
||||
"E1",
|
||||
"E123",
|
||||
"ABC",
|
||||
"ABC1",
|
||||
"ABC123",
|
||||
),
|
||||
)
|
||||
def test_valid_plugin_prefixes(s):
|
||||
assert VALID_CODE_PREFIX.match(s)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"s",
|
||||
(
|
||||
"",
|
||||
"A1234",
|
||||
"ABCD",
|
||||
"abc",
|
||||
"a-b",
|
||||
"☃",
|
||||
"A𝟗",
|
||||
),
|
||||
)
|
||||
def test_invalid_plugin_prefixes(s):
|
||||
assert VALID_CODE_PREFIX.match(s) is None
|
||||
|
|
@ -220,3 +220,35 @@ def test_parse_config_ignores_unknowns(tmp_path, opt_manager, caplog):
|
|||
def test_load_config_missing_file_raises_exception(capsys):
|
||||
with pytest.raises(exceptions.ExecutionError):
|
||||
config.load_config("foo.cfg", [])
|
||||
|
||||
|
||||
def test_invalid_ignore_codes_raise_error(tmpdir, opt_manager):
|
||||
tmpdir.join("setup.cfg").write("[flake8]\nignore = E203, //comment")
|
||||
with tmpdir.as_cwd():
|
||||
cfg, _ = config.load_config("setup.cfg", [], isolated=False)
|
||||
|
||||
with pytest.raises(ValueError) as excinfo:
|
||||
config.parse_config(opt_manager, cfg, tmpdir)
|
||||
|
||||
expected = (
|
||||
"Error code '//comment' supplied to 'ignore' option "
|
||||
"does not match '^[A-Z]{1,3}[0-9]{0,3}$'"
|
||||
)
|
||||
(msg,) = excinfo.value.args
|
||||
assert msg == expected
|
||||
|
||||
|
||||
def test_invalid_extend_ignore_codes_raise_error(tmpdir, opt_manager):
|
||||
tmpdir.join("setup.cfg").write("[flake8]\nextend-ignore = E203, //comment")
|
||||
with tmpdir.as_cwd():
|
||||
cfg, _ = config.load_config("setup.cfg", [], isolated=False)
|
||||
|
||||
with pytest.raises(ValueError) as excinfo:
|
||||
config.parse_config(opt_manager, cfg, tmpdir)
|
||||
|
||||
expected = (
|
||||
"Error code '//comment' supplied to 'extend-ignore' option "
|
||||
"does not match '^[A-Z]{1,3}[0-9]{0,3}$'"
|
||||
)
|
||||
(msg,) = excinfo.value.args
|
||||
assert msg == expected
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue