blob: 623c7a62753fd435b9f436fcea4584b5f249472c [file] [log] [blame]
from unittest import TestCase, main
from mypy.util import trim_source_line, split_words
class FancyErrorFormattingTestCases(TestCase):
def test_trim_source(self) -> None:
assert trim_source_line('0123456789abcdef',
max_len=16, col=5, min_width=2) == ('0123456789abcdef', 0)
# Locations near start.
assert trim_source_line('0123456789abcdef',
max_len=7, col=0, min_width=2) == ('0123456...', 0)
assert trim_source_line('0123456789abcdef',
max_len=7, col=4, min_width=2) == ('0123456...', 0)
# Middle locations.
assert trim_source_line('0123456789abcdef',
max_len=7, col=5, min_width=2) == ('...1234567...', -2)
assert trim_source_line('0123456789abcdef',
max_len=7, col=6, min_width=2) == ('...2345678...', -1)
assert trim_source_line('0123456789abcdef',
max_len=7, col=8, min_width=2) == ('...456789a...', 1)
# Locations near the end.
assert trim_source_line('0123456789abcdef',
max_len=7, col=11, min_width=2) == ('...789abcd...', 4)
assert trim_source_line('0123456789abcdef',
max_len=7, col=13, min_width=2) == ('...9abcdef', 6)
assert trim_source_line('0123456789abcdef',
max_len=7, col=15, min_width=2) == ('...9abcdef', 6)
def test_split_words(self) -> None:
assert split_words('Simple message') == ['Simple', 'message']
assert split_words('Message with "Some[Long, Types]"'
' in it') == ['Message', 'with',
'"Some[Long, Types]"', 'in', 'it']
assert split_words('Message with "Some[Long, Types]"'
' and [error-code]') == ['Message', 'with', '"Some[Long, Types]"',
'and', '[error-code]']
assert split_words('"Type[Stands, First]" then words') == ['"Type[Stands, First]"',
'then', 'words']
assert split_words('First words "Then[Stands, Type]"') == ['First', 'words',
'"Then[Stands, Type]"']
assert split_words('"Type[Only, Here]"') == ['"Type[Only, Here]"']
assert split_words('OneWord') == ['OneWord']
assert split_words(' ') == ['', '']
if __name__ == '__main__':
main()