From: Steven Bethard Date: Sun, 3 Apr 2011 23:47:52 +0000 (+0200) Subject: Issue #9347: Fix formatting for tuples in argparse type= error messages. X-Git-Tag: v2.7.2rc1~188 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e3c11b44e37e80371fcaf71880e659a78360e8b6;p=python Issue #9347: Fix formatting for tuples in argparse type= error messages. --- diff --git a/Lib/argparse.py b/Lib/argparse.py index 5b5598fc26..a9129de470 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -1277,13 +1277,13 @@ class _ActionsContainer(object): # create the action object, and add it to the parser action_class = self._pop_action_class(kwargs) if not _callable(action_class): - raise ValueError('unknown action "%s"' % action_class) + raise ValueError('unknown action "%s"' % (action_class,)) action = action_class(**kwargs) # raise an error if the action type is not callable type_func = self._registry_get('type', action.type, action.type) if not _callable(type_func): - raise ValueError('%r is not callable' % type_func) + raise ValueError('%r is not callable' % (type_func,)) # raise an error if the metavar does not match the type if hasattr(self, "_get_formatter"): diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 89a437dd40..5785eec57f 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -4016,10 +4016,12 @@ class TestInvalidArgumentConstructors(TestCase): def test_invalid_type(self): self.assertValueError('--foo', type='int') + self.assertValueError('--foo', type=(int, float)) def test_invalid_action(self): self.assertValueError('-x', action='foo') self.assertValueError('foo', action='baz') + self.assertValueError('--foo', action=('store', 'append')) parser = argparse.ArgumentParser() try: parser.add_argument("--foo", action="store-true") diff --git a/Misc/NEWS b/Misc/NEWS index 9b68a72c0d..6748638cb8 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -257,6 +257,8 @@ Library - Issue #9026: Fix order of argparse sub-commands in help messages. +- Issue #9347: Fix formatting for tuples in argparse type= error messages. + Extension Modules -----------------