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(
<a href="/song/{{ comment['content_userid'] }}/{{ comment['songid'] }}?action=view">{{ comment['title'] }}</a> -
{# Nothing to do for user profile #}
{% elif 'playlistid' in comment %}
- <a href="/playlists/{{ comment['playlistid'] }}?action=view">{{ comment['name'] }}</a> -
+ <a href="/playlists/{{ comment['playlistid'] }}">{{ comment['name'] }}</a> -
+ {% elif 'eventid' in comment %}
+ <a href="/jams/{{ comment['jamid']}}/events/{{ comment['eventid'] }}">{{ comment['title'] }}</a> -
{% endif %}
<a href="/users/{{ comment['content_username'] }}" class="profile-link">{{ comment['content_username'] }}</a>
<div class="top-level-comment">
pytest.register_assert_rewrite("test.utils")
-from .utils import login
+from .utils import login, create_user
fresh_db = None
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")
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)
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):
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):