Files

50 lines
1.9 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""One release story, three surfaces. A release with no story, or a Help agent answering from a
stale picture of the app, are both bugs this pins shut."""
from backend.apps.help.changelog import (
all_versions, as_markdown, help_context_block, latest_release, release_notes,
)
from backend.apps.service.version import APP_VERSION
def test_the_shipping_version_has_a_story():
note = release_notes(APP_VERSION)
assert note is not None, f"{APP_VERSION} ships with no release notes; write them before tagging"
assert note.headline and (note.highlights or note.fixes)
def test_notes_are_written_for_users_not_committers():
for note in (latest_release(),):
for line in note.highlights + note.fixes:
assert not line.startswith("["), "no commit-style prefixes"
assert "commit" not in line.lower() and "refactor" not in line.lower()
assert "—" not in line and "" not in line, "house style: no em/en dashes"
def test_no_em_dashes_anywhere_in_a_release_body():
# House rule, and the header was the one place the earlier test did not look.
md = as_markdown(latest_release())
assert "\u2014" not in md and "\u2013" not in md, "release bodies use plain punctuation"
def test_markdown_body_carries_the_same_words_as_the_app():
note = latest_release()
md = as_markdown(note)
assert note.headline in md
for line in note.highlights + note.fixes:
assert line in md, "the GitHub body must not drift from the in-app card"
def test_help_context_names_the_version_and_its_changes():
block = help_context_block(APP_VERSION)
assert APP_VERSION in block
note = release_notes(APP_VERSION)
assert note is not None
assert note.highlights[0] in block
def test_unknown_version_falls_back_to_the_latest_story_not_silence():
assert release_notes("0.0.0") is None
assert latest_release().version in help_context_block("0.0.0")
assert len(all_versions()) >= 2