3 from __future__
import absolute_import
, division
, unicode_literals
6 from cola
import textwrap
9 class WordWrapTestCase(unittest
.TestCase
):
14 def wrap(self
, text
, break_on_hyphens
=True):
15 return textwrap
.word_wrap(
16 text
, self
.tabwidth
, self
.limit
, break_on_hyphens
=break_on_hyphens
19 def test_word_wrap(self
):
22 12345678901 3 56 8 01 3 5 7
30 self
.assertEqual(expect
, self
.wrap(text
))
32 def test_word_wrap_dashes(self
):
36 self
.assertEqual(expect
, self
.wrap(text
))
38 def test_word_wrap_leading_spaces(self
):
42 self
.assertEqual(expect
, self
.wrap('1234 5'))
43 self
.assertEqual(expect
, self
.wrap('1234 5'))
44 self
.assertEqual(expect
, self
.wrap('1234 5'))
45 self
.assertEqual(expect
, self
.wrap('1234 5'))
46 self
.assertEqual(expect
, self
.wrap('1234 5'))
49 self
.assertEqual(expect
, self
.wrap('123 4'))
50 self
.assertEqual(expect
, self
.wrap('123 4'))
51 self
.assertEqual(expect
, self
.wrap('123 4'))
52 self
.assertEqual(expect
, self
.wrap('123 4'))
53 self
.assertEqual(expect
, self
.wrap('123 4'))
55 def test_word_wrap_double_dashes(self
):
59 self
.assertEqual(expect
, self
.wrap(text
, break_on_hyphens
=True))
62 self
.assertEqual(expect
, self
.wrap(text
, break_on_hyphens
=False))
64 def test_word_wrap_many_lines(self
):
78 self
.assertEqual(expect
, self
.wrap(text
))
80 def test_word_python_code(self
):
89 self
.assertEqual(text
, self
.wrap(text
))
91 def test_word_wrap_spaces(self
):
94 self
.assertEqual('', self
.wrap(text
))
96 def test_word_wrap_special_tag(self
):
99 This test is so meta, even this sentence
101 Cheered-on-by: Avoids word-wrap
102 C.f. This also avoids word-wrap
103 References: This also avoids word-wrap
104 See-also: This also avoids word-wrap
105 Related-to: This also avoids word-wrap
106 Link: This also avoids word-wrap
119 Cheered-on-by: Avoids word-wrap
120 C.f. This also avoids word-wrap
121 References: This also avoids word-wrap
122 See-also: This also avoids word-wrap
123 Related-to: This also avoids word-wrap
124 Link: This also avoids word-wrap
127 self
.assertEqual(self
.wrap(text
), expect
)
129 def test_word_wrap_space_at_start_of_wrap(self
):
130 inputs
= """0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 """
131 expect
= """0 1 2 3 4 5 6 7 8 9\n0 1 2 3 4 5 6 7 8"""
133 actual
= self
.wrap(inputs
)
134 self
.assertEqual(expect
, actual
)
136 def test_word_wrap_keeps_tabs_at_start(self
):
137 inputs
= """\tfirst line\n\n\tsecond line"""
138 expect
= """\tfirst line\n\n\tsecond line"""
140 actual
= self
.wrap(inputs
)
141 self
.assertEqual(expect
, actual
)
143 def test_word_wrap_keeps_twospace_indents(self
):
144 inputs
= """first line\n\n* branch:\n line1\n line2\n"""
145 expect
= """first line\n\n* branch:\n line1\n line2\n"""
147 actual
= self
.wrap(inputs
)
148 self
.assertEqual(expect
, actual
)
150 def test_word_wrap_ranges(self
):
151 text
= 'a bb ccc dddd\neeeee'
152 expect
= 'a\nbb\nccc\ndddd\neeeee'
153 actual
= textwrap
.word_wrap(text
, 8, 2)
154 self
.assertEqual(expect
, actual
)
156 expect
= 'a bb\nccc\ndddd\neeeee'
157 actual
= textwrap
.word_wrap(text
, 8, 4)
158 self
.assertEqual(expect
, actual
)
160 text
= 'a bb ccc dddd\n\teeeee'
161 expect
= 'a bb\nccc\ndddd\n\t\neeeee'
162 actual
= textwrap
.word_wrap(text
, 8, 4)
163 self
.assertEqual(expect
, actual
)
165 def test_triplets(self
):
166 text
= 'xx0 xx1 xx2 xx3 xx4 xx5 xx6 xx7 xx8 xx9 xxa xxb'
168 expect
= 'xx0 xx1 xx2 xx3 xx4 xx5 xx6\nxx7 xx8 xx9 xxa xxb'
169 actual
= textwrap
.word_wrap(text
, 8, 27)
170 self
.assertEqual(expect
, actual
)
172 expect
= 'xx0 xx1 xx2 xx3 xx4 xx5\nxx6 xx7 xx8 xx9 xxa xxb'
173 actual
= textwrap
.word_wrap(text
, 8, 26)
174 self
.assertEqual(expect
, actual
)
176 actual
= textwrap
.word_wrap(text
, 8, 25)
177 self
.assertEqual(expect
, actual
)
179 actual
= textwrap
.word_wrap(text
, 8, 24)
180 self
.assertEqual(expect
, actual
)
182 actual
= textwrap
.word_wrap(text
, 8, 23)
183 self
.assertEqual(expect
, actual
)
185 expect
= 'xx0 xx1 xx2 xx3 xx4\nxx5 xx6 xx7 xx8 xx9\nxxa xxb'
186 actual
= textwrap
.word_wrap(text
, 8, 22)
187 self
.assertEqual(expect
, actual
)
190 if __name__
== '__main__':