blob: 2631c3002aa610e8cd6cb1a91d420370abee9f1e [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()