diff options
author | Eli Bendersky <eliben@gmail.com> | 2013-09-06 13:49:15 (GMT) |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2013-09-06 13:49:15 (GMT) |
commit | cdac5516750e3b80b846e0e156e496dd92be9b56 (patch) | |
tree | 5530922f0e4a08e12d99f3a94443c71fc89c8d12 /Lib | |
parent | 309836c5c8a7bf85c666ff913bf903b8f735cfa5 (diff) | |
download | cpython-cdac5516750e3b80b846e0e156e496dd92be9b56.zip cpython-cdac5516750e3b80b846e0e156e496dd92be9b56.tar.gz cpython-cdac5516750e3b80b846e0e156e496dd92be9b56.tar.bz2 |
Issue #18920: argparse's default version action (for -v, --version) should
output to stdout, matching the 'python -v'
Reported by Wolfgang Maier
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/argparse.py | 3 | ||||
-rw-r--r-- | Lib/test/test_argparse.py | 4 |
2 files changed, 4 insertions, 3 deletions
diff --git a/Lib/argparse.py b/Lib/argparse.py index 5ff755c..9520e0e 100644 --- a/Lib/argparse.py +++ b/Lib/argparse.py @@ -1037,7 +1037,8 @@ class _VersionAction(Action): version = parser.version formatter = parser._get_formatter() formatter.add_text(version) - parser.exit(message=formatter.format_help()) + parser._print_message(formatter.format_help(), _sys.stdout) + parser.exit() class _SubParsersAction(Action): diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py index 00cde2e..c10c590 100644 --- a/Lib/test/test_argparse.py +++ b/Lib/test/test_argparse.py @@ -4359,7 +4359,7 @@ class TestOptionalsHelpVersionActions(TestCase): def test_version_format(self): parser = ErrorRaisingArgumentParser(prog='PPP') parser.add_argument('-v', '--version', action='version', version='%(prog)s 3.5') - msg = self._get_error(parser.parse_args, ['-v']).stderr + msg = self._get_error(parser.parse_args, ['-v']).stdout self.assertEqual('PPP 3.5\n', msg) def test_version_no_help(self): @@ -4372,7 +4372,7 @@ class TestOptionalsHelpVersionActions(TestCase): def test_version_action(self): parser = ErrorRaisingArgumentParser(prog='XXX') parser.add_argument('-V', action='version', version='%(prog)s 3.7') - msg = self._get_error(parser.parse_args, ['-V']).stderr + msg = self._get_error(parser.parse_args, ['-V']).stdout self.assertEqual('XXX 3.7\n', msg) def test_no_help(self): |