[FIX] tests: don't confuse separators for heading delimiters

This commit is contained in:
Antoine Vandevenne (anv) 2025-02-19 13:32:21 +01:00
parent e69e853f44
commit 590e70b5da

View File

@ -74,7 +74,8 @@ def check_min_one_main_heading(file, lines, options=None):
def check_heading_delimiters_length(file, lines, options=None): def check_heading_delimiters_length(file, lines, options=None):
""" Check that heading delimiters have the same length as their heading. """ """ Check that heading delimiters have the same length as their heading. """
for lno, line in enumerate(lines): for lno, line in enumerate(lines):
if HEADING_DELIMITER_RE.search(line): # The line is a heading delimiter. previous_line = lno > 1 and lines[lno - 1]
if HEADING_DELIMITER_RE.search(line) and previous_line != '\n': # Heading delimiter found.
if MAIN_HEADING_RE.search(''.join(lines[lno:lno+3])): # Upper delimiter of h1. if MAIN_HEADING_RE.search(''.join(lines[lno:lno+3])): # Upper delimiter of h1.
heading_lno = lno + 1 heading_lno = lno + 1
else: # Lower delimiter of a heading of any level. else: # Lower delimiter of a heading of any level.
@ -87,7 +88,8 @@ def check_heading_delimiters_length(file, lines, options=None):
def check_heading_spacing(file, lines, options=None): def check_heading_spacing(file, lines, options=None):
""" Check that headings are preceded and followed by at least one blank line. """ """ Check that headings are preceded and followed by at least one blank line. """
for lno, line in enumerate(lines): for lno, line in enumerate(lines):
if HEADING_DELIMITER_RE.search(line): # The line is a heading delimiter. previous_line = lno > 1 and lines[lno - 1]
if HEADING_DELIMITER_RE.search(line) and previous_line != '\n': # Heading delimiter found.
if MAIN_HEADING_RE.search(''.join(lines[lno:lno+3])): # Upper delimiter of h1. if MAIN_HEADING_RE.search(''.join(lines[lno:lno+3])): # Upper delimiter of h1.
continue # We handle this heading via its lower delimiter. continue # We handle this heading via its lower delimiter.
@ -137,12 +139,13 @@ def check_early_line_breaks(file, lines, options=None):
for lno, line in enumerate(lines): for lno, line in enumerate(lines):
if lno + 1 < len(lines): if lno + 1 < len(lines):
next_line = lines[lno + 1] next_line = lines[lno + 1]
if (is_valid_line(line, ('+', '|')) if (
is_valid_line(line, ('+', '|'))
and is_valid_line(next_line, ('+', '|', '- ', '* ', '#. ')) and is_valid_line(next_line, ('+', '|', '- ', '* ', '#. '))
): ):
current_line_remaining_space = options.max_line_length - len(line) current_line_remaining_space = options.max_line_length - len(line.rstrip())
next_line_first_word = get_next_line_first_word(next_line).rstrip() next_line_first_word = get_next_line_first_word(next_line).rstrip()
if current_line_remaining_space > len(next_line_first_word): if current_line_remaining_space >= len(next_line_first_word):
yield lno + 1, f"consider moving \"{next_line_first_word}\" to line {lno + 1}" yield lno + 1, f"consider moving \"{next_line_first_word}\" to line {lno + 1}"