Baltimorean "Ard!" → "Baltimorean" rename across inline surfaces (banner / scroll line / my-notes Title row); navbar DON greeting keeps "Ayo, Ard!" as the sole Ard! flair — and a companion PronounsAppletFlowTest sync-point fix for the 200/Brief response path introduced by the Baltimorean unlock loop in 435a192 ; FT fix (functional_tests/test_game_kit.py) — PronounsAppletFlowTest.test_pronoun_flip_propagates_to_billscroll_and_most_recent was written pre-Baltimorean when set_pronouns always returned 204 → reload; the Baltimorean loop split the response into 200-w-brief (first-bawlmorese, no reload — Brief banner would be lost) vs 204-reload (other pronouns), so the test's step-4 wait_for(.gk-pronoun-card.active[data-pronoun='bawlmorese']) hung indefinitely on the Brief banner because the active class only updates after the reload that no longer happens; sync point swapped to wait_for(.note-banner) — the Brief banner's appearance is the natural post-commit signal that the server saved the pronoun (after which step-5/6 navigate to billboard + scroll to verify "yos" prose) ; rename core (drama/models.py) — Note.grant_if_new else branch's attr_combo inline attribution now uses note.display_name instead of note.display_title, so the scroll line reads "Look!—new Note unlocked. Baltimorean recognizes @disco the Baltimorean." instead of "…the Ard!." (for stargazer/schizo/nomad display_name == display_title so the line is unchanged; only baltimorean's two values diverge — display_title="Ard!" for navbar flair, display_name="Baltimorean" for everywhere else); Brief.title field also swapped from display_title to display_name so the banner title slot reads "Baltimorean" not "Ard!" — admin-grant branch (_ADMIN_NOTE_SLUGS: super-schizo, super-nomad) still uses display_title for the "honorary title of {X}" phrase because that branch DOES want the don-able title there ("Schizoid Man" / "Stranger") ; my-notes card "Title:" row rename — added card_title key to _NOTE_DISPLAY["baltimorean"] ({"greeting": "Ayo,", "title": "Ard!", "card_title": "Baltimorean"}) + new Note.card_title property that falls through _NOTE_DISPLAY[slug]["card_title"] then defaults to display_title; billboard/views.py _my_notes_context swaps "recognition_title": n.display_title → n.card_title so the my-notes Baltimorean card shows "Title: Baltimorean" instead of "Title: Ard!" — super-schizo's card still reads "Title: Schizoid Man" because card_title falls back to display_title for slugs w.o an override ; ONLY Ard! surface remaining: navbar DON greeting via User.active_title.display_title (lyric/models.py:158) — display_title itself was deliberately untouched so the navbar still flips Welcome, Earthman → Ayo, Ard! after DON, which is the entire point of the Baltimorean flair ; existing DB rows w. stored "the Ard!" Line.text + Brief.title="Ard!" from prior dev-DB grants will NOT update — those columns are persisted at grant_if_new time, not computed live; user has accepted dev-DB wipe-and-re-acquire as the path forward, so no data migration ; tests — drama/tests/unit/test_models.py +2 UTs (test_baltimorean_card_title_is_baltimorean pins the override, test_stargazer_card_title_falls_back_to_display_title pins the fallback for non-overridden slugs); drama/tests/integrated/test_note_brief.py test_first_grant_creates_post_line_and_brief updated assertion brief.title == note.display_name (was display_title) to reflect the new contract; dashboard/tests/integrated/test_views.py test_brief_payload_carries_baltimorean_title expects "Baltimorean" not "Ard!"; functional_tests/test_bill_baltimorean.py T1 banner title check swapped "Ard!" → "Baltimorean" + module docstring line 10 updated — T4 (navbar DON greeting flip to "Ayo, Ard!") preserved verbatim, the one surface where Ard! still lives ; full FT suite for baltimorean 6/6 green in 53s; drama + dashboard + billboard ITs/UTs 290 green in 16.5s — TDD
Code architected by Disco DeDisco <discodedisco@outlook.com> Git commit message Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,8 +30,9 @@ class GrantIfNewSpawnsBriefTest(TestCase):
|
||||
self.assertEqual(brief.owner, self.user)
|
||||
# The Brief's line is one of the Post's lines
|
||||
self.assertIn(brief.line, list(post.lines.all()))
|
||||
# Brief title matches Note display title
|
||||
self.assertEqual(brief.title, note.display_title)
|
||||
# Brief title matches Note display name (the Note's name — used in the
|
||||
# banner's title slot and inline "the {name}" attribution).
|
||||
self.assertEqual(brief.title, note.display_name)
|
||||
|
||||
def test_second_grant_same_slug_returns_no_brief(self):
|
||||
Note.grant_if_new(self.user, "stargazer")
|
||||
|
||||
@@ -27,6 +27,12 @@ class NoteDisplayBaltimoreanTest(SimpleTestCase):
|
||||
through to `slug.title()` → 'Baltimorean'."""
|
||||
self.assertEqual(_note("baltimorean").display_name, "Baltimorean")
|
||||
|
||||
def test_baltimorean_card_title_is_baltimorean(self):
|
||||
"""The my-notes card's "Title:" row uses `card_title`, which Baltimorean
|
||||
explicitly overrides to "Baltimorean" so the navbar-only "Ard!" flair
|
||||
doesn't leak onto the card."""
|
||||
self.assertEqual(_note("baltimorean").card_title, "Baltimorean")
|
||||
|
||||
|
||||
class NoteDisplayStargazerTest(SimpleTestCase):
|
||||
"""Smoke tests for the existing stargazer entry — pins the contract that
|
||||
@@ -37,3 +43,8 @@ class NoteDisplayStargazerTest(SimpleTestCase):
|
||||
|
||||
def test_stargazer_display_greeting_is_welcome(self):
|
||||
self.assertEqual(_note("stargazer").display_greeting, "Welcome,")
|
||||
|
||||
def test_stargazer_card_title_falls_back_to_display_title(self):
|
||||
"""Slugs without a `card_title` override fall through to display_title —
|
||||
for stargazer that's "Stargazer" (don-able title == Note name)."""
|
||||
self.assertEqual(_note("stargazer").card_title, "Stargazer")
|
||||
|
||||
Reference in New Issue
Block a user