@@ -2813,6 +2813,46 @@ def get_parser(self, required):
2813
2813
-c c help
2814
2814
'''
2815
2815
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
+
2816
2856
# =================================================
2817
2857
# Mutually exclusive group in parent parser tests
2818
2858
# =================================================
0 commit comments