2019-11-08 02:09:39 +09:00
|
|
|
|
from yandex_music import Album
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestAlbum:
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
id = 5239478
|
2022-02-21 08:12:11 +09:00
|
|
|
|
error = 'not-found'
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
title = 'In the End'
|
2020-01-14 02:24:52 +09:00
|
|
|
|
version = 'feat. Mark Van Hoen & Mike Harding'
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
cover_uri = 'avatars.yandex.net/get-music-content/95061/89c14a7d.a.5239478-1/%%'
|
|
|
|
|
track_count = 3
|
|
|
|
|
available = True
|
|
|
|
|
available_for_premium_users = True
|
2019-11-08 02:09:39 +09:00
|
|
|
|
content_warning = None
|
|
|
|
|
original_release_year = None
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
genre = 'alternative'
|
2020-06-14 21:09:50 +09:00
|
|
|
|
text_color = '#000000'
|
|
|
|
|
short_description = ''
|
2021-02-03 21:28:10 +09:00
|
|
|
|
description = (
|
|
|
|
|
'В начале 2015 года вокалист Asking Alexandria Дэнни Уорсноп объявил об уходе из группы — музыкант'
|
|
|
|
|
' стал строить сольную карьеру и заниматься другими проектами. Однако через неполных два года '
|
|
|
|
|
'Уорсноп вернулся в группу, и в конце 2017-го музыканты представили пятую пластинку в прежнем '
|
|
|
|
|
'составе. «Было здорово вернуться к ребятам. Думаю, нам всем нужно было время, чтобы отпустить '
|
|
|
|
|
'то, что произошло между нами. Хорошо быть снова вместе», — говорит Денни Уорсноп.'
|
|
|
|
|
)
|
2020-06-14 21:09:50 +09:00
|
|
|
|
is_premiere = False
|
|
|
|
|
is_banner = False
|
2020-04-17 04:10:21 +09:00
|
|
|
|
meta_type = 'music'
|
Добавлен новый класс LicenceTextPart.
Поля cheapest, title, family_sub, fb_image, fb_name, family, intro_period_duration, intro_price, start_period_duration, start_price, licence_text_parts для Product.
Поля storage_dir, duplicates для Album.
Поле subscribed для ArtistEvent.
Поле description для GeneratedPlaylist.
Поле genre для Event.
Поле show_in_regions для Genre.
Поле cover_uri для MixLink.
Поля og_description, top_artist для Playlist.
Поля full_image_url, mts_full_image_url для Station.
Документация и тесты к новым поля. #339
2020-06-07 05:48:32 +09:00
|
|
|
|
storage_dir = '4beeac1e.a.1155208'
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
og_image = 'avatars.yandex.net/get-music-content/95061/89c14a7d.a.5239478-1/%%'
|
|
|
|
|
buy = []
|
|
|
|
|
recent = False
|
|
|
|
|
very_important = False
|
|
|
|
|
available_for_mobile = True
|
|
|
|
|
available_partially = False
|
|
|
|
|
bests = [51241318]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
prerolls = None
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
year = 2019
|
|
|
|
|
release_date = '2019-03-22T00:00:00+03:00'
|
|
|
|
|
type = 'single'
|
2019-11-08 02:09:39 +09:00
|
|
|
|
regions = None
|
2021-01-28 01:24:40 +09:00
|
|
|
|
available_as_rbt = False
|
|
|
|
|
lyrics_available = True
|
|
|
|
|
remember_position = False
|
|
|
|
|
duration_ms = 200440
|
|
|
|
|
explicit = False
|
|
|
|
|
start_date = '2020-06-30'
|
|
|
|
|
likes_count = 2
|
2021-01-28 02:02:16 +09:00
|
|
|
|
available_regions = ['kg', 'tm', 'by', 'kz', 'md', 'ru', 'am', 'ge', 'uz', 'tj', 'il', 'az', 'ua']
|
2023-03-27 20:07:51 +09:00
|
|
|
|
available_for_options = ['bookmate']
|
2019-11-08 02:09:39 +09:00
|
|
|
|
|
2021-02-03 21:28:10 +09:00
|
|
|
|
def test_expected_values(
|
|
|
|
|
self,
|
|
|
|
|
album,
|
|
|
|
|
artist_without_tracks,
|
|
|
|
|
label,
|
|
|
|
|
track_position,
|
|
|
|
|
track_without_albums,
|
|
|
|
|
album_without_nested_albums,
|
|
|
|
|
deprecation,
|
|
|
|
|
):
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
assert album.id == self.id
|
2020-01-23 22:51:01 +09:00
|
|
|
|
assert album.error == self.error
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.title == self.title
|
2020-01-14 02:24:52 +09:00
|
|
|
|
assert album.version == self.version
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.cover_uri == self.cover_uri
|
|
|
|
|
assert album.track_count == self.track_count
|
Добавлены основные тесты для следующих классов: AlbumEvent, AlbumsLikes, ArtistEvent, ArtistsLikes, ChartItem, Dashboard, Day, Event, Sequence, StationTracksResult, Supplement, TrackWithAds.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен conftest.py.
Исправлен баг в .to_dict() методе, связанный с не рекурсивной десериализацией объектов списков и словарей.
Исправлен баг с десериализацией artist в классе ArtistEvent
2019-11-09 22:43:02 +09:00
|
|
|
|
assert album.artists == [artist_without_tracks]
|
2020-12-02 16:22:27 +09:00
|
|
|
|
assert album.labels == [label]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.available == self.available
|
|
|
|
|
assert album.available_for_premium_users == self.available_for_premium_users
|
|
|
|
|
assert album.content_warning == self.content_warning
|
|
|
|
|
assert album.original_release_year == self.original_release_year
|
|
|
|
|
assert album.genre == self.genre
|
2020-06-14 21:09:50 +09:00
|
|
|
|
assert album.text_color == self.text_color
|
|
|
|
|
assert album.short_description == self.short_description
|
|
|
|
|
assert album.description == self.description
|
|
|
|
|
assert album.is_premiere == self.is_premiere
|
|
|
|
|
assert album.is_banner == self.is_banner
|
2020-04-17 04:10:21 +09:00
|
|
|
|
assert album.meta_type == self.meta_type
|
Добавлен новый класс LicenceTextPart.
Поля cheapest, title, family_sub, fb_image, fb_name, family, intro_period_duration, intro_price, start_period_duration, start_price, licence_text_parts для Product.
Поля storage_dir, duplicates для Album.
Поле subscribed для ArtistEvent.
Поле description для GeneratedPlaylist.
Поле genre для Event.
Поле show_in_regions для Genre.
Поле cover_uri для MixLink.
Поля og_description, top_artist для Playlist.
Поля full_image_url, mts_full_image_url для Station.
Документация и тесты к новым поля. #339
2020-06-07 05:48:32 +09:00
|
|
|
|
assert album.storage_dir == self.storage_dir
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.og_image == self.og_image
|
|
|
|
|
assert album.buy == self.buy
|
|
|
|
|
assert album.recent == self.recent
|
|
|
|
|
assert album.very_important == self.very_important
|
|
|
|
|
assert album.available_for_mobile == self.available_for_mobile
|
|
|
|
|
assert album.available_partially == self.available_partially
|
|
|
|
|
assert album.bests == self.bests
|
Добавлен новый класс LicenceTextPart.
Поля cheapest, title, family_sub, fb_image, fb_name, family, intro_period_duration, intro_price, start_period_duration, start_price, licence_text_parts для Product.
Поля storage_dir, duplicates для Album.
Поле subscribed для ArtistEvent.
Поле description для GeneratedPlaylist.
Поле genre для Event.
Поле show_in_regions для Genre.
Поле cover_uri для MixLink.
Поля og_description, top_artist для Playlist.
Поля full_image_url, mts_full_image_url для Station.
Документация и тесты к новым поля. #339
2020-06-07 05:48:32 +09:00
|
|
|
|
assert album.duplicates == [album_without_nested_albums]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.prerolls == self.prerolls
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
assert album.volumes == [[track_without_albums]]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.year == self.year
|
|
|
|
|
assert album.release_date == self.release_date
|
|
|
|
|
assert album.type == self.type
|
|
|
|
|
assert album.track_position == track_position
|
|
|
|
|
assert album.regions == self.regions
|
2021-01-28 01:24:40 +09:00
|
|
|
|
assert album.available_as_rbt == self.available_as_rbt
|
|
|
|
|
assert album.lyrics_available == self.lyrics_available
|
|
|
|
|
assert album.remember_position == self.remember_position
|
|
|
|
|
assert album.duration_ms == self.duration_ms
|
|
|
|
|
assert album.explicit == self.explicit
|
|
|
|
|
assert album.start_date == self.start_date
|
|
|
|
|
assert album.likes_count == self.likes_count
|
|
|
|
|
assert album.deprecation == deprecation
|
2021-01-28 02:02:16 +09:00
|
|
|
|
assert album.available_regions == self.available_regions
|
2023-03-27 20:07:51 +09:00
|
|
|
|
assert album.available_for_options == self.available_for_options
|
2019-11-08 02:09:39 +09:00
|
|
|
|
|
2019-12-29 16:38:24 +09:00
|
|
|
|
def test_de_json_none(self, client):
|
|
|
|
|
assert Album.de_json({}, client) is None
|
|
|
|
|
|
2019-12-29 17:06:27 +09:00
|
|
|
|
def test_de_list_none(self, client):
|
|
|
|
|
assert Album.de_list({}, client) == []
|
|
|
|
|
|
2020-01-23 22:51:01 +09:00
|
|
|
|
def test_de_json_required(self, client):
|
2022-02-21 08:12:11 +09:00
|
|
|
|
json_dict = {'id': self.id}
|
2019-11-08 02:09:39 +09:00
|
|
|
|
album = Album.de_json(json_dict, client)
|
|
|
|
|
|
2021-01-28 01:24:40 +09:00
|
|
|
|
def test_de_json_all(self, client, artist, label, track_position, track, album_without_nested_albums, deprecation):
|
2020-12-02 16:47:37 +09:00
|
|
|
|
labels = [label] if type(label) == str else [label.to_dict()]
|
2021-02-03 21:28:10 +09:00
|
|
|
|
json_dict = {
|
2021-09-19 22:47:19 +09:00
|
|
|
|
'id': self.id,
|
2021-02-03 21:28:10 +09:00
|
|
|
|
'error': self.error,
|
|
|
|
|
'title': self.title,
|
|
|
|
|
'cover_uri': self.cover_uri,
|
|
|
|
|
'track_count': self.track_count,
|
|
|
|
|
'artists': [artist.to_dict()],
|
|
|
|
|
'labels': labels,
|
|
|
|
|
'available': self.available,
|
|
|
|
|
'available_for_premium_users': self.available_for_premium_users,
|
|
|
|
|
'version': self.version,
|
|
|
|
|
'content_warning': self.content_warning,
|
|
|
|
|
'regions': self.regions,
|
|
|
|
|
'original_release_year': self.original_release_year,
|
|
|
|
|
'genre': self.genre,
|
|
|
|
|
'buy': self.buy,
|
|
|
|
|
'og_image': self.og_image,
|
|
|
|
|
'recent': self.recent,
|
|
|
|
|
'very_important': self.very_important,
|
|
|
|
|
'available_for_mobile': self.available_for_mobile,
|
|
|
|
|
'available_partially': self.available_partially,
|
|
|
|
|
'bests': self.bests,
|
|
|
|
|
'prerolls': self.prerolls,
|
|
|
|
|
'volumes': [[track.to_dict()]],
|
|
|
|
|
'year': self.year,
|
|
|
|
|
'release_date': self.release_date,
|
2021-09-19 22:47:19 +09:00
|
|
|
|
'type': self.type,
|
2021-02-03 21:28:10 +09:00
|
|
|
|
'track_position': track_position.to_dict(),
|
|
|
|
|
'meta_type': self.meta_type,
|
|
|
|
|
'storage_dir': self.storage_dir,
|
|
|
|
|
'is_banner': self.is_banner,
|
|
|
|
|
'duplicates': [album_without_nested_albums.to_dict()],
|
|
|
|
|
'is_premiere': self.is_premiere,
|
|
|
|
|
'short_description': self.short_description,
|
|
|
|
|
'description': self.description,
|
|
|
|
|
'text_color': self.text_color,
|
|
|
|
|
'available_as_rbt': self.available_as_rbt,
|
|
|
|
|
'lyrics_available': self.lyrics_available,
|
|
|
|
|
'remember_position': self.remember_position,
|
|
|
|
|
'albums': [album_without_nested_albums.to_dict()],
|
|
|
|
|
'duration_ms': self.duration_ms,
|
|
|
|
|
'explicit': self.explicit,
|
|
|
|
|
'start_date': self.start_date,
|
|
|
|
|
'likes_count': self.likes_count,
|
|
|
|
|
'deprecation': deprecation.to_dict(),
|
|
|
|
|
'available_regions': self.available_regions,
|
2023-03-27 20:07:51 +09:00
|
|
|
|
'available_for_options': self.available_for_options,
|
2021-02-03 21:28:10 +09:00
|
|
|
|
}
|
2019-11-08 02:09:39 +09:00
|
|
|
|
album = Album.de_json(json_dict, client)
|
|
|
|
|
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
assert album.id == self.id
|
2020-01-23 22:51:01 +09:00
|
|
|
|
assert album.error == self.error
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.title == self.title
|
2020-01-14 02:24:52 +09:00
|
|
|
|
assert album.version == self.version
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.cover_uri == self.cover_uri
|
|
|
|
|
assert album.track_count == self.track_count
|
Добавлены основные тесты для следующих классов: AlbumEvent, AlbumsLikes, ArtistEvent, ArtistsLikes, ChartItem, Dashboard, Day, Event, Sequence, StationTracksResult, Supplement, TrackWithAds.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен conftest.py.
Исправлен баг в .to_dict() методе, связанный с не рекурсивной десериализацией объектов списков и словарей.
Исправлен баг с десериализацией artist в классе ArtistEvent
2019-11-09 22:43:02 +09:00
|
|
|
|
assert album.artists == [artist]
|
2020-12-02 16:22:27 +09:00
|
|
|
|
assert album.labels == [label]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.available == self.available
|
|
|
|
|
assert album.available_for_premium_users == self.available_for_premium_users
|
|
|
|
|
assert album.content_warning == self.content_warning
|
|
|
|
|
assert album.original_release_year == self.original_release_year
|
|
|
|
|
assert album.genre == self.genre
|
2020-06-14 21:09:50 +09:00
|
|
|
|
assert album.text_color == self.text_color
|
|
|
|
|
assert album.short_description == self.short_description
|
|
|
|
|
assert album.description == self.description
|
|
|
|
|
assert album.is_premiere == self.is_premiere
|
|
|
|
|
assert album.is_banner == self.is_banner
|
2020-04-17 04:10:21 +09:00
|
|
|
|
assert album.meta_type == self.meta_type
|
Добавлен новый класс LicenceTextPart.
Поля cheapest, title, family_sub, fb_image, fb_name, family, intro_period_duration, intro_price, start_period_duration, start_price, licence_text_parts для Product.
Поля storage_dir, duplicates для Album.
Поле subscribed для ArtistEvent.
Поле description для GeneratedPlaylist.
Поле genre для Event.
Поле show_in_regions для Genre.
Поле cover_uri для MixLink.
Поля og_description, top_artist для Playlist.
Поля full_image_url, mts_full_image_url для Station.
Документация и тесты к новым поля. #339
2020-06-07 05:48:32 +09:00
|
|
|
|
assert album.storage_dir == self.storage_dir
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.og_image == self.og_image
|
|
|
|
|
assert album.buy == self.buy
|
|
|
|
|
assert album.recent == self.recent
|
|
|
|
|
assert album.very_important == self.very_important
|
|
|
|
|
assert album.available_for_mobile == self.available_for_mobile
|
|
|
|
|
assert album.available_partially == self.available_partially
|
|
|
|
|
assert album.bests == self.bests
|
Добавлен новый класс LicenceTextPart.
Поля cheapest, title, family_sub, fb_image, fb_name, family, intro_period_duration, intro_price, start_period_duration, start_price, licence_text_parts для Product.
Поля storage_dir, duplicates для Album.
Поле subscribed для ArtistEvent.
Поле description для GeneratedPlaylist.
Поле genre для Event.
Поле show_in_regions для Genre.
Поле cover_uri для MixLink.
Поля og_description, top_artist для Playlist.
Поля full_image_url, mts_full_image_url для Station.
Документация и тесты к новым поля. #339
2020-06-07 05:48:32 +09:00
|
|
|
|
assert album.duplicates == [album_without_nested_albums]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.prerolls == self.prerolls
|
Добавлены основные тесты для следующих классов: AlbumEvent, AlbumsLikes, ArtistEvent, ArtistsLikes, ChartItem, Dashboard, Day, Event, Sequence, StationTracksResult, Supplement, TrackWithAds.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен conftest.py.
Исправлен баг в .to_dict() методе, связанный с не рекурсивной десериализацией объектов списков и словарей.
Исправлен баг с десериализацией artist в классе ArtistEvent
2019-11-09 22:43:02 +09:00
|
|
|
|
assert album.volumes == [[track]]
|
2019-11-08 02:09:39 +09:00
|
|
|
|
assert album.year == self.year
|
|
|
|
|
assert album.release_date == self.release_date
|
|
|
|
|
assert album.type == self.type
|
|
|
|
|
assert album.track_position == track_position
|
|
|
|
|
assert album.regions == self.regions
|
2021-01-28 01:24:40 +09:00
|
|
|
|
assert album.available_as_rbt == self.available_as_rbt
|
|
|
|
|
assert album.lyrics_available == self.lyrics_available
|
|
|
|
|
assert album.remember_position == self.remember_position
|
|
|
|
|
assert album.duration_ms == self.duration_ms
|
|
|
|
|
assert album.explicit == self.explicit
|
|
|
|
|
assert album.start_date == self.start_date
|
|
|
|
|
assert album.likes_count == self.likes_count
|
|
|
|
|
assert album.deprecation == deprecation
|
2021-01-28 02:02:16 +09:00
|
|
|
|
assert album.available_regions == self.available_regions
|
2023-03-27 20:07:51 +09:00
|
|
|
|
assert album.available_for_options == self.available_for_options
|
2019-11-08 02:09:39 +09:00
|
|
|
|
|
2020-12-02 16:22:27 +09:00
|
|
|
|
def test_equality(self, artist, label):
|
2020-01-23 22:51:01 +09:00
|
|
|
|
a = Album(self.id)
|
|
|
|
|
b = Album(10)
|
|
|
|
|
c = Album(self.id)
|
Добавлены основные тесты для следующих классов: Album, Artist, Chart, Counts, Genre, Label, PermissionAlerts, PromoCodeStatus, Restrictions, Settings, Station, StatuonResult, Status, Track.
Исправлены фикстуры и сравнения для вышеперечисленных классов.
Отрефакторен restrictions.py.
Исправлен баг в .to_dict() методе, связанный с десериализцией объектов списков и словарей.
2019-11-09 00:24:54 +09:00
|
|
|
|
|
|
|
|
|
assert a != b
|
|
|
|
|
assert hash(a) != hash(b)
|
|
|
|
|
assert a is not b
|
|
|
|
|
|
|
|
|
|
assert a == c
|