diff --git a/doc/whatsnew/fragments/7003.bugfix b/doc/whatsnew/fragments/7003.bugfix new file mode 100644 index 0000000000..3e2806f6f9 --- /dev/null +++ b/doc/whatsnew/fragments/7003.bugfix @@ -0,0 +1,4 @@ +Fixed handling of ``--`` as separator between positional arguments and flags. +This was not actually fixed in 2.14.5. + +Closes #7003, Refs #7096 diff --git a/pylint/config/config_initialization.py b/pylint/config/config_initialization.py index 7b412f9c24..b903a58026 100644 --- a/pylint/config/config_initialization.py +++ b/pylint/config/config_initialization.py @@ -72,12 +72,17 @@ def _config_initialization( # the configuration file parsed_args_list = linter._parse_command_line_configuration(args_list) + # Remove the positional arguments separator from the list of arguments if it exists + try: + parsed_args_list.remove("--") + except ValueError: + pass + # Check if there are any options that we do not recognize unrecognized_options: list[str] = [] for opt in parsed_args_list: if opt.startswith("--"): - if len(opt) > 2: - unrecognized_options.append(opt[2:]) + unrecognized_options.append(opt[2:]) elif opt.startswith("-"): unrecognized_options.append(opt[1:]) if unrecognized_options: diff --git a/tests/config/test_config.py b/tests/config/test_config.py index 56a2c1823a..12d7a6e60a 100644 --- a/tests/config/test_config.py +++ b/tests/config/test_config.py @@ -148,11 +148,10 @@ def test_short_verbose(capsys: CaptureFixture) -> None: assert "Using config file" in output.err -def test_argument_separator(capsys: CaptureFixture) -> None: +def test_argument_separator() -> None: """Check that we support using '--' to separate argument types. Reported in https://github.com/PyCQA/pylint/issues/7003. """ - Run(["--", str(EMPTY_MODULE)], exit=False) - output = capsys.readouterr() - assert not output.err + runner = Run(["--", str(EMPTY_MODULE)], exit=False) + assert not runner.linter.stats.by_msg