def test_get_track_data_content_type(mimetype, extension, expected, factories): upload = factories["music.Upload"]() upload.mimetype = mimetype upload.audio_file = "test.{}".format(extension) data = serializers.get_track_data( album=upload.track.album, track=upload.track, upload=upload ) assert data["contentType"] == expected
def test_starred_tracks2_serializer(factories): artist = factories["music.Artist"]() album = factories["music.Album"](artist=artist) track = factories["music.Track"](album=album) upload = factories["music.Upload"](track=track) favorite = factories["favorites.TrackFavorite"](track=track) expected = [serializers.get_track_data(album, track, upload)] expected[0]["starred"] = serializers.to_subsonic_date(favorite.creation_date) data = serializers.get_starred_tracks_data([favorite]) assert data == expected
def test_get_song(f, db, logged_in_api_client, factories, mocker, queryset_equal_queries): url = reverse("api:subsonic-get_song") assert url.endswith("getSong") is True artist = factories["music.Artist"]() album = factories["music.Album"](artist=artist) track = factories["music.Track"](album=album, playable=True) upload = factories["music.Upload"](track=track) playable_by = mocker.spy(music_models.TrackQuerySet, "playable_by") response = logged_in_api_client.get(url, {"f": f, "id": track.pk}) assert response.status_code == 200 assert response.data == { "song": serializers.get_track_data(track.album, track, upload) } playable_by.assert_called_once_with(music_models.Track.objects.all(), None)
def test_playlist_detail_serializer(factories): plt = factories["playlists.PlaylistTrack"]() upload = factories["music.Upload"](track=plt.track) playlist = plt.playlist qs = music_models.Album.objects.with_tracks_count().order_by("pk") expected = { "id": playlist.pk, "name": playlist.name, "owner": playlist.user.username, "public": "false", "songCount": 1, "duration": 0, "created": serializers.to_subsonic_date(playlist.creation_date), "entry": [serializers.get_track_data(plt.track.album, plt.track, upload)], } qs = playlist.__class__.objects.with_tracks_count() data = serializers.get_playlist_detail_data(qs.first()) assert data == expected