добавлены тесты на выброс исключения при наличии поля error в моделях Album, Artist, Cover, Track;

в классе Artist исключение с ошибкой будет выбрасываться при наличии поля reason.
このコミットが含まれているのは:
Il'ya (Marshal) 2022-02-20 23:02:46 +01:00
コミット 79aaadf532
5個のファイルの変更36行の追加5行の削除

ファイルの表示

@ -1,9 +1,12 @@
import pytest
from yandex_music import Album from yandex_music import Album
from yandex_music.exceptions import YandexMusicError
class TestAlbum: class TestAlbum:
id = 5239478 id = 5239478
error = 'not-found' error = None
title = 'In the End' title = 'In the End'
version = 'feat. Mark Van Hoen & Mike Harding' version = 'feat. Mark Van Hoen & Mike Harding'
cover_uri = 'avatars.yandex.net/get-music-content/95061/89c14a7d.a.5239478-1/%%' cover_uri = 'avatars.yandex.net/get-music-content/95061/89c14a7d.a.5239478-1/%%'
@ -47,6 +50,10 @@ class TestAlbum:
likes_count = 2 likes_count = 2
available_regions = ['kg', 'tm', 'by', 'kz', 'md', 'ru', 'am', 'ge', 'uz', 'tj', 'il', 'az', 'ua'] available_regions = ['kg', 'tm', 'by', 'kz', 'md', 'ru', 'am', 'ge', 'uz', 'tj', 'il', 'az', 'ua']
def test_raise_on_model_error(self):
with pytest.raises(YandexMusicError):
Album(error='not-found')
def test_expected_values( def test_expected_values(
self, self,
album, album,
@ -109,7 +116,7 @@ class TestAlbum:
assert Album.de_list({}, client) == [] assert Album.de_list({}, client) == []
def test_de_json_required(self, client): def test_de_json_required(self, client):
json_dict = {'id': self.id} json_dict = {}
album = Album.de_json(json_dict, client) album = Album.de_json(json_dict, client)
def test_de_json_all(self, client, artist, label, track_position, track, album_without_nested_albums, deprecation): def test_de_json_all(self, client, artist, label, track_position, track, album_without_nested_albums, deprecation):

ファイルの表示

@ -1,10 +1,13 @@
import pytest
from yandex_music import Artist from yandex_music import Artist
from yandex_music.exceptions import YandexMusicError
class TestArtist: class TestArtist:
id = 10987 id = 10987
error = 'not-found' error = None
reason = 'not-found' reason = None
name = 'Elvis Presley' name = 'Elvis Presley'
various = False various = False
composer = None composer = None
@ -29,6 +32,13 @@ class TestArtist:
end_date = None end_date = None
ya_money_id = '4100170623944' ya_money_id = '4100170623944'
def test_raise_on_model_error(self):
with pytest.raises(YandexMusicError):
Artist(id=self.id, error='not_found')
with pytest.raises(YandexMusicError):
Artist(id=self.id, reason='not_found')
def test_expected_values( def test_expected_values(
self, artist, cover, counts, ratings, link, track_without_artists_and_albums, description, artist_decomposed self, artist, cover, counts, ratings, link, track_without_artists_and_albums, description, artist_decomposed
): ):

ファイルの表示

@ -1,4 +1,7 @@
import pytest
from yandex_music import Cover from yandex_music import Cover
from yandex_music.exceptions import YandexMusicError
class TestCover: class TestCover:
@ -14,6 +17,10 @@ class TestCover:
copyright_cline = 'imago stock&people' copyright_cline = 'imago stock&people'
error = None error = None
def test_raise_on_model_error(self):
with pytest.raises(YandexMusicError):
Cover(error='not_found')
def test_expected_values(self, cover): def test_expected_values(self, cover):
assert cover.type == self.type assert cover.type == self.type
assert cover.uri == self.uri assert cover.uri == self.uri

ファイルの表示

@ -1,4 +1,7 @@
import pytest
from yandex_music import Track from yandex_music import Track
from yandex_music.exceptions import YandexMusicError
class TestTrack: class TestTrack:
@ -37,6 +40,10 @@ class TestTrack:
) )
is_suitable_for_children = True is_suitable_for_children = True
def test_raise_on_model_error(self):
with pytest.raises(YandexMusicError):
Track(id=self.id, error='not-found')
def test_expected_values( def test_expected_values(
self, self,
track, track,

ファイルの表示

@ -80,7 +80,7 @@ class Artist(YandexMusicObject):
client: 'Client' = None client: 'Client' = None
def __post_init__(self): def __post_init__(self):
if self.error: if self.error or self.reason:
raise YandexMusicError(self.error) raise YandexMusicError(self.error)
self._id_attrs = (self.id, self.name, self.cover) self._id_attrs = (self.id, self.name, self.cover)