Skip to content

pytest --help fails on Python 3.15+ #14634

Description

@sobolevn
» python --version
Python 3.15.0b2+dev
» pytest --version
pytest 9.1.1

Calling pytest --help fails:

Traceback (most recent call last):
  File "/Users/sobolev/Desktop/msgspec/.venv/bin/pytest", line 10, in <module>
    sys.exit(_console_main())
             ~~~~~~~~~~~~~^^
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 253, in _console_main
    code = _main(prog=_get_prog_name(sys.argv))
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/config/__init__.py", line 229, in _main
    ret: ExitCode | int = config.hook.pytest_cmdline_main(config=config)
                          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_hooks.py", line 512, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
           ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_manager.py", line 120, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 167, in _multicall
    raise exception
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/pluggy/_callers.py", line 121, in _multicall
    res = hook_impl.function(*args)
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/helpconfig.py", line 174, in pytest_cmdline_main
    showhelp(config)
    ~~~~~~~~^^^^^^^^
  File "/Users/sobolev/Desktop/msgspec/.venv/lib/python3.15/site-packages/_pytest/helpconfig.py", line 188, in showhelp
    tw.write(config._parser.optparser.format_help())
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/sobolev/.pyenv/versions/3.15-dev/lib/python3.15/argparse.py", line 2841, in format_help
    return formatter.format_help()
           ~~~~~~~~~~~~~~~~~~~~~^^
  File "/Users/sobolev/.pyenv/versions/3.15-dev/lib/python3.15/argparse.py", line 340, in format_help
    help = self._root_section.format_help()
  File "/Users/sobolev/.pyenv/versions/3.15-dev/lib/python3.15/argparse.py", line 265, in format_help
    item_help = join([func(*args) for func, args in self.items])
                      ~~~~^^^^^^^
  File "/Users/sobolev/.pyenv/versions/3.15-dev/lib/python3.15/argparse.py", line 265, in format_help
    item_help = join([func(*args) for func, args in self.items])
                      ~~~~^^^^^^^
  File "/Users/sobolev/.pyenv/versions/3.15-dev/lib/python3.15/argparse.py", line 613, in _format_action
    if action.help and action.help.strip():
                       ^^^^^^^^^^^^^^^^^
AttributeError: 'tuple' object has no attribute 'strip'

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions