def parse_args(self, args=None, namespace=None):
args, argv = self.parse_known_args(args, namespace)
if argv:
- msg = _('unrecognized arguments: %s')
- self.error(msg % ' '.join(argv))
+ msg = _('unrecognized arguments: %s') % ' '.join(argv)
+ if self.exit_on_error:
+ self.error(msg)
+ raise ArgumentError(None, msg)
return args
def parse_known_args(self, args=None, namespace=None):
with self.assertRaises(argparse.ArgumentError):
self.parser.parse_args('--integers a'.split())
+ def test_exit_on_error_with_unrecognized_args(self):
+ with self.assertRaises(argparse.ArgumentError):
+ self.parser.parse_args('--foo bar'.split())
def tearDownModule():
# Remove global references to avoid looking like we have refleaks.