Исправлена десериализация несуществующего исполнителя.
このコミットが含まれているのは:
コミット
93788bb5f0
|
@ -22,12 +22,13 @@ from . import TestCounts, TestTrackId, TestCaseForms, TestRatings, TestIcon, Tes
|
|||
def artist_factory(cover, counts, ratings, link, description):
|
||||
class ArtistFactory:
|
||||
def get(self, popular_tracks):
|
||||
return Artist(TestArtist.id, TestArtist.name, cover, TestArtist.various, TestArtist.composer,
|
||||
TestArtist.genres, TestArtist.op_image, TestArtist.no_pictures_from_search, counts,
|
||||
TestArtist.available, ratings, [link], TestArtist.tickets_available, TestArtist.likes_count,
|
||||
popular_tracks, TestArtist.regions, TestArtist.decomposed, TestArtist.full_names, description,
|
||||
TestArtist.countries, TestArtist.en_wikipedia_link, TestArtist.db_aliases, TestArtist.aliases,
|
||||
TestArtist.init_date, TestArtist.end_date)
|
||||
return Artist(TestArtist.id, TestArtist.error, TestArtist.name, cover, TestArtist.various,
|
||||
TestArtist.composer, TestArtist.genres, TestArtist.op_image,
|
||||
TestArtist.no_pictures_from_search, counts, TestArtist.available, ratings, [link],
|
||||
TestArtist.tickets_available, TestArtist.likes_count, popular_tracks, TestArtist.regions,
|
||||
TestArtist.decomposed, TestArtist.full_names, description, TestArtist.countries,
|
||||
TestArtist.en_wikipedia_link, TestArtist.db_aliases, TestArtist.aliases, TestArtist.init_date,
|
||||
TestArtist.end_date)
|
||||
|
||||
return ArtistFactory()
|
||||
|
||||
|
@ -242,7 +243,7 @@ def video_supplement():
|
|||
|
||||
@pytest.fixture(scope='session')
|
||||
def ratings():
|
||||
return Ratings(TestRatings.week, TestRatings.month, TestRatings.day)
|
||||
return Ratings(TestRatings.month, TestRatings.week, TestRatings.day)
|
||||
|
||||
|
||||
@pytest.fixture(scope='session')
|
||||
|
|
|
@ -3,6 +3,7 @@ from yandex_music import Artist
|
|||
|
||||
class TestArtist:
|
||||
id = 10987
|
||||
error = 'not-found'
|
||||
name = 'Elvis Presley'
|
||||
various = False
|
||||
composer = None
|
||||
|
@ -24,6 +25,7 @@ class TestArtist:
|
|||
|
||||
def test_expected_values(self, artist, cover, counts, ratings, link, track_without_artists_and_albums, description):
|
||||
assert artist.id == self.id
|
||||
assert artist.error == self.error
|
||||
assert artist.name == self.name
|
||||
assert artist.various == self.various
|
||||
assert artist.composer == self.composer
|
||||
|
@ -56,27 +58,26 @@ class TestArtist:
|
|||
assert Artist.de_list({}, client) == []
|
||||
|
||||
def test_de_json_required(self, client, cover):
|
||||
json_dict = {'id_': self.id, 'name': self.name, 'cover': cover.to_dict()}
|
||||
json_dict = {'id_': self.id}
|
||||
artist = Artist.de_json(json_dict, client)
|
||||
|
||||
assert artist.id == self.id
|
||||
assert artist.name == self.name
|
||||
assert artist.cover == cover
|
||||
|
||||
def test_de_json_all(self, client, cover, counts, ratings, link, track_without_artists, description):
|
||||
json_dict = {'id_': self.id, 'name': self.name, 'various': self.various, 'composer': self.composer,
|
||||
'cover': cover.to_dict(), 'genres': self.genres, 'op_image': self.op_image,
|
||||
'no_pictures_from_search': self.no_pictures_from_search, 'counts': counts.to_dict(),
|
||||
'available': self.available, 'ratings': ratings.to_dict(), 'links': [link.to_dict()],
|
||||
'tickets_available': self.tickets_available, 'likes_count': self.likes_count,
|
||||
'popular_tracks': [track_without_artists.to_dict()], 'regions': self.regions,
|
||||
'decomposed': self.decomposed, 'full_names': self.full_names, 'description': description.to_dict(),
|
||||
'countries': self.countries, 'en_wikipedia_link': self.en_wikipedia_link,
|
||||
'db_aliases': self.db_aliases, 'aliases': self.aliases, 'init_date': self.init_date,
|
||||
'end_date': self.end_date}
|
||||
json_dict = {'id_': self.id, 'error': self.error, 'name': self.name, 'various': self.various,
|
||||
'composer': self.composer, 'cover': cover.to_dict(), 'genres': self.genres,
|
||||
'op_image': self.op_image, 'no_pictures_from_search': self.no_pictures_from_search,
|
||||
'counts': counts.to_dict(), 'available': self.available, 'ratings': ratings.to_dict(),
|
||||
'links': [link.to_dict()], 'tickets_available': self.tickets_available,
|
||||
'likes_count': self.likes_count, 'popular_tracks': [track_without_artists.to_dict()],
|
||||
'regions': self.regions, 'decomposed': self.decomposed, 'full_names': self.full_names,
|
||||
'description': description.to_dict(), 'countries': self.countries,
|
||||
'en_wikipedia_link': self.en_wikipedia_link, 'db_aliases': self.db_aliases,
|
||||
'aliases': self.aliases, 'init_date': self.init_date, 'end_date': self.end_date}
|
||||
artist = Artist.de_json(json_dict, client)
|
||||
|
||||
assert artist.id == self.id
|
||||
assert artist.error == self.error
|
||||
assert artist.name == self.name
|
||||
assert artist.various == self.various
|
||||
assert artist.composer == self.composer
|
||||
|
@ -103,9 +104,9 @@ class TestArtist:
|
|||
assert artist.end_date == self.end_date
|
||||
|
||||
def test_equality(self, cover):
|
||||
a = Artist(self.id, self.name, cover)
|
||||
b = Artist(self.id, '', None)
|
||||
c = Artist(self.id, self.name, cover)
|
||||
a = Artist(self.id)
|
||||
b = Artist(10)
|
||||
c = Artist(self.id)
|
||||
|
||||
assert a != b
|
||||
assert hash(a) != hash(b)
|
||||
|
|
|
@ -21,8 +21,9 @@ class Artist(YandexMusicObject):
|
|||
|
||||
def __init__(self,
|
||||
id_: int,
|
||||
name: str,
|
||||
cover: Optional['Cover'],
|
||||
error: Optional[str] = None,
|
||||
name: Optional[str] = None,
|
||||
cover: Optional['Cover'] = None,
|
||||
various: Optional[bool] = None,
|
||||
composer=None,
|
||||
genres=None,
|
||||
|
@ -48,9 +49,10 @@ class Artist(YandexMusicObject):
|
|||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
self.id = id_
|
||||
|
||||
self.error = error
|
||||
self.name = name
|
||||
self.cover = cover
|
||||
|
||||
self.various = various
|
||||
self.composer = composer
|
||||
self.genres = genres
|
||||
|
|
|
@ -10,15 +10,15 @@ class Ratings(YandexMusicObject):
|
|||
"""Класс, представляющий рейтинг исполнителя.
|
||||
|
||||
Attributes:
|
||||
week (:obj:`int`): Значение еженедельного рейтинга.
|
||||
month (:obj:`int`): Значение ежемесячного рейтинга.
|
||||
week (:obj:`int`): Значение еженедельного рейтинга.
|
||||
day (:obj:`int`): Значение дневного рейтинга.
|
||||
client (:obj:`yandex_music.Client`): Объект класса :class:`yandex_music.Client`, представляющий клиент
|
||||
Yandex Music.
|
||||
|
||||
Args:
|
||||
week (:obj:`int`): Значение еженедельного рейтинга.
|
||||
month (:obj:`int`): Значение ежемесячного рейтинга.
|
||||
week (:obj:`int`, optional): Значение еженедельного рейтинга.
|
||||
day (:obj:`int`, optional): Значение дневного рейтинга.
|
||||
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client`, представляющий клиент
|
||||
Yandex Music.
|
||||
|
@ -26,8 +26,8 @@ class Ratings(YandexMusicObject):
|
|||
"""
|
||||
|
||||
def __init__(self,
|
||||
week: int,
|
||||
month: int,
|
||||
week: Optional[int] = None,
|
||||
day: Optional[int] = None,
|
||||
client: Optional['Client'] = None,
|
||||
**kwargs) -> None:
|
||||
|
|
読み込み中…
新しいイシューから参照