def test_empty_file(self): self.reporter.call_count = 0 content = ('') checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check() self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def test_valid_content(self): self.reporter.call_count = 0 checker = ReStructuredTextChecker( 'bogus', valid_rst_content, self.reporter) checker.check() self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def test_isSectionDelimiter_short_line(self): content = ( 'Som' '---\n' '' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) result = checker.isSectionDelimiter(1) self.assertFalse(result)
def test_isTransition_short_file(self): content = ( '\n' '----\n' '' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) result = checker.isTransition(1) self.assertFalse(result)
def test_isTransition_good(self): content = ( '\n' '----\n' '\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) result = checker.isTransition(1) self.assertTrue(result)
def test_check_section_after_space_last_line(self): content = ( 'Section\n' '-------\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(1) self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def test_isSectionDelimiter_good(self): content = ( 'Section\n' '-------\n' 'some text' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) result = checker.isSectionDelimiter(1) self.assertTrue(result)
def test_check_section_before_space_good_start_bottom(self): content = ( 'Section\n' '-------\n' '\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(1) self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def test_isSectionDelimiter_good_bounded_start_of_file(self): content = ( '=======\n' 'Section\n' '=======\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) result = checker.isSectionDelimiter(0) self.assertTrue(result) result = checker.isSectionDelimiter(2) self.assertTrue(result)
def test_check_section_after_space_bad(self): content = ( 'Section\n' '-------\n' 'Paragraph start.\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(1) expect = [(2, 'Section title should be followed by 1 empty line.')] self.assertEqual(expect, self.reporter.messages) self.assertEqual(1, self.reporter.call_count)
def test_no_empty_last_line(self): self.reporter.call_count = 0 content = ( 'Some first line\n' 'the second and last line witout newline' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_empty_last_line() expected = [( 2, 'File does not ends with an empty line.')] self.assertEqual(expected, self.reporter.messages) self.assertEqual(1, self.reporter.call_count)
def test_check_section_before_space_bad_only_one_line_near_start(self): content = ( '\n' 'Section\n' '-------\n' '\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(2) expect = [(3, 'Section should be divided by 2 empty lines.')] self.assertEqual(expect, self.reporter.messages) self.assertEqual(1, self.reporter.call_count)
def test_check_transitions_good(self): content = ( 'some text\n' '\n' '----\n' '\n' 'some text\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_transition(2) self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def test_isSectionDelimiter_table(self): content = ( '---- ----' 'Row1 Row1' '---- ----\n' '' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) result = checker.isSectionDelimiter(0) self.assertFalse(result) result = checker.isSectionDelimiter(2) self.assertFalse(result)
def test_check_section_empty_section_next_section_only_bottom(self): content = ( 'Emtpy Section\n' '=============\n' '\n' '\n' 'Another Section\n' '---------------\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(1) self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def test_check_section_delimiter_bad_marker_length(self): content = ( 'Section\n' '------\n' '\n' 'some text\n' 'other text\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(1) expect = [(2, 'Section marker has wrong length.')] self.assertEqual(expect, self.reporter.messages) self.assertEqual(1, self.reporter.call_count)
def test_check_section_before_space_multiple_empty_lines(self): content = ( 'end of previous section.\n' '\n' '\n' '\n' 'Section\n' '-------\n' '\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(5) expect = [(6, 'Section should be divided by 2 empty lines.')] self.assertEqual(expect, self.reporter.messages) self.assertEqual(1, self.reporter.call_count)
def test_check_transitions_bad_spacing_after(self): content = ( 'some text\n' '\n' '----\n' '\n' '\n' 'some text\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_transition(2) expect = [( 3, 'Transition markers should be bounded by single empty lines.')] self.assertEqual(expect, self.reporter.messages) self.assertEqual(1, self.reporter.call_count)
def test_check_section_delimiter_bounded(self): content = ( 'some text\n' '\n' '\n' '=======\n' 'Section\n' '=======\n' '\n' 'some text\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_section_delimiter(3) checker.check_section_delimiter(5) self.assertEqual([], self.reporter.messages) self.assertEqual(0, self.reporter.call_count)
def disable_check_section_delimiter_both_markers_not_sync(self): # When both top and bottom markers are used, and they don't have # the same size, they are interpreted as separate markers. content = ( '------\n' 'Section\n' '--------\n' '\n' 'some text\n' 'other text\n' ) checker = ReStructuredTextChecker('bogus', content, self.reporter) checker.check_lines() expect = [ (1, 'Section marker has wrong length.'), (1, 'Section title should be followed by 1 empty line.'), (3, 'Section marker has wrong length.'), ] self.assertEqual(expect, self.reporter.messages) self.assertEqual(3, self.reporter.call_count)