Report UI (end-user)
This commit is contained in:
parent
1a8edf27b3
commit
33d1f879cf
24 changed files with 519 additions and 32 deletions
|
|
@ -4,8 +4,7 @@ import pytest
|
|||
from django.urls import reverse
|
||||
|
||||
from funkwhale_api.favorites.models import TrackFavorite
|
||||
from funkwhale_api.music import serializers as music_serializers
|
||||
from funkwhale_api.users import serializers as users_serializers
|
||||
from funkwhale_api.favorites import serializers
|
||||
|
||||
|
||||
def test_user_can_add_favorite(factories):
|
||||
|
|
@ -20,22 +19,15 @@ def test_user_can_add_favorite(factories):
|
|||
def test_user_can_get_his_favorites(
|
||||
api_request, factories, logged_in_api_client, client
|
||||
):
|
||||
r = api_request.get("/")
|
||||
request = api_request.get("/")
|
||||
favorite = factories["favorites.TrackFavorite"](user=logged_in_api_client.user)
|
||||
factories["favorites.TrackFavorite"]()
|
||||
url = reverse("api:v1:favorites:tracks-list")
|
||||
response = logged_in_api_client.get(url, {"user": logged_in_api_client.user.pk})
|
||||
expected = [
|
||||
{
|
||||
"user": users_serializers.UserBasicSerializer(
|
||||
favorite.user, context={"request": r}
|
||||
).data,
|
||||
"track": music_serializers.TrackSerializer(
|
||||
favorite.track, context={"request": r}
|
||||
).data,
|
||||
"id": favorite.id,
|
||||
"creation_date": favorite.creation_date.isoformat().replace("+00:00", "Z"),
|
||||
}
|
||||
serializers.UserTrackFavoriteSerializer(
|
||||
favorite, context={"request": request}
|
||||
).data
|
||||
]
|
||||
assert response.status_code == 200
|
||||
assert response.data["results"] == expected
|
||||
|
|
|
|||
20
api/tests/favorites/test_serializers.py
Normal file
20
api/tests/favorites/test_serializers.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from funkwhale_api.federation import serializers as federation_serializers
|
||||
from funkwhale_api.favorites import serializers
|
||||
from funkwhale_api.music import serializers as music_serializers
|
||||
from funkwhale_api.users import serializers as users_serializers
|
||||
|
||||
|
||||
def test_track_favorite_serializer(factories, to_api_date):
|
||||
favorite = factories["favorites.TrackFavorite"]()
|
||||
actor = favorite.user.create_actor()
|
||||
|
||||
expected = {
|
||||
"id": favorite.pk,
|
||||
"creation_date": to_api_date(favorite.creation_date),
|
||||
"track": music_serializers.TrackSerializer(favorite.track).data,
|
||||
"actor": federation_serializers.APIActorSerializer(actor).data,
|
||||
"user": users_serializers.UserBasicSerializer(favorite.user).data,
|
||||
}
|
||||
serializer = serializers.UserTrackFavoriteSerializer(favorite)
|
||||
|
||||
assert serializer.data == expected
|
||||
20
api/tests/history/test_serializers.py
Normal file
20
api/tests/history/test_serializers.py
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
from funkwhale_api.federation import serializers as federation_serializers
|
||||
from funkwhale_api.history import serializers
|
||||
from funkwhale_api.music import serializers as music_serializers
|
||||
from funkwhale_api.users import serializers as users_serializers
|
||||
|
||||
|
||||
def test_listening_serializer(factories, to_api_date):
|
||||
listening = factories["history.Listening"]()
|
||||
actor = listening.user.create_actor()
|
||||
|
||||
expected = {
|
||||
"id": listening.pk,
|
||||
"creation_date": to_api_date(listening.creation_date),
|
||||
"track": music_serializers.TrackSerializer(listening.track).data,
|
||||
"actor": federation_serializers.APIActorSerializer(actor).data,
|
||||
"user": users_serializers.UserBasicSerializer(listening.user).data,
|
||||
}
|
||||
serializer = serializers.ListeningSerializer(listening)
|
||||
|
||||
assert serializer.data == expected
|
||||
|
|
@ -8,6 +8,12 @@ from funkwhale_api.music import utils as music_utils
|
|||
|
||||
def test_nodeinfo_dump(preferences, mocker):
|
||||
preferences["instance__nodeinfo_stats_enabled"] = True
|
||||
preferences["moderation__unauthenticated_report_types"] = [
|
||||
"takedown_request",
|
||||
"other",
|
||||
"other_category_that_doesnt_exist",
|
||||
]
|
||||
|
||||
stats = {
|
||||
"users": {"total": 1, "active_halfyear": 12, "active_month": 13},
|
||||
"tracks": 2,
|
||||
|
|
@ -51,6 +57,29 @@ def test_nodeinfo_dump(preferences, mocker):
|
|||
},
|
||||
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
|
||||
"allowList": {"enabled": False, "domains": None},
|
||||
"reportTypes": [
|
||||
{
|
||||
"type": "takedown_request",
|
||||
"label": "Takedown request",
|
||||
"anonymous": True,
|
||||
},
|
||||
{
|
||||
"type": "invalid_metadata",
|
||||
"label": "Invalid metadata",
|
||||
"anonymous": False,
|
||||
},
|
||||
{
|
||||
"type": "illegal_content",
|
||||
"label": "Illegal content",
|
||||
"anonymous": False,
|
||||
},
|
||||
{
|
||||
"type": "offensive_content",
|
||||
"label": "Offensive content",
|
||||
"anonymous": False,
|
||||
},
|
||||
{"type": "other", "label": "Other", "anonymous": True},
|
||||
],
|
||||
},
|
||||
}
|
||||
assert nodeinfo.get() == expected
|
||||
|
|
@ -58,6 +87,10 @@ def test_nodeinfo_dump(preferences, mocker):
|
|||
|
||||
def test_nodeinfo_dump_stats_disabled(preferences, mocker):
|
||||
preferences["instance__nodeinfo_stats_enabled"] = False
|
||||
preferences["moderation__unauthenticated_report_types"] = [
|
||||
"takedown_request",
|
||||
"other",
|
||||
]
|
||||
|
||||
expected = {
|
||||
"version": "2.0",
|
||||
|
|
@ -83,6 +116,29 @@ def test_nodeinfo_dump_stats_disabled(preferences, mocker):
|
|||
},
|
||||
"supportedUploadExtensions": music_utils.SUPPORTED_EXTENSIONS,
|
||||
"allowList": {"enabled": False, "domains": None},
|
||||
"reportTypes": [
|
||||
{
|
||||
"type": "takedown_request",
|
||||
"label": "Takedown request",
|
||||
"anonymous": True,
|
||||
},
|
||||
{
|
||||
"type": "invalid_metadata",
|
||||
"label": "Invalid metadata",
|
||||
"anonymous": False,
|
||||
},
|
||||
{
|
||||
"type": "illegal_content",
|
||||
"label": "Illegal content",
|
||||
"anonymous": False,
|
||||
},
|
||||
{
|
||||
"type": "offensive_content",
|
||||
"label": "Offensive content",
|
||||
"anonymous": False,
|
||||
},
|
||||
{"type": "other", "label": "Other", "anonymous": True},
|
||||
],
|
||||
},
|
||||
}
|
||||
assert nodeinfo.get() == expected
|
||||
|
|
|
|||
|
|
@ -1,4 +1,6 @@
|
|||
from funkwhale_api.federation import serializers as federation_serializers
|
||||
from funkwhale_api.playlists import models, serializers
|
||||
from funkwhale_api.users import serializers as users_serializers
|
||||
|
||||
|
||||
def test_cannot_max_500_tracks_per_playlist(factories, preferences):
|
||||
|
|
@ -124,3 +126,25 @@ def test_playlist_serializer_include_duration(factories, api_request):
|
|||
|
||||
serializer = serializers.PlaylistSerializer(qs.get())
|
||||
assert serializer.data["duration"] == 45
|
||||
|
||||
|
||||
def test_playlist_serializer(factories, to_api_date):
|
||||
playlist = factories["playlists.Playlist"]()
|
||||
actor = playlist.user.create_actor()
|
||||
|
||||
expected = {
|
||||
"id": playlist.pk,
|
||||
"name": playlist.name,
|
||||
"privacy_level": playlist.privacy_level,
|
||||
"is_playable": None,
|
||||
"creation_date": to_api_date(playlist.creation_date),
|
||||
"modification_date": to_api_date(playlist.modification_date),
|
||||
"actor": federation_serializers.APIActorSerializer(actor).data,
|
||||
"user": users_serializers.UserBasicSerializer(playlist.user).data,
|
||||
"duration": 0,
|
||||
"tracks_count": 0,
|
||||
"album_covers": [],
|
||||
}
|
||||
serializer = serializers.PlaylistSerializer(playlist)
|
||||
|
||||
assert serializer.data == expected
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue