diff options
author | Flavian Hautbois <flavianh@sicara.com> | 2019-08-25 21:06:45 +0200 |
---|---|---|
committer | Berker Peksag <berker.peksag@gmail.com> | 2019-08-25 22:06:45 +0300 |
commit | da27d9b9dc44913ffee8f28d9638985eaaa03755 (patch) | |
tree | 58520d3227798af6bdd60f90dae750c6ac58e933 /Lib/test/test_argparse.py | |
parent | 5dbe0f59b7a4f39c7c606b48056bc29e406ebf78 (diff) | |
download | cpython-git-da27d9b9dc44913ffee8f28d9638985eaaa03755.tar.gz |
bpo-29553: Fix ArgumentParser.format_usage() for mutually exclusive groups (GH-14976)
Co-authored-by: Andrew Nester <andrew.nester.dev@gmail.com>
Diffstat (limited to 'Lib/test/test_argparse.py')
-rw-r--r-- | Lib/test/test_argparse.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index d6d16090eb..86ec6cca51 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -2813,6 +2813,46 @@ class TestMutuallyExclusiveOptionalsAndPositionalsMixed(MEMixin, TestCase): -c c help ''' +class TestMutuallyExclusiveNested(MEMixin, TestCase): + + def get_parser(self, required): + parser = ErrorRaisingArgumentParser(prog='PROG') + group = parser.add_mutually_exclusive_group(required=required) + group.add_argument('-a') + group.add_argument('-b') + group2 = group.add_mutually_exclusive_group(required=required) + group2.add_argument('-c') + group2.add_argument('-d') + group3 = group2.add_mutually_exclusive_group(required=required) + group3.add_argument('-e') + group3.add_argument('-f') + return parser + + usage_when_not_required = '''\ + usage: PROG [-h] [-a A | -b B | [-c C | -d D | [-e E | -f F]]] + ''' + usage_when_required = '''\ + usage: PROG [-h] (-a A | -b B | (-c C | -d D | (-e E | -f F))) + ''' + + help = '''\ + + optional arguments: + -h, --help show this help message and exit + -a A + -b B + -c C + -d D + -e E + -f F + ''' + + # We are only interested in testing the behavior of format_usage(). + test_failures_when_not_required = None + test_failures_when_required = None + test_successes_when_not_required = None + test_successes_when_required = None + # ================================================= # Mutually exclusive group in parent parser tests # ================================================= |