| from tools.linter import trailing_newlines |
| import unittest |
| import tempfile |
| |
| |
| def correct_trailing_newlines(file_contents: str) -> bool: |
| with tempfile.NamedTemporaryFile(mode='w', delete=False) as tmp: |
| filename = tmp.name |
| tmp.write(file_contents) |
| return trailing_newlines.correct_trailing_newlines(filename) |
| |
| |
| class TestTrailingNewlines(unittest.TestCase): |
| def test_empty(self) -> None: |
| self.assertTrue(correct_trailing_newlines('')) |
| |
| def test_single_byte(self) -> None: |
| self.assertFalse(correct_trailing_newlines('a')) |
| |
| def test_single_newline(self) -> None: |
| self.assertFalse(correct_trailing_newlines('\n')) |
| |
| def test_two_newlines(self) -> None: |
| self.assertFalse(correct_trailing_newlines('\n\n')) |
| |
| def test_three_newlines(self) -> None: |
| self.assertFalse(correct_trailing_newlines('\n\n\n')) |
| |
| def test_hello_world(self) -> None: |
| self.assertFalse(correct_trailing_newlines('hello world')) |
| |
| def test_hello_world_newline(self) -> None: |
| self.assertTrue(correct_trailing_newlines('hello world\n')) |
| |
| def test_hello_world_two_newlines(self) -> None: |
| self.assertFalse(correct_trailing_newlines('hello world\n\n')) |
| |
| def test_hello_world_three_newlines(self) -> None: |
| self.assertFalse(correct_trailing_newlines('hello world\n\n\n')) |
| |
| def test_hello_world_multiline(self) -> None: |
| self.assertFalse(correct_trailing_newlines('hello\nworld')) |
| |
| def test_hello_world_multiline_gap(self) -> None: |
| self.assertTrue(correct_trailing_newlines('hello\n\nworld\n')) |
| |
| |
| if __name__ == '__main__': |
| unittest.main() |