71 lines
2.6 KiB
Python
71 lines
2.6 KiB
Python
from __future__ import annotations
|
|
|
|
|
|
class TestMarkdownDocument:
|
|
"""Covers MarkdownDocument construction and derived properties."""
|
|
|
|
class TestFromRoot:
|
|
"""Covers loading markdown documents from a resource root."""
|
|
|
|
def test_keys_by_relpath(self) -> None:
|
|
"""Ensures from_root returns a mapping keyed by relative path."""
|
|
|
|
def test_loads_markdown_only(self) -> None:
|
|
"""Ensures from_root includes only markdown resources."""
|
|
|
|
def test_preserves_relpaths(self) -> None:
|
|
"""Ensures from_root preserves PurePosixPath-style relative paths."""
|
|
|
|
class TestFromResource:
|
|
"""Covers loading a single markdown document from a resource."""
|
|
|
|
def test_reads_utf8(self) -> None:
|
|
"""Ensures from_resource reads text using UTF-8."""
|
|
|
|
def test_sets_frontmatter(self) -> None:
|
|
"""Ensures from_resource stores frontmatter when delimiters exist."""
|
|
|
|
def test_none_frontmatter(self) -> None:
|
|
"""Ensures from_resource sets frontmatter to None when absent."""
|
|
|
|
class TestSkillSlugProperty:
|
|
"""Covers skill_slug derivation from document relative paths."""
|
|
|
|
def test_returns_slug(self) -> None:
|
|
"""Ensures skill_slug returns the slug for valid skills paths."""
|
|
|
|
def test_none_for_non_skill(self) -> None:
|
|
"""Ensures skill_slug is None for non-skills paths."""
|
|
|
|
def test_none_for_incomplete_skill(self) -> None:
|
|
"""Ensures skill_slug is None for incomplete skills paths."""
|
|
|
|
|
|
class TestWalkResources:
|
|
"""Covers recursive resource walking and markdown filtering behavior."""
|
|
|
|
def test_yields_markdown(self) -> None:
|
|
"""Ensures walk_resources yields markdown files from nested directories."""
|
|
|
|
def test_ignores_other_suffixes(self) -> None:
|
|
"""Ensures walk_resources excludes files with non-matching suffixes."""
|
|
|
|
def test_sorted_output(self) -> None:
|
|
"""Ensures walk_resources yields entries in sorted child-name order."""
|
|
|
|
def test_applies_prefix(self) -> None:
|
|
"""Ensures walk_resources prepends the provided prefix to relpaths."""
|
|
|
|
|
|
class TestFrontmatterParsing:
|
|
"""Covers frontmatter delimiter discovery and raw block extraction."""
|
|
|
|
def test_extracts_between_delimiters(self) -> None:
|
|
"""Ensures get_raw_frontmatter returns lines between first delimiters."""
|
|
|
|
def test_none_without_two_delimiters(self) -> None:
|
|
"""Ensures get_raw_frontmatter returns None without two delimiters."""
|
|
|
|
def test_allows_leading_whitespace(self) -> None:
|
|
"""Ensures delimiter detection accepts lines with leading whitespace."""
|