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)