Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
from funkwhale_api.music import serializers
def test_artist_album_serializer(factories, to_api_date):
track = factories['music.Track']()
album = track.album
album = album.__class__.objects.with_tracks_count().get(pk=album.pk)
expected = {
'id': album.id,
'mbid': str(album.mbid),
'title': album.title,
'artist': album.artist.id,
'creation_date': to_api_date(album.creation_date),
'tracks_count': 1,
'cover': album.cover.url,
'release_date': to_api_date(album.release_date),
}
serializer = serializers.ArtistAlbumSerializer(album)
assert serializer.data == expected
def test_artist_with_albums_serializer(factories, to_api_date):
track = factories['music.Track']()
artist = track.artist
artist = artist.__class__.objects.with_albums().get(pk=artist.pk)
album = list(artist.albums.all())[0]
expected = {
'id': artist.id,
'mbid': str(artist.mbid),
'name': artist.name,
'creation_date': to_api_date(artist.creation_date),
'albums': [
serializers.ArtistAlbumSerializer(album).data
]
}
serializer = serializers.ArtistWithAlbumsSerializer(artist)
assert serializer.data == expected
def test_album_track_serializer(factories, to_api_date):
tf = factories['music.TrackFile']()
track = tf.track
expected = {
'id': track.id,
'artist': track.artist.id,
'album': track.album.id,
'mbid': str(track.mbid),
'title': track.title,
'position': track.position,
'creation_date': to_api_date(track.creation_date),
'files': [
serializers.TrackFileSerializer(tf).data
]
}
serializer = serializers.AlbumTrackSerializer(track)
assert serializer.data == expected
def test_track_file_serializer(factories, to_api_date):
tf = factories['music.TrackFile']()
expected = {
'id': tf.id,
'path': tf.path,
'source': tf.source,
'filename': tf.filename,
'mimetype': tf.mimetype,
'track': tf.track.pk,
'duration': tf.duration,
'mimetype': tf.mimetype,
'bitrate': tf.bitrate,
'size': tf.size,
}
serializer = serializers.TrackFileSerializer(tf)
assert serializer.data == expected
def test_album_serializer(factories, to_api_date):
track1 = factories['music.Track'](position=2)
track2 = factories['music.Track'](position=1, album=track1.album)
album = track1.album
expected = {
'id': album.id,
'mbid': str(album.mbid),
'title': album.title,
'artist': serializers.ArtistSimpleSerializer(album.artist).data,
'creation_date': to_api_date(album.creation_date),
'cover': album.cover.url,
'release_date': to_api_date(album.release_date),
'tracks': serializers.AlbumTrackSerializer(
[track2, track1],
many=True
).data
}
serializer = serializers.AlbumSerializer(album)
assert serializer.data == expected
def test_track_serializer(factories, to_api_date):
tf = factories['music.TrackFile']()
track = tf.track
expected = {
'id': track.id,
'artist': serializers.ArtistSimpleSerializer(track.artist).data,
'album': serializers.TrackAlbumSerializer(track.album).data,
'mbid': str(track.mbid),
'title': track.title,
'position': track.position,
'creation_date': to_api_date(track.creation_date),
'lyrics': track.get_lyrics_url(),
'files': [
serializers.TrackFileSerializer(tf).data
]
}
serializer = serializers.TrackSerializer(track)
assert serializer.data == expected