diff -r d1aa8a9eba44 Lib/argparse.py --- a/Lib/argparse.py Wed May 01 14:13:05 2013 +0300 +++ b/Lib/argparse.py Thu May 02 12:12:26 2013 -0400 @@ -470,7 +470,7 @@ text = _re.sub(r' (%s)' % close, r'\1', text) text = _re.sub(r'%s *%s' % (open, close), r'', text) text = _re.sub(r'\(([^|]*)\)', r'\1', text) - text = text.strip() + text = _re.sub( '\s+', ' ', text ).strip() # return the text return text diff -r d1aa8a9eba44 Lib/test/test_argparse.py --- a/Lib/test/test_argparse.py Wed May 01 14:13:05 2013 +0300 +++ b/Lib/test/test_argparse.py Thu May 02 12:12:26 2013 -0400 @@ -2425,6 +2425,7 @@ add('--spam', action='store_true', help=argparse.SUPPRESS) add('--badger', action='store_false', help=argparse.SUPPRESS) add('--bladder', help=argparse.SUPPRESS) + parser.add_argument('--' + 'eggs' * 20, dest='eggs') return parser failures = [ @@ -2433,23 +2434,25 @@ '--bladder B --spam', ] successes = [ - ('--spam', NS(spam=True, badger=True, bladder=None)), - ('--badger', NS(spam=False, badger=False, bladder=None)), - ('--bladder B', NS(spam=False, badger=True, bladder='B')), - ('--spam --spam', NS(spam=True, badger=True, bladder=None)), + ('--spam', NS(spam=True, badger=True, bladder=None, eggs=None)), + ('--badger', NS(spam=False, badger=False, bladder=None, eggs=None)), + ('--bladder B', NS(spam=False, badger=True, bladder='B', eggs=None)), + ('--spam --spam', NS(spam=True, badger=True, bladder=None, eggs=None)), ] successes_when_not_required = [ - ('', NS(spam=False, badger=True, bladder=None)), + ('', NS(spam=False, badger=True, bladder=None, eggs=None)), ] usage_when_required = usage_when_not_required = '''\ usage: PROG [-h] - ''' + [--{eggs} EGGS] + '''.format(eggs=('eggs' * 20)) help = '''\ optional arguments: - -h, --help show this help message and exit - ''' + -h, --help show this help message and exit + --{eggs} EGGS + '''.format(eggs=('eggs' * 20)) class TestMutuallyExclusiveOptionalAndPositional(MEMixin, TestCase):