Merge 3.2 fix updates and tests for issue #15906.
diff --git a/Lib/argparse.py b/Lib/argparse.py
index 66cd70a..f25b1b6 100644
--- a/Lib/argparse.py
+++ b/Lib/argparse.py
@@ -1961,7 +1961,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
+ isinstance(action.default, str) and
hasattr(namespace, action.dest) and
action.default is getattr(namespace, action.dest)):
setattr(namespace, action.dest,