From 35e6d2d8f92c7b6283a3d4290783346311e6fc7b Mon Sep 17 00:00:00 2001 From: Il`ya Date: Sat, 1 Feb 2020 14:34:22 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=B4=D0=B5=D1=81=D0=B5=D1=80=D0=B8=D0=B0?= =?UTF-8?q?=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D1=83=D1=89=D0=B5=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B5?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D0=BD=D0=B8=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8F.=20=D0=9F=D0=BE=D0=BB=D0=B5=20week=20=D1=83?= =?UTF-8?q?=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=B0=20Ratings=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=BE=D0=BF=D1=86=D0=B8=D0=BE?= =?UTF-8?q?=D0=BD=D0=B0=D0=BB=D1=8C=D0=BD=D0=BE=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tests/conftest.py | 15 ++++++++------- tests/test_artist.py | 33 +++++++++++++++++---------------- yandex_music/artist/artist.py | 8 +++++--- yandex_music/artist/ratings.py | 6 +++--- 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 559aebe..9ec8eac 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -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') diff --git a/tests/test_artist.py b/tests/test_artist.py index 57ffebb..82381e0 100644 --- a/tests/test_artist.py +++ b/tests/test_artist.py @@ -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) diff --git a/yandex_music/artist/artist.py b/yandex_music/artist/artist.py index b5faccc..6597f68 100644 --- a/yandex_music/artist/artist.py +++ b/yandex_music/artist/artist.py @@ -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 diff --git a/yandex_music/artist/ratings.py b/yandex_music/artist/ratings.py index 7827a49..1ae8267 100644 --- a/yandex_music/artist/ratings.py +++ b/yandex_music/artist/ratings.py @@ -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: