kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
78 wiersze
2.7 KiB
Python
78 wiersze
2.7 KiB
Python
from django.urls import reverse
|
|
|
|
from funkwhale_api.moderation import models
|
|
|
|
|
|
def test_restrict_to_own_filters(factories, logged_in_api_client):
|
|
cf = factories["moderation.UserFilter"](
|
|
for_artist=True, user=logged_in_api_client.user
|
|
)
|
|
factories["moderation.UserFilter"](for_artist=True)
|
|
url = reverse("api:v1:moderation:content-filters-list")
|
|
response = logged_in_api_client.get(url)
|
|
assert response.status_code == 200
|
|
assert response.data["count"] == 1
|
|
assert response.data["results"][0]["uuid"] == str(cf.uuid)
|
|
|
|
|
|
def test_create_filter(factories, logged_in_api_client):
|
|
artist = factories["music.Artist"]()
|
|
url = reverse("api:v1:moderation:content-filters-list")
|
|
data = {"target": {"type": "artist", "id": artist.pk}}
|
|
response = logged_in_api_client.post(url, data, format="json")
|
|
|
|
cf = logged_in_api_client.user.content_filters.latest("id")
|
|
assert cf.target_artist == artist
|
|
assert response.status_code == 201
|
|
|
|
|
|
def test_create_report_logged_in(factories, logged_in_api_client):
|
|
actor = logged_in_api_client.user.create_actor()
|
|
target = factories["music.Artist"]()
|
|
url = reverse("api:v1:moderation:reports-list")
|
|
data = {
|
|
"target": {"type": "artist", "id": target.pk},
|
|
"summary": "Test report",
|
|
"type": "other",
|
|
}
|
|
response = logged_in_api_client.post(url, data, format="json")
|
|
|
|
assert response.status_code == 201
|
|
report = actor.reports.latest("id")
|
|
assert report.target == target
|
|
|
|
|
|
def test_create_report_anonymous(factories, api_client, no_api_auth):
|
|
target = factories["music.Artist"]()
|
|
url = reverse("api:v1:moderation:reports-list")
|
|
data = {
|
|
"target": {"type": "artist", "id": target.pk},
|
|
"summary": "Test report",
|
|
"type": "illegal_content",
|
|
"submitter_email": "test@example.test",
|
|
}
|
|
response = api_client.post(url, data, format="json")
|
|
|
|
assert response.status_code == 201
|
|
report = models.Report.objects.latest("id")
|
|
assert report.submitter_email == data["submitter_email"]
|
|
|
|
|
|
def test_create_report_and_forward(factories, api_client, no_api_auth, mocker):
|
|
dispatch = mocker.patch("funkwhale_api.federation.routes.outbox.dispatch")
|
|
target = factories["music.Artist"](attributed=True)
|
|
url = reverse("api:v1:moderation:reports-list")
|
|
data = {
|
|
"target": {"type": "artist", "id": target.pk},
|
|
"summary": "Test report",
|
|
"type": "illegal_content",
|
|
"submitter_email": "test@example.test",
|
|
"forward": True,
|
|
}
|
|
response = api_client.post(url, data, format="json")
|
|
|
|
assert response.status_code == 201
|
|
report = models.Report.objects.latest("id")
|
|
|
|
dispatch.assert_called_once_with({"type": "Flag"}, context={"report": report})
|