class TestCountLines(TestCase): def setUp(self): self.stattext = Stattext() def do_count_lines(self, text): file_content = io.StringIO(text) return self.stattext._count_lines(file_content) def test_empty_file(self): result = self.do_count_lines("") expected = 0 self.assertEqual(result, expected) def test_single_line(self): text = "This is my line" result = self.do_count_lines(text) expected = 1 self.assertEqual(result, expected) def test_single_line_no_chars(self): text = "\n" result = self.do_count_lines(text) expected = 1 self.assertEqual(result, expected) def test_single_line_space_char(self): text = " " result = self.do_count_lines(text) expected = 1 self.assertEqual(result, expected) def test_multi_lines(self): text = "This \n is \n a 4\nlines " result = self.do_count_lines(text) expected = 4 self.assertEqual(result, expected) def test_multi_empty_lines(self): text = "\n\n\n" result = self.do_count_lines(text) expected = 3 self.assertEqual(result, expected) def test_escape_char(self): text = "This \n is \n a 3\\nlines" result = self.do_count_lines(text) expected = 3 self.assertEqual(result, expected)