mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-04 03:39:16 +02:00
See #890: web UI and email notifications on new reports
This commit is contained in:
parent
368b70d3a9
commit
c9a9615be8
15 changed files with 292 additions and 4 deletions
45
api/tests/moderation/test_tasks.py
Normal file
45
api/tests/moderation/test_tasks.py
Normal file
|
@ -0,0 +1,45 @@
|
|||
from funkwhale_api.federation import utils as federation_utils
|
||||
|
||||
from funkwhale_api.moderation import tasks
|
||||
|
||||
|
||||
def test_report_created_signal_calls_send_new_report_mail(factories, mocker):
|
||||
report = factories["moderation.Report"]()
|
||||
on_commit = mocker.patch("funkwhale_api.common.utils.on_commit")
|
||||
tasks.signals.report_created.send(sender=None, report=report)
|
||||
on_commit.assert_called_once_with(
|
||||
tasks.send_new_report_email_to_moderators.delay, report_id=report.pk
|
||||
)
|
||||
|
||||
|
||||
def test_report_created_signal_sends_email_to_mods(factories, mailoutbox, settings):
|
||||
mod1 = factories["users.User"](permission_moderation=True)
|
||||
mod2 = factories["users.User"](permission_moderation=True)
|
||||
# inactive, so no email
|
||||
factories["users.User"](permission_moderation=True, is_active=False)
|
||||
|
||||
report = factories["moderation.Report"]()
|
||||
|
||||
tasks.send_new_report_email_to_moderators(report_id=report.pk)
|
||||
|
||||
detail_url = federation_utils.full_url(
|
||||
"/manage/moderation/reports/{}".format(report.uuid)
|
||||
)
|
||||
unresolved_reports_url = federation_utils.full_url(
|
||||
"/manage/moderation/reports?q=resolved:no"
|
||||
)
|
||||
for i, mod in enumerate([mod1, mod2]):
|
||||
m = mailoutbox[i]
|
||||
assert m.subject == "[{} moderation - {}] New report from {}".format(
|
||||
settings.FUNKWHALE_HOSTNAME,
|
||||
report.get_type_display(),
|
||||
report.submitter.full_username,
|
||||
)
|
||||
assert report.summary in m.body
|
||||
assert report.target._meta.verbose_name.title() in m.body
|
||||
assert str(report.target) in m.body
|
||||
assert report.target.get_absolute_url() in m.body
|
||||
assert report.target.get_moderation_url() in m.body
|
||||
assert detail_url in m.body
|
||||
assert unresolved_reports_url in m.body
|
||||
assert list(m.to) == [mod.email]
|
Loading…
Add table
Add a link
Reference in a new issue