chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
import importlib.util
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
_SCRIPT = Path(__file__).parents[2] / ".github" / "scripts" / "pr-template" / "format_body.py"
|
||||
sys.path.insert(0, str(_SCRIPT.parent))
|
||||
_SPEC = importlib.util.spec_from_file_location("pr_autoformat", _SCRIPT)
|
||||
assert _SPEC is not None and _SPEC.loader is not None
|
||||
pr_autoformat = importlib.util.module_from_spec(_SPEC)
|
||||
_SPEC.loader.exec_module(pr_autoformat)
|
||||
|
||||
|
||||
def test_wraps_existing_description_in_summary_without_deleting_it() -> None:
|
||||
formatted = pr_autoformat.format_body("Fix the important thing.")
|
||||
|
||||
assert formatted.startswith("## Summary\n\nFix the important thing.")
|
||||
assert "## Type of change" in formatted
|
||||
assert "- [ ] Bug fix" in formatted
|
||||
assert "## Test coverage" in formatted
|
||||
assert "- [ ] Unit tests added / updated" in formatted
|
||||
|
||||
|
||||
def test_preserves_existing_sections_and_adds_missing_optional_context() -> None:
|
||||
original = "## Summary\n\nExisting summary.\n\n## Type of change\n\n- [x] Feature\n"
|
||||
formatted = pr_autoformat.format_body(original)
|
||||
|
||||
assert "Existing summary." in formatted
|
||||
assert "- [x] Feature" in formatted
|
||||
assert formatted.count("## Summary") == 1
|
||||
assert formatted.count("## Type of change") == 1
|
||||
assert "## ELI5" in formatted
|
||||
assert "## Diagram" in formatted
|
||||
assert "## Test Plan" in formatted
|
||||
assert "## Coverage notes" in formatted
|
||||
assert "## Changelog" in formatted
|
||||
|
||||
|
||||
def test_scaffolds_changelog_section_with_delete_placeholder() -> None:
|
||||
formatted = pr_autoformat.format_body("Fix the important thing.")
|
||||
assert "## Changelog" in formatted
|
||||
# The scaffolded section defaults to the delete-if-not-noteworthy placeholder.
|
||||
assert formatted.rstrip().endswith("else delete this section>")
|
||||
Reference in New Issue
Block a user