From eb287a26621001fb5d945b7b6246ccac77378cc7 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Wed, 2 Oct 2002 15:47:32 +0000 Subject: [PATCH] Fix an endcase bug: initial_indent was ignored when the text was short enough to fit in one line. --- Lib/test/test_textwrap.py | 16 +++++++++++++--- Lib/textwrap.py | 5 +++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_textwrap.py b/Lib/test/test_textwrap.py index fc5d0cc202..2a6d67a50d 100644 --- a/Lib/test/test_textwrap.py +++ b/Lib/test/test_textwrap.py @@ -33,11 +33,11 @@ class BaseTestCase(unittest.TestCase): 'expected:\n%s\nbut got:\n%s' % ( self.show(expect), self.show(result))) - def check_wrap (self, text, width, expect): - result = wrap(text, width) + def check_wrap(self, text, width, expect, **kwargs): + result = wrap(text, width, **kwargs) self.check(result, expect) - def check_split (self, wrapper, text, expect): + def check_split(self, wrapper, text, expect): result = wrapper._split(text) self.assertEquals(result, expect, "\nexpected %r\n" @@ -101,6 +101,16 @@ What a mess! self.check_wrap(text, 40, ["This is a short paragraph."]) + def test_wrap_short_1line(self): + # Test endcases + + text = "This is a short line." + + self.check_wrap(text, 30, ["This is a short line."]) + self.check_wrap(text, 30, ["(1) This is a short line."], + initial_indent="(1) ") + + def test_hyphenated(self): # Test breaking hyphenated words diff --git a/Lib/textwrap.py b/Lib/textwrap.py index f5d1915711..ff5f7efaa9 100644 --- a/Lib/textwrap.py +++ b/Lib/textwrap.py @@ -237,8 +237,9 @@ class TextWrapper: converted to space. """ text = self._munge_whitespace(text) - if len(text) <= self.width: - return [text] + indent = self.initial_indent + if len(text) + len(indent) <= self.width: + return [indent + text] chunks = self._split(text) if self.fix_sentence_endings: self._fix_sentence_endings(chunks) -- 2.49.0