52 lines
2.6 KiB
Python
52 lines
2.6 KiB
Python
|
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()
|