[Python-checkins] cpython (2.7): - Issue #15906: Fix a regression in argparse caused by the preceding change,
barry.warsaw
python-checkins at python.org
Wed Sep 12 06:12:44 CEST 2012
http://hg.python.org/cpython/rev/739606bdcba4
changeset: 78999:739606bdcba4
branch: 2.7
parent: 78982:706115cb2cdb
user: Barry Warsaw <barry at python.org>
date: Tue Sep 11 21:06:29 2012 -0400
summary:
- Issue #15906: Fix a regression in argparse caused by the preceding change,
when action='append', type='str' and default=[].
files:
Lib/argparse.py | 1 +
Lib/test/test_argparse.py | 10 ++++++++++
Misc/NEWS | 3 +++
3 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/Lib/argparse.py b/Lib/argparse.py
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -1948,6 +1948,7 @@
# twice (which may fail) if the argument was given, but
# only if it was defined already in the namespace
if (action.default is not None and
+ isinstance(action, _StoreAction) and
hasattr(namespace, action.dest) and
action.default is getattr(namespace, action.dest)):
setattr(namespace, action.dest,
diff --git a/Lib/test/test_argparse.py b/Lib/test/test_argparse.py
--- a/Lib/test/test_argparse.py
+++ b/Lib/test/test_argparse.py
@@ -4480,6 +4480,16 @@
args = parser.parse_args([])
self.assertEqual(NS(foo='foo_converted'), args)
+ def test_issue_15906(self):
+ # Issue #15906: When action='append', type=str, default=[] are
+ # providing, the dest value was the string representation "[]" when it
+ # should have been an empty list.
+ parser = argparse.ArgumentParser()
+ parser.add_argument('--test', dest='test', type=str,
+ default=[], action='append')
+ args = parser.parse_args([])
+ self.assertEqual(args.test, [])
+
# ======================
# parse_known_args tests
# ======================
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -119,6 +119,9 @@
especially problematic for the FileType type, as a default file would always
be opened, even if a file argument was specified on the command line.
+- Issue #15906: Fix a regression in argparse caused by the preceding change,
+ when action='append', type='str' and default=[].
+
- Issue #13370: Ensure that ctypes works on Mac OS X when Python is
compiled using the clang compiler
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list