diff options
author | Irit Katriel <iritkatriel@yahoo.com> | 2020-10-18 18:01:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-18 20:01:15 +0300 |
commit | b81c833ab51fb7d7f0f8eaace37f60ef7455aa85 (patch) | |
tree | 8543955715fe59aa8d762a76b159c93e6f40dadc /Lib/test/test_textwrap.py | |
parent | 67f04878debbcec60191cddbddf9c83e8b9b36fe (diff) | |
download | cpython-b81c833ab51fb7d7f0f8eaace37f60ef7455aa85.tar.gz cpython-b81c833ab51fb7d7f0f8eaace37f60ef7455aa85.zip |
bpo-28660: Make TextWrapper break long words on hyphens (GH-22721)
Diffstat (limited to 'Lib/test/test_textwrap.py')
-rw-r--r-- | Lib/test/test_textwrap.py | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/Lib/test/test_textwrap.py b/Lib/test/test_textwrap.py index ed97f70ba1f..dfbc2b93dfc 100644 --- a/Lib/test/test_textwrap.py +++ b/Lib/test/test_textwrap.py @@ -640,6 +640,78 @@ How *do* you spell that odd word, anyways? max_lines=4) +class LongWordWithHyphensTestCase(BaseTestCase): + def setUp(self): + self.wrapper = TextWrapper() + self.text1 = '''\ +We used enyzme 2-succinyl-6-hydroxy-2,4-cyclohexadiene-1-carboxylate synthase. +''' + self.text2 = '''\ +1234567890-1234567890--this_is_a_very_long_option_indeed-good-bye" +''' + + def test_break_long_words_on_hyphen(self): + expected = ['We used enyzme 2-succinyl-6-hydroxy-2,4-', + 'cyclohexadiene-1-carboxylate synthase.'] + self.check_wrap(self.text1, 50, expected) + + expected = ['We used', 'enyzme 2-', 'succinyl-', '6-hydroxy-', '2,4-', + 'cyclohexad', 'iene-1-', 'carboxylat', 'e', 'synthase.'] + self.check_wrap(self.text1, 10, expected) + + expected = ['1234567890', '-123456789', '0--this_is', '_a_very_lo', + 'ng_option_', 'indeed-', 'good-bye"'] + self.check_wrap(self.text2, 10, expected) + + def test_break_long_words_not_on_hyphen(self): + expected = ['We used enyzme 2-succinyl-6-hydroxy-2,4-cyclohexad', + 'iene-1-carboxylate synthase.'] + self.check_wrap(self.text1, 50, expected, break_on_hyphens=False) + + expected = ['We used', 'enyzme 2-s', 'uccinyl-6-', 'hydroxy-2,', + '4-cyclohex', 'adiene-1-c', 'arboxylate', 'synthase.'] + self.check_wrap(self.text1, 10, expected, break_on_hyphens=False) + + expected = ['1234567890', '-123456789', '0--this_is', '_a_very_lo', + 'ng_option_', 'indeed-', 'good-bye"'] + self.check_wrap(self.text2, 10, expected) + + def test_break_on_hyphen_but_not_long_words(self): + expected = ['We used enyzme', + '2-succinyl-6-hydroxy-2,4-cyclohexadiene-1-carboxylate', + 'synthase.'] + + self.check_wrap(self.text1, 50, expected, break_long_words=False) + + expected = ['We used', 'enyzme', + '2-succinyl-6-hydroxy-2,4-cyclohexadiene-1-carboxylate', + 'synthase.'] + self.check_wrap(self.text1, 10, expected, break_long_words=False) + + expected = ['1234567890', '-123456789', '0--this_is', '_a_very_lo', + 'ng_option_', 'indeed-', 'good-bye"'] + self.check_wrap(self.text2, 10, expected) + + + def test_do_not_break_long_words_or_on_hyphens(self): + expected = ['We used enyzme', + '2-succinyl-6-hydroxy-2,4-cyclohexadiene-1-carboxylate', + 'synthase.'] + self.check_wrap(self.text1, 50, expected, + break_long_words=False, + break_on_hyphens=False) + + expected = ['We used', 'enyzme', + '2-succinyl-6-hydroxy-2,4-cyclohexadiene-1-carboxylate', + 'synthase.'] + self.check_wrap(self.text1, 10, expected, + break_long_words=False, + break_on_hyphens=False) + + expected = ['1234567890', '-123456789', '0--this_is', '_a_very_lo', + 'ng_option_', 'indeed-', 'good-bye"'] + self.check_wrap(self.text2, 10, expected) + class IndentTestCases(BaseTestCase): # called before each test method |