@@ -2813,6 +2813,46 @@ def get_parser(self, required):
28132813 -c c help
28142814 '''
28152815
2816+ class TestMutuallyExclusiveNested (MEMixin , TestCase ):
2817+
2818+ def get_parser (self , required ):
2819+ parser = ErrorRaisingArgumentParser (prog = 'PROG' )
2820+ group = parser .add_mutually_exclusive_group (required = required )
2821+ group .add_argument ('-a' )
2822+ group .add_argument ('-b' )
2823+ group2 = group .add_mutually_exclusive_group (required = required )
2824+ group2 .add_argument ('-c' )
2825+ group2 .add_argument ('-d' )
2826+ group3 = group2 .add_mutually_exclusive_group (required = required )
2827+ group3 .add_argument ('-e' )
2828+ group3 .add_argument ('-f' )
2829+ return parser
2830+
2831+ usage_when_not_required = '''\
2832+ usage: PROG [-h] [-a A | -b B | [-c C | -d D | [-e E | -f F]]]
2833+ '''
2834+ usage_when_required = '''\
2835+ usage: PROG [-h] (-a A | -b B | (-c C | -d D | (-e E | -f F)))
2836+ '''
2837+
2838+ help = '''\
2839+
2840+ optional arguments:
2841+ -h, --help show this help message and exit
2842+ -a A
2843+ -b B
2844+ -c C
2845+ -d D
2846+ -e E
2847+ -f F
2848+ '''
2849+
2850+ # We are only interested in testing the behavior of format_usage().
2851+ test_failures_when_not_required = None
2852+ test_failures_when_required = None
2853+ test_successes_when_not_required = None
2854+ test_successes_when_required = None
2855+
28162856# =================================================
28172857# Mutually exclusive group in parent parser tests
28182858# =================================================
0 commit comments