| 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() |