Remove deprecated Artist.get_cover_image, User.get_artist_tracks and STATUS_TOKEN_ERROR

This commit is contained in:
Hugo van Kemenade 2020-09-12 00:21:12 +03:00
parent bf753884c4
commit 85f58472a3
3 changed files with 1 additions and 81 deletions

View file

@ -27,7 +27,6 @@ import shelve
import ssl import ssl
import tempfile import tempfile
import time import time
import warnings
import xml.dom import xml.dom
from http.client import HTTPSConnection from http.client import HTTPSConnection
from urllib.parse import quote_plus from urllib.parse import quote_plus
@ -49,9 +48,7 @@ STATUS_AUTH_FAILED = 4
STATUS_INVALID_FORMAT = 5 STATUS_INVALID_FORMAT = 5
STATUS_INVALID_PARAMS = 6 STATUS_INVALID_PARAMS = 6
STATUS_INVALID_RESOURCE = 7 STATUS_INVALID_RESOURCE = 7
# DeprecationWarning: STATUS_TOKEN_ERROR is deprecated and will be STATUS_OPERATION_FAILED = 8
# removed in a future version. Use STATUS_OPERATION_FAILED instead.
STATUS_OPERATION_FAILED = STATUS_TOKEN_ERROR = 8
STATUS_INVALID_SK = 9 STATUS_INVALID_SK = 9
STATUS_INVALID_API_KEY = 10 STATUS_INVALID_API_KEY = 10
STATUS_OFFLINE = 11 STATUS_OFFLINE = 11
@ -1715,32 +1712,6 @@ class Artist(_BaseObject, _Taggable):
return _extract(self._request(self.ws_prefix + ".getCorrection"), "name") return _extract(self._request(self.ws_prefix + ".getCorrection"), "name")
def get_cover_image(self, size=SIZE_EXTRA_LARGE):
"""
Returns a URI to the cover image
size can be one of:
SIZE_MEGA
SIZE_EXTRA_LARGE
SIZE_LARGE
SIZE_MEDIUM
SIZE_SMALL
"""
warnings.warn(
"Artist.get_cover_image is deprecated and will be removed in a future "
"version. In the meantime, only default star images are available. "
"See https://github.com/pylast/pylast/issues/317 and "
"https://support.last.fm/t/api-announcement/202",
DeprecationWarning,
stacklevel=2,
)
if "image" not in self.info:
self.info["image"] = _extract_all(
self._request(self.ws_prefix + ".getInfo", cacheable=True), "image"
)
return self.info["image"][size]
def get_playcount(self): def get_playcount(self):
"""Returns the number of plays on the network.""" """Returns the number of plays on the network."""
@ -2251,40 +2222,6 @@ class User(_BaseObject, _Chartable):
return self.name return self.name
def get_artist_tracks(self, artist, cacheable=False):
"""
Deprecated by Last.fm.
Get a list of tracks by a given artist scrobbled by this user,
including scrobble time.
"""
warnings.warn(
"User.get_artist_tracks is deprecated and will be removed in a future "
"version. User.get_track_scrobbles is a partial replacement. "
"See https://github.com/pylast/pylast/issues/298",
DeprecationWarning,
stacklevel=2,
)
params = self._get_params()
params["artist"] = artist
seq = []
for track in _collect_nodes(
None, self, self.ws_prefix + ".getArtistTracks", cacheable, params
):
title = _extract(track, "name")
artist = _extract(track, "artist")
date = _extract(track, "date")
album = _extract(track, "album")
timestamp = track.getElementsByTagName("date")[0].getAttribute("uts")
seq.append(
PlayedTrack(Track(artist, title, self.network), album, date, timestamp)
)
return seq
def get_friends(self, limit=50, cacheable=False): def get_friends(self, limit=50, cacheable=False):
"""Returns a list of the user's friends. """ """Returns a list of the user's friends. """

View file

@ -241,16 +241,12 @@ class TestPyLastArtist(TestPyLastWithLastFm):
url = artist1.get_url() url = artist1.get_url()
mbid = artist1.get_mbid() mbid = artist1.get_mbid()
with pytest.warns(DeprecationWarning):
image = artist1.get_cover_image()
playcount = artist1.get_playcount() playcount = artist1.get_playcount()
streamable = artist1.is_streamable() streamable = artist1.is_streamable()
name = artist1.get_name(properly_capitalized=False) name = artist1.get_name(properly_capitalized=False)
name_cap = artist1.get_name(properly_capitalized=True) name_cap = artist1.get_name(properly_capitalized=True)
# Assert # Assert
assert "https" in image
assert playcount > 1 assert playcount > 1
assert artist1 != artist2 assert artist1 != artist2
assert name.lower() == name_cap.lower() assert name.lower() == name_cap.lower()

View file

@ -6,7 +6,6 @@ import calendar
import datetime as dt import datetime as dt
import os import os
import re import re
import warnings
import pytest import pytest
@ -475,15 +474,3 @@ class TestPyLastUser(TestPyLastWithLastFm):
# Assert # Assert
self.helper_validate_results(result1, result2, result3) self.helper_validate_results(result1, result2, result3)
def test_get_artist_tracks_deprecated(self):
# Arrange
lastfm_user = self.network.get_user(self.username)
# Act / Assert
with warnings.catch_warnings(), pytest.raises(
pylast.WSError,
match="Deprecated - This type of request is no longer supported",
):
warnings.filterwarnings("ignore", category=DeprecationWarning)
lastfm_user.get_artist_tracks(artist="Test Artist")