feat: add announced checkbox to track rows
Add a persistent "announced" checkbox after each track's Announce button. The state is stored in a new `announced` column on `show_tracks` and is auto-set when the Announce button is pressed. The checkbox is also freely togglable, and announced tracks have their Announce button disabled. Also fixes .env leakage in test_config.py (pass _env_file=None) and adds tests for the new DB method, API endpoint, and announce side-effect. Made-with: Cursor
This commit is contained in:
@@ -295,3 +295,51 @@ def test_has_track_in_show(db):
|
||||
db.set_show_tracks(show.id, [t1.id])
|
||||
assert db.has_track_in_show(show.id, 1) is True
|
||||
assert db.has_track_in_show(show.id, 999) is False
|
||||
|
||||
|
||||
def test_announced_defaults_to_zero(db):
|
||||
week_start = datetime(2026, 3, 13, 2, 0, 0, tzinfo=timezone.utc)
|
||||
week_end = datetime(2026, 3, 20, 2, 0, 0, tzinfo=timezone.utc)
|
||||
show = db.get_or_create_show(week_start, week_end)
|
||||
t1 = _make_track(1, "2026-03-14T01:00:00+00:00")
|
||||
db.upsert_track(t1)
|
||||
db.set_show_tracks(show.id, [t1.id])
|
||||
tracks = db.get_show_tracks(show.id)
|
||||
assert tracks[0]["announced"] == 0
|
||||
|
||||
|
||||
def test_set_track_announced(db):
|
||||
week_start = datetime(2026, 3, 13, 2, 0, 0, tzinfo=timezone.utc)
|
||||
week_end = datetime(2026, 3, 20, 2, 0, 0, tzinfo=timezone.utc)
|
||||
show = db.get_or_create_show(week_start, week_end)
|
||||
t1 = _make_track(1, "2026-03-14T01:00:00+00:00")
|
||||
db.upsert_track(t1)
|
||||
db.set_show_tracks(show.id, [t1.id])
|
||||
db.set_track_announced(show.id, 1, True)
|
||||
tracks = db.get_show_tracks(show.id)
|
||||
assert tracks[0]["announced"] == 1
|
||||
|
||||
|
||||
def test_set_track_announced_toggle_off(db):
|
||||
week_start = datetime(2026, 3, 13, 2, 0, 0, tzinfo=timezone.utc)
|
||||
week_end = datetime(2026, 3, 20, 2, 0, 0, tzinfo=timezone.utc)
|
||||
show = db.get_or_create_show(week_start, week_end)
|
||||
t1 = _make_track(1, "2026-03-14T01:00:00+00:00")
|
||||
db.upsert_track(t1)
|
||||
db.set_show_tracks(show.id, [t1.id])
|
||||
db.set_track_announced(show.id, 1, True)
|
||||
db.set_track_announced(show.id, 1, False)
|
||||
tracks = db.get_show_tracks(show.id)
|
||||
assert tracks[0]["announced"] == 0
|
||||
|
||||
|
||||
def test_get_show_track_by_position_includes_announced(db):
|
||||
week_start = datetime(2026, 3, 13, 2, 0, 0, tzinfo=timezone.utc)
|
||||
week_end = datetime(2026, 3, 20, 2, 0, 0, tzinfo=timezone.utc)
|
||||
show = db.get_or_create_show(week_start, week_end)
|
||||
t1 = _make_track(1, "2026-03-14T01:00:00+00:00")
|
||||
db.upsert_track(t1)
|
||||
db.set_show_tracks(show.id, [t1.id])
|
||||
db.set_track_announced(show.id, 1, True)
|
||||
result = db.get_show_track_by_position(show.id, 1)
|
||||
assert result["announced"] == 1
|
||||
|
||||
Reference in New Issue
Block a user