summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorEli Bendersky <eliben@gmail.com>2013-09-06 13:49:15 (GMT)
committerEli Bendersky <eliben@gmail.com>2013-09-06 13:49:15 (GMT)
commitcdac5516750e3b80b846e0e156e496dd92be9b56 (patch)
tree5530922f0e4a08e12d99f3a94443c71fc89c8d12 /Lib
parent309836c5c8a7bf85c666ff913bf903b8f735cfa5 (diff)
downloadcpython-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.py3
-rw-r--r--Lib/test/test_argparse.py4
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):