Добавлено поле best классу Track

このコミットが含まれているのは:
Il`ya Semyonov 2020-04-16 22:27:48 +03:00
コミット a06401b4a0
3個のファイルの変更21行の追加19行の削除

ファイルの表示

@ -50,12 +50,12 @@ def track_factory(major, normalization):
class TrackFactory:
def get(self, artists, albums):
return Track(TestTrack.id, TestTrack.title, TestTrack.available, artists, albums,
TestTrack.available_for_premium_users, TestTrack.lyrics_available, TestTrack.real_id,
TestTrack.og_image, TestTrack.type, TestTrack.cover_uri, major, TestTrack.duration_ms,
TestTrack.storage_dir, TestTrack.file_size, normalization, TestTrack.error, TestTrack.regions,
TestTrack.available_as_rbt, TestTrack.content_warning, TestTrack.explicit,
TestTrack.preview_duration_ms, TestTrack.available_full_without_permission, TestTrack.version,
TestTrack.remember_position)
TestTrack.available_for_premium_users, TestTrack.lyrics_available, TestTrack.best,
TestTrack.real_id, TestTrack.og_image, TestTrack.type, TestTrack.cover_uri, major,
TestTrack.duration_ms, TestTrack.storage_dir, TestTrack.file_size, normalization,
TestTrack.error, TestTrack.regions, TestTrack.available_as_rbt, TestTrack.content_warning,
TestTrack.explicit, TestTrack.preview_duration_ms, TestTrack.available_full_without_permission,
TestTrack.version, TestTrack.remember_position)
return TrackFactory()

ファイルの表示

@ -7,6 +7,7 @@ class TestTrack:
available = True
available_for_premium_users = True
lyrics_available = False
best = False
real_id = '10994777'
og_image = 'avatars.yandex.net/get-music-content/28589/daef4251.a.1193829-1/%%'
type = 'music'
@ -32,6 +33,7 @@ class TestTrack:
assert track.artists == [artist]
assert track.albums == [album]
assert track.lyrics_available == self.lyrics_available
assert track.best == self.best
assert track.real_id == self.real_id
assert track.og_image == self.og_image
assert track.type == self.type
@ -58,21 +60,16 @@ class TestTrack:
assert Track.de_list({}, client) == []
def test_de_json_required(self, client, artist, album):
json_dict = {'id_': self.id, 'title': self.title, 'available': self.available,
'artists': [artist.to_dict()], 'albums': [album.to_dict()]}
json_dict = {'id_': self.id}
track = Track.de_json(json_dict, client)
assert track.id == self.id
assert track.title == self.title
assert track.available == self.available
assert track.artists == [artist]
assert track.albums == [album]
def test_de_json_all(self, client, artist, album, major, normalization):
json_dict = {'id_': self.id, 'title': self.title, 'available': self.available,
'available_for_premium_users': self.available_for_premium_users,
'artists': [artist.to_dict()], 'albums': [album.to_dict()],
'lyrics_available': self.lyrics_available, 'real_id': self.real_id,
'lyrics_available': self.lyrics_available, 'best': self.best, 'real_id': self.real_id,
'og_image': self.og_image, 'type_': self.type, 'cover_uri': self.cover_uri,
'major': major.to_dict(), 'duration_ms': self.duration_ms, 'storage_dir': self.storage_dir,
'file_size': self.file_size, 'normalization': normalization.to_dict(), 'error': self.error,
@ -90,6 +87,7 @@ class TestTrack:
assert track.artists == [artist]
assert track.albums == [album]
assert track.lyrics_available == self.lyrics_available
assert track.best == self.best
assert track.real_id == self.real_id
assert track.og_image == self.og_image
assert track.type == self.type
@ -109,10 +107,10 @@ class TestTrack:
assert track.version == self.version
assert track.remember_position == self.remember_position
def test_equality(self, artist, album):
a = Track(self.id, self.title, self.available, [artist], [album])
b = Track(self.id, '', self.available, [artist], [])
c = Track(self.id, self.title, self.available, [artist], [album])
def test_equality(self):
a = Track(self.id)
b = Track(10)
c = Track(self.id)
assert a != b
assert hash(a) != hash(b)

ファイルの表示

@ -23,6 +23,7 @@ class Track(YandexMusicObject):
albums (:obj:`list` из :obj:`yandex_music.Album`): Альбомы.
available_for_premium_users (:obj:`bool`): Доступен ли для пользователей с подпиской.
lyrics_available (:obj:`bool`): Доступен ли текст песни.
best (:obj:`bool`): Лучшей ли трек TODO.
real_id (:obj:`int` | :obj:`str`): TODO.
og_image (:obj:`str`): Ссылка на превью Open Graph.
type (:obj:`str`): Тип.
@ -52,6 +53,7 @@ class Track(YandexMusicObject):
albums (:obj:`list` из :obj:`yandex_music.Album`, optional): Альбомы.
available_for_premium_users (:obj:`bool`, optional): Доступен ли для пользователей с подпиской.
lyrics_available (:obj:`bool`, optional): Доступен ли текст песни.
best (:obj:`bool`, optional): Лучшей ли трек TODO.
real_id (:obj:`int` | :obj:`str`, optional): TODO.
og_image (:obj:`str`, optional): Ссылка на превью Open Graph.
type_ (:obj:`str`, optional): Тип.
@ -82,6 +84,7 @@ class Track(YandexMusicObject):
albums: List['Album'] = None,
available_for_premium_users: Optional[bool] = None,
lyrics_available: Optional[bool] = None,
best: Optional[bool] = None,
real_id: Optional[Union[str, int]] = None,
og_image: Optional[str] = None,
type_: Optional[str] = None,
@ -105,13 +108,14 @@ class Track(YandexMusicObject):
super().handle_unknown_kwargs(self, **kwargs)
self.id = id_
self.title = title
self.available = available
self.artists = artists
self.albums = albums
self.available_for_premium_users = available_for_premium_users
self.lyrics_available = lyrics_available
self.best = best
self.real_id = real_id
self.og_image = og_image
self.type = type_
@ -134,7 +138,7 @@ class Track(YandexMusicObject):
self.download_info = None
self.client = client
self._id_attrs = (self.id, self.title, self.available, self.artists, self.albums)
self._id_attrs = (self.id,)
def get_download_info(self, get_direct_links=False) -> List['DownloadInfo']:
"""Сокращение для::