Download .github/scripts/tests/test_markdown_sections.py from SaylorTwift/openhands: direct link, hf CLI and curl.
- Browser
- Download file 3.66 kB
-
https://huggingface.co/SaylorTwift/openhands/resolve/main/.github/scripts/tests/test_markdown_sections.py
- Command line
-
hf download hf://SaylorTwift/openhands/.github/scripts/tests/test_markdown_sections.py
-
curl -L -o test_markdown_sections.py https://huggingface.co/SaylorTwift/openhands/resolve/main/.github/scripts/tests/test_markdown_sections.py
3.66 kB
| """Tests for markdown_sections.py — the fence-aware heading scanner.""" | |
| import re | |
| import sys | |
| from pathlib import Path | |
| # Make the sibling script importable. | |
| sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) | |
| from markdown_sections import find_headings, without_fenced_code_blocks | |
| H3_RE = re.compile(r"(?m)^###\s+(.+?)\s*$") | |
| def headings(body: str) -> list[str]: | |
| return [match.group(1) for match in find_headings(body, H3_RE)] | |
| # --------------------------------------------------------------------------- | |
| # Offsets | |
| # --------------------------------------------------------------------------- | |
| def test_masking_preserves_offsets(): | |
| body = "### One\n```py\n### Two\n```\n### Three\n" | |
| masked = without_fenced_code_blocks(body) | |
| assert len(masked) == len(body) | |
| assert masked.splitlines() == [ | |
| "### One", | |
| " ", | |
| " ", | |
| " ", | |
| "### Three", | |
| ] | |
| def test_masking_preserves_crlf_offsets(): | |
| body = "### One\r\n```py\r\n### Two\r\n```\r\n### Three\r\n" | |
| masked = without_fenced_code_blocks(body) | |
| assert len(masked) == len(body) | |
| assert headings(body) == ["One", "Three"] | |
| # --------------------------------------------------------------------------- | |
| # Unclosed fences | |
| # --------------------------------------------------------------------------- | |
| def test_unclosed_fence_does_not_hide_later_headings(): | |
| """A stray marker in a pasted log must not swallow the rest of the body.""" | |
| body = """### Relevant Logs | |
| ```shell | |
| Traceback (most recent call last): | |
| the paste was cut off here | |
| ### Actual Behavior | |
| It broke. | |
| """ | |
| assert headings(body) == ["Relevant Logs", "Actual Behavior"] | |
| def test_unclosed_fence_leaves_text_untouched(): | |
| body = "### One\n~~~\nstill here\n" | |
| assert without_fenced_code_blocks(body) == body | |
| def test_second_fence_reopens_after_a_balanced_one(): | |
| body = """### One | |
| ``` | |
| ### Masked | |
| ``` | |
| ### Two | |
| ``` | |
| ### Not masked, fence never closes | |
| """ | |
| assert headings(body) == ["One", "Two", "Not masked, fence never closes"] | |
| # --------------------------------------------------------------------------- | |
| # Fence markers | |
| # --------------------------------------------------------------------------- | |
| def test_tilde_fence_is_not_closed_by_backticks(): | |
| body = "### One\n~~~\n### Masked\n```\n### Also masked\n~~~\n### Two\n" | |
| assert headings(body) == ["One", "Two"] | |
| def test_longer_fence_is_not_closed_by_a_shorter_one(): | |
| body = "### One\n````\n### Masked\n```\n### Also masked\n````\n### Two\n" | |
| assert headings(body) == ["One", "Two"] | |
| def test_info_string_does_not_close_a_fence(): | |
| body = "### One\n```\n### Masked\n```py\n### Also masked\n```\n### Two\n" | |
| assert headings(body) == ["One", "Two"] | |
| # --------------------------------------------------------------------------- | |
| # Indentation | |
| # --------------------------------------------------------------------------- | |
| def test_fence_indented_inside_a_list_item_is_masked(): | |
| """CommonMark measures a nested fence from the list's content column.""" | |
| body = """### Steps to Reproduce | |
| 1. Quote the template: | |
| ```markdown | |
| ### Acceptance Criteria | |
| - [ ] not a real criterion | |
| ``` | |
| ### Actual Behavior | |
| It broke. | |
| """ | |
| assert headings(body) == ["Steps to Reproduce", "Actual Behavior"] | |
| def test_closing_fence_indented_past_the_limit_does_not_close(): | |
| body = """### One | |
| ```text | |
| ### Masked | |
| ``` | |
| ### Also masked | |
| ``` | |
| ### Two | |
| """ | |
| assert headings(body) == ["One", "Two"] | |
| def test_closing_fence_may_be_indented_three_spaces(): | |
| body = "### One\n```\n### Masked\n ```\n### Two\n" | |
| assert headings(body) == ["One", "Two"] | |