@@ -3079,7 +3079,7 @@ def get_parser(self, required):
3079
3079
group = parser .add_mutually_exclusive_group (required = required )
3080
3080
group .add_argument ('--foo' , action = 'store_true' , help = 'FOO' )
3081
3081
group .add_argument ('--spam' , help = 'SPAM' )
3082
- group .add_argument ('badger' , nargs = '*' , default = 'X' , help = 'BADGER' )
3082
+ group .add_argument ('badger' , nargs = '*' , help = 'BADGER' )
3083
3083
return parser
3084
3084
3085
3085
failures = [
@@ -3090,13 +3090,13 @@ def get_parser(self, required):
3090
3090
'--foo X Y' ,
3091
3091
]
3092
3092
successes = [
3093
- ('--foo' , NS (foo = True , spam = None , badger = 'X' )),
3094
- ('--spam S' , NS (foo = False , spam = 'S' , badger = 'X' )),
3093
+ ('--foo' , NS (foo = True , spam = None , badger = [] )),
3094
+ ('--spam S' , NS (foo = False , spam = 'S' , badger = [] )),
3095
3095
('X' , NS (foo = False , spam = None , badger = ['X' ])),
3096
3096
('X Y Z' , NS (foo = False , spam = None , badger = ['X' , 'Y' , 'Z' ])),
3097
3097
]
3098
3098
successes_when_not_required = [
3099
- ('' , NS (foo = False , spam = None , badger = 'X' )),
3099
+ ('' , NS (foo = False , spam = None , badger = [] )),
3100
3100
]
3101
3101
3102
3102
usage_when_not_required = '''\
@@ -6369,7 +6369,28 @@ def test_required_args(self):
6369
6369
self .parser .add_argument ('bar' )
6370
6370
self .parser .add_argument ('baz' )
6371
6371
self .assertRaisesRegex (argparse .ArgumentError ,
6372
- 'the following arguments are required: bar, baz' ,
6372
+ 'the following arguments are required: bar, baz$' ,
6373
+ self .parser .parse_args , [])
6374
+
6375
+ def test_required_args_optional (self ):
6376
+ self .parser .add_argument ('bar' )
6377
+ self .parser .add_argument ('baz' , nargs = '?' )
6378
+ self .assertRaisesRegex (argparse .ArgumentError ,
6379
+ 'the following arguments are required: bar$' ,
6380
+ self .parser .parse_args , [])
6381
+
6382
+ def test_required_args_zero_or_more (self ):
6383
+ self .parser .add_argument ('bar' )
6384
+ self .parser .add_argument ('baz' , nargs = '*' )
6385
+ self .assertRaisesRegex (argparse .ArgumentError ,
6386
+ 'the following arguments are required: bar$' ,
6387
+ self .parser .parse_args , [])
6388
+
6389
+ def test_required_args_remainder (self ):
6390
+ self .parser .add_argument ('bar' )
6391
+ self .parser .add_argument ('baz' , nargs = '...' )
6392
+ self .assertRaisesRegex (argparse .ArgumentError ,
6393
+ 'the following arguments are required: bar$' ,
6373
6394
self .parser .parse_args , [])
6374
6395
6375
6396
def test_required_mutually_exclusive_args (self ):
0 commit comments