blob: 4f4b662b1036bd7ae39d3b61da418a0883fad6ca [file] [log] [blame]
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()