# of IndentTestCase!
class DedentTestCase(unittest.TestCase):
+ def test_type_error(self):
+ with self.assertRaisesRegex(TypeError, "expected str object, not"):
+ dedent(0)
+
+ with self.assertRaisesRegex(TypeError, "expected str object, not"):
+ dedent(b'')
+
def assertUnchanged(self, text):
"""assert that dedent() has no effect on 'text'"""
self.assertEqual(text, dedent(text))
Entirely blank lines are normalized to a newline character.
"""
- if not text:
- return text
-
- lines = text.split('\n')
+ try:
+ lines = text.split('\n')
+ except (AttributeError, TypeError):
+ msg = f'expected str object, not {type(text).__qualname__!r}'
+ raise TypeError(msg) from None
# Get length of leading whitespace, inspired by ``os.path.commonprefix()``.
non_blank_lines = [l for l in lines if l and not l.isspace()]
.. nonce: 8M-HVz
.. section: Library
-Improved performance of :func:`textwrap.dedent` by an average of ~1.3x.
+Improved performance of :func:`textwrap.indent` by an average of ~1.3x.
Patch by Adam Turner.
..