diff options
author | Georg Brandl <georg@python.org> | 2011-01-30 12:19:35 (GMT) |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2011-01-30 12:19:35 (GMT) |
commit | 0f6b47a338fdc0063c651657fcbb6908da27f0b9 (patch) | |
tree | dd9fadce4192f09548ba1851fbd5381d6f2120e2 /Lib/test/test_argparse.py | |
parent | d2f3857c40a340f252397eb16b4289403af8bf76 (diff) | |
download | cpython-0f6b47a338fdc0063c651657fcbb6908da27f0b9.zip cpython-0f6b47a338fdc0063c651657fcbb6908da27f0b9.tar.gz cpython-0f6b47a338fdc0063c651657fcbb6908da27f0b9.tar.bz2 |
#10680: fix mutually exclusive arguments in argument groups.
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 36415f4..03c95fa 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -2540,6 +2540,46 @@ class TestMutuallyExclusiveOptionalsMixed(MEMixin, TestCase): ''' +class TestMutuallyExclusiveInGroup(MEMixin, TestCase): + + def get_parser(self, required=None): + parser = ErrorRaisingArgumentParser(prog='PROG') + titled_group = parser.add_argument_group( + title='Titled group', description='Group description') + mutex_group = \ + titled_group.add_mutually_exclusive_group(required=required) + mutex_group.add_argument('--bar', help='bar help') + mutex_group.add_argument('--baz', help='baz help') + return parser + + failures = ['--bar X --baz Y', '--baz X --bar Y'] + successes = [ + ('--bar X', NS(bar='X', baz=None)), + ('--baz Y', NS(bar=None, baz='Y')), + ] + successes_when_not_required = [ + ('', NS(bar=None, baz=None)), + ] + + usage_when_not_required = '''\ + usage: PROG [-h] [--bar BAR | --baz BAZ] + ''' + usage_when_required = '''\ + usage: PROG [-h] (--bar BAR | --baz BAZ) + ''' + help = '''\ + + optional arguments: + -h, --help show this help message and exit + + Titled group: + Group description + + --bar BAR bar help + --baz BAZ baz help + ''' + + class TestMutuallyExclusiveOptionalsAndPositionalsMixed(MEMixin, TestCase): def get_parser(self, required): |