not action.option_strings):
if action.default is not None:
value = action.default
+ self._check_value(action, value)
else:
+ # since arg_strings is always [] at this point
+ # there is no need to use self._check_value(action, value)
value = arg_strings
- self._check_value(action, value)
# single argument or optional argument produces a single value
elif len(arg_strings) == 1 and action.nargs in [None, OPTIONAL]:
self.assertEqual(NS(v=3, spam=True, badger="B"), args)
self.assertEqual(["C", "--foo", "4"], extras)
+ def test_zero_or_more_optional(self):
+ parser = argparse.ArgumentParser()
+ parser.add_argument('x', nargs='*', choices=('x', 'y'))
+ args = parser.parse_args([])
+ self.assertEqual(NS(x=[]), args)
+
+
# ===========================
# parse_intermixed_args tests
# ===========================