mirror of https://github.com/python/cpython
bpo-26952: [argparse] clearer error when formatting an empty mutually… (GH-30099)
This commit is contained in:
parent
f54fee7f37
commit
86de99588d
|
@ -392,6 +392,9 @@ class HelpFormatter(object):
|
|||
group_actions = set()
|
||||
inserts = {}
|
||||
for group in groups:
|
||||
if not group._group_actions:
|
||||
raise ValueError(f'empty group {group}')
|
||||
|
||||
try:
|
||||
start = actions.index(group._group_actions[0])
|
||||
except ValueError:
|
||||
|
|
|
@ -2601,6 +2601,13 @@ class TestMutuallyExclusiveGroupErrors(TestCase):
|
|||
'''
|
||||
self.assertEqual(parser.format_help(), textwrap.dedent(expected))
|
||||
|
||||
def test_empty_group(self):
|
||||
# See issue 26952
|
||||
parser = argparse.ArgumentParser()
|
||||
group = parser.add_mutually_exclusive_group()
|
||||
with self.assertRaises(ValueError):
|
||||
parser.parse_args(['-h'])
|
||||
|
||||
class MEMixin(object):
|
||||
|
||||
def test_failures_when_not_required(self):
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
:mod:`argparse` raises :exc:`ValueError` with clear message when trying to render usage for an empty mutually-exclusive group. Previously it raised a cryptic :exc:`IndexError`.
|
Loading…
Reference in New Issue