From a83a0c5ea16591626757b6868babe11c13e8abb4 Mon Sep 17 00:00:00 2001 From: Chris Fulljames Date: Sat, 19 Apr 2025 08:12:08 -0400 Subject: [PATCH] Fix comment notifications for jam events --- src/littlesongplace/activity.py | 13 +++++++++++++ src/littlesongplace/templates/activity.html | 4 +++- test/conftest.py | 17 ++++++++++++++++- test/test_activity.py | 9 +++++++++ test/test_comments.py | 5 +++++ test/test_jams.py | 15 --------------- 6 files changed, 46 insertions(+), 17 deletions(-) diff --git a/src/littlesongplace/activity.py b/src/littlesongplace/activity.py index 4a73608..4c84788 100644 --- a/src/littlesongplace/activity.py +++ b/src/littlesongplace/activity.py @@ -62,6 +62,19 @@ def activity(): comment["name"] = playlist["name"] comment["content_userid"] = playlist["userid"] comment["content_username"] = playlist["username"] + elif threadtype == comments.ThreadType.JAM_EVENT: + jam_event = db.query( + """\ + SELECT * FROM jam_events + INNER JOIN jams ON jam_events.jamid = jams.jamid + INNER JOIN users ON jams.ownerid = users.userid + WHERE jam_events.threadid = ? + """, [comment["threadid"]], one=True) + comment["eventid"] = jam_event["eventid"] + comment["jamid"] = jam_event["jamid"] + comment["title"] = jam_event["title"] + comment["content_userid"] = jam_event["userid"] + comment["content_username"] = jam_event["username"] timestamp = datetime.now(timezone.utc).isoformat() db.query( diff --git a/src/littlesongplace/templates/activity.html b/src/littlesongplace/templates/activity.html index 0837b6b..d4ceb76 100644 --- a/src/littlesongplace/templates/activity.html +++ b/src/littlesongplace/templates/activity.html @@ -20,7 +20,9 @@ {{ comment['title'] }} - {# Nothing to do for user profile #} {% elif 'playlistid' in comment %} - {{ comment['name'] }} - + {{ comment['name'] }} - + {% elif 'eventid' in comment %} + {{ comment['title'] }} - {% endif %} {{ comment['content_username'] }}
diff --git a/test/conftest.py b/test/conftest.py index 1d7428d..476a023 100644 --- a/test/conftest.py +++ b/test/conftest.py @@ -10,7 +10,7 @@ import pytest pytest.register_assert_rewrite("test.utils") -from .utils import login +from .utils import login, create_user fresh_db = None @@ -55,6 +55,21 @@ def session(): login(session, "user", "1234asdf!@#$") yield session +@pytest.fixture +def user(client): + create_user(client, "user", login=True) + yield "user" + +@pytest.fixture +def jam(client, user): + client.get("/jams/create") + return 1 + +@pytest.fixture +def event(client, jam): + client.get(f"/jams/{jam}/events/create") + return 1 + def pytest_addoption(parser): parser.addoption("--yt", action="store_true", help="run youtube importer tests") diff --git a/test/test_activity.py b/test/test_activity.py index f66edd5..6335843 100644 --- a/test/test_activity.py +++ b/test/test_activity.py @@ -21,6 +21,15 @@ def test_activity_for_comment_on_song(client): response = client.get("/activity") assert b"hey cool song" in response.data +def test_activity_for_comment_on_jam_event(client, user, event): + create_user(client, "user2", login=True) + client.post("/comment?threadid=2", data={"content": "hey cool event"}) + + client.post("/login", data={"username": "user", "password": "password"}) + response = client.get("/activity") + assert b"New Event" in response.data, response.data.decode() + assert b"hey cool event" in response.data, response.data.decode() + def test_activity_for_reply_to_comment(client): create_user_and_song(client) create_user(client, "user2", login=True) diff --git a/test/test_comments.py b/test/test_comments.py index fb8fd7d..ea7fd32 100644 --- a/test/test_comments.py +++ b/test/test_comments.py @@ -71,6 +71,11 @@ def test_comment_on_playlist(client): assert response.request.path == "/playlists/1" assert b"comment on playlist" in response.data +def test_comment_on_jam_event(client, user, jam, event): + response = client.get("/comment?threadid=2", headers={"Referer": f"/jams/{jam}/events/{event}"}) + response = client.post("/comment?threadid=2", data={"content": "comment on event"}, follow_redirects=True) + assert b"comment on event" in response.data, response.data.decode() + # Comments - Auth Status and Errors ############################################ def test_comment_page_redirects_when_not_logged_in(client): diff --git a/test/test_jams.py b/test/test_jams.py index 94c7b87..f6393f2 100644 --- a/test/test_jams.py +++ b/test/test_jams.py @@ -9,21 +9,6 @@ today = datetime.now(timezone.utc) yesterday = (today - timedelta(days=1)).isoformat() tomorrow = (today + timedelta(days=1)).isoformat() -@pytest.fixture -def user(client): - create_user(client, "user", login=True) - yield "user" - -@pytest.fixture -def jam(client, user): - client.get("/jams/create") - return 1 - -@pytest.fixture -def event(client, jam): - client.get(f"/jams/{jam}/events/create") - return 1 - # Jams ######################################################################### def test_view_invalid_jam(client): -- 2.39.5