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
示例#3
0
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