Добавлены основные тесты для следующих классов: 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
|
|
|
|
from yandex_music import Track
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestTrack:
|
|
|
|
|
id = '10994777'
|
|
|
|
|
title = 'Sapphire'
|
|
|
|
|
available = True
|
|
|
|
|
available_for_premium_users = True
|
|
|
|
|
lyrics_available = False
|
2020-04-17 04:27:48 +09:00
|
|
|
|
best = False
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
real_id = '10994777'
|
|
|
|
|
og_image = 'avatars.yandex.net/get-music-content/28589/daef4251.a.1193829-1/%%'
|
|
|
|
|
type = 'music'
|
|
|
|
|
cover_uri = 'avatars.yandex.net/get-music-content/28589/daef4251.a.1193829-1/%%'
|
|
|
|
|
duration_ms = 251270
|
|
|
|
|
storage_dir = '51327_109b74ca.36526310.1.609676'
|
|
|
|
|
file_size = 6036792
|
|
|
|
|
error = None
|
2020-06-06 23:06:23 +09:00
|
|
|
|
can_publish = False
|
|
|
|
|
state = 'playable'
|
|
|
|
|
desired_visibility = 'private'
|
|
|
|
|
filename = 'Ты не так плох.mp3'
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
regions = None
|
|
|
|
|
available_as_rbt = None
|
|
|
|
|
content_warning = None
|
|
|
|
|
explicit = None
|
|
|
|
|
preview_duration_ms = 30000
|
|
|
|
|
available_full_without_permission = False
|
2020-03-11 07:13:14 +09:00
|
|
|
|
version = 'Radio Edit'
|
|
|
|
|
remember_position = False
|
2021-01-28 01:24:40 +09:00
|
|
|
|
background_video_uri = 'https://music-background-videos.s3.yandex.net/converted/60018e4cdcaa9a42948cda8d'
|
2021-02-03 21:28:10 +09:00
|
|
|
|
short_description = (
|
|
|
|
|
'По каким признакам во внешности, в поведении, в одежде можно понять, что девушка несвободна?'
|
|
|
|
|
' Чтобы не ошибиться со своими чувствами и устремлениями…» — такой замечательный вопрос'
|
|
|
|
|
' пришел мне от подписчика. Причин, которые могут остановить мужчин в момент появления'
|
|
|
|
|
' желания познакомиться с девушкой, достаточно много. Обычно они сводятся к опасениям,'
|
|
|
|
|
)
|
2021-01-28 01:24:40 +09:00
|
|
|
|
is_suitable_for_children = True
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
|
2021-02-03 21:28:10 +09:00
|
|
|
|
def test_expected_values(
|
|
|
|
|
self,
|
|
|
|
|
track,
|
|
|
|
|
artist,
|
|
|
|
|
album,
|
|
|
|
|
major,
|
|
|
|
|
normalization,
|
|
|
|
|
track_without_nested_tracks,
|
|
|
|
|
user,
|
|
|
|
|
meta_data,
|
|
|
|
|
poetry_lover_match,
|
|
|
|
|
):
|
Добавлены основные тесты для следующих классов: 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 track.id == self.id
|
|
|
|
|
assert track.title == self.title
|
|
|
|
|
assert track.available == self.available
|
|
|
|
|
assert track.available_for_premium_users == self.available_for_premium_users
|
Добавлены основные тесты для следующих классов: 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 track.artists == [artist]
|
|
|
|
|
assert track.albums == [album]
|
Добавлены основные тесты для следующих классов: 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 track.lyrics_available == self.lyrics_available
|
2020-06-14 21:09:50 +09:00
|
|
|
|
assert track.poetry_lover_matches == [poetry_lover_match]
|
2020-04-17 04:27:48 +09:00
|
|
|
|
assert track.best == self.best
|
Добавлены основные тесты для следующих классов: 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 track.real_id == self.real_id
|
|
|
|
|
assert track.og_image == self.og_image
|
|
|
|
|
assert track.type == self.type
|
|
|
|
|
assert track.cover_uri == self.cover_uri
|
|
|
|
|
assert track.major == major
|
|
|
|
|
assert track.duration_ms == self.duration_ms
|
|
|
|
|
assert track.storage_dir == self.storage_dir
|
|
|
|
|
assert track.file_size == self.file_size
|
2020-06-06 23:06:23 +09:00
|
|
|
|
assert track.substituted == track_without_nested_tracks
|
|
|
|
|
assert track.matched_track == track_without_nested_tracks
|
Добавлены основные тесты для следующих классов: 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 track.normalization == normalization
|
|
|
|
|
assert track.error == self.error
|
2020-06-06 23:06:23 +09:00
|
|
|
|
assert track.meta_data == meta_data
|
Добавлены основные тесты для следующих классов: 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 track.regions == self.regions
|
|
|
|
|
assert track.available_as_rbt == self.available_as_rbt
|
|
|
|
|
assert track.content_warning == self.content_warning
|
|
|
|
|
assert track.explicit == self.explicit
|
|
|
|
|
assert track.preview_duration_ms == self.preview_duration_ms
|
|
|
|
|
assert track.available_full_without_permission == self.available_full_without_permission
|
2020-03-11 07:13:14 +09:00
|
|
|
|
assert track.version == self.version
|
|
|
|
|
assert track.remember_position == self.remember_position
|
2020-06-06 23:06:23 +09:00
|
|
|
|
assert track.can_publish == self.can_publish
|
|
|
|
|
assert track.state == self.state
|
|
|
|
|
assert track.desired_visibility == self.desired_visibility
|
|
|
|
|
assert track.filename == self.filename
|
|
|
|
|
assert track.user_info == user
|
2021-01-28 01:24:40 +09:00
|
|
|
|
assert track.background_video_uri == self.background_video_uri
|
|
|
|
|
assert track.short_description == self.short_description
|
|
|
|
|
assert track.is_suitable_for_children == self.is_suitable_for_children
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
|
2019-12-29 16:38:24 +09:00
|
|
|
|
def test_de_json_none(self, client):
|
|
|
|
|
assert Track.de_json({}, client) is None
|
|
|
|
|
|
2019-12-29 17:06:27 +09:00
|
|
|
|
def test_de_list_none(self, client):
|
|
|
|
|
assert Track.de_list({}, client) == []
|
|
|
|
|
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
def test_de_json_required(self, client, artist, album):
|
2020-04-17 04:27:48 +09:00
|
|
|
|
json_dict = {'id_': 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
|
|
|
|
track = Track.de_json(json_dict, client)
|
|
|
|
|
|
|
|
|
|
assert track.id == self.id
|
|
|
|
|
|
2021-02-03 21:28:10 +09:00
|
|
|
|
def test_de_json_all(
|
|
|
|
|
self,
|
|
|
|
|
client,
|
|
|
|
|
artist,
|
|
|
|
|
album,
|
|
|
|
|
major,
|
|
|
|
|
normalization,
|
|
|
|
|
track_without_nested_tracks,
|
|
|
|
|
user,
|
|
|
|
|
meta_data,
|
|
|
|
|
poetry_lover_match,
|
|
|
|
|
):
|
|
|
|
|
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,
|
|
|
|
|
'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,
|
|
|
|
|
'regions': self.regions,
|
|
|
|
|
'available_as_rbt': self.available_as_rbt,
|
|
|
|
|
'content_warning': self.content_warning,
|
|
|
|
|
'explicit': self.explicit,
|
|
|
|
|
'preview_duration_ms': self.preview_duration_ms,
|
|
|
|
|
'version': self.version,
|
|
|
|
|
'available_full_without_permission': self.available_full_without_permission,
|
|
|
|
|
'remember_position': self.remember_position,
|
|
|
|
|
'substituted': track_without_nested_tracks.to_dict(),
|
|
|
|
|
'matched_track': track_without_nested_tracks.to_dict(),
|
|
|
|
|
'can_publish': self.can_publish,
|
|
|
|
|
'state': self.state,
|
|
|
|
|
'desired_visibility': self.desired_visibility,
|
|
|
|
|
'filename': self.filename,
|
|
|
|
|
'user_info': user.to_dict(),
|
|
|
|
|
'meta_data': meta_data.to_dict(),
|
|
|
|
|
'poetry_lover_matches': [poetry_lover_match.to_dict()],
|
|
|
|
|
'background_video_uri': self.background_video_uri,
|
|
|
|
|
'short_description': self.short_description,
|
|
|
|
|
'is_suitable_for_children': self.is_suitable_for_children,
|
|
|
|
|
}
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
track = Track.de_json(json_dict, client)
|
|
|
|
|
|
|
|
|
|
assert track.id == self.id
|
|
|
|
|
assert track.title == self.title
|
|
|
|
|
assert track.available == self.available
|
|
|
|
|
assert track.available_for_premium_users == self.available_for_premium_users
|
Добавлены основные тесты для следующих классов: 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 track.artists == [artist]
|
|
|
|
|
assert track.albums == [album]
|
Добавлены основные тесты для следующих классов: 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 track.lyrics_available == self.lyrics_available
|
2020-06-14 21:09:50 +09:00
|
|
|
|
assert track.poetry_lover_matches == [poetry_lover_match]
|
2020-04-17 04:27:48 +09:00
|
|
|
|
assert track.best == self.best
|
Добавлены основные тесты для следующих классов: 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 track.real_id == self.real_id
|
|
|
|
|
assert track.og_image == self.og_image
|
|
|
|
|
assert track.type == self.type
|
|
|
|
|
assert track.cover_uri == self.cover_uri
|
|
|
|
|
assert track.major == major
|
|
|
|
|
assert track.duration_ms == self.duration_ms
|
|
|
|
|
assert track.storage_dir == self.storage_dir
|
|
|
|
|
assert track.file_size == self.file_size
|
2020-06-06 23:06:23 +09:00
|
|
|
|
assert track.substituted == track_without_nested_tracks
|
|
|
|
|
assert track.matched_track == track_without_nested_tracks
|
Добавлены основные тесты для следующих классов: 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 track.normalization == normalization
|
|
|
|
|
assert track.error == self.error
|
2020-06-06 23:06:23 +09:00
|
|
|
|
assert track.meta_data == meta_data
|
Добавлены основные тесты для следующих классов: 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 track.regions == self.regions
|
|
|
|
|
assert track.available_as_rbt == self.available_as_rbt
|
|
|
|
|
assert track.content_warning == self.content_warning
|
|
|
|
|
assert track.explicit == self.explicit
|
|
|
|
|
assert track.preview_duration_ms == self.preview_duration_ms
|
|
|
|
|
assert track.available_full_without_permission == self.available_full_without_permission
|
2020-03-11 07:13:14 +09:00
|
|
|
|
assert track.version == self.version
|
|
|
|
|
assert track.remember_position == self.remember_position
|
2020-06-06 23:06:23 +09:00
|
|
|
|
assert track.can_publish == self.can_publish
|
|
|
|
|
assert track.state == self.state
|
|
|
|
|
assert track.desired_visibility == self.desired_visibility
|
|
|
|
|
assert track.filename == self.filename
|
|
|
|
|
assert track.user_info == user
|
2021-01-28 01:24:40 +09:00
|
|
|
|
assert track.background_video_uri == self.background_video_uri
|
|
|
|
|
assert track.short_description == self.short_description
|
|
|
|
|
assert track.is_suitable_for_children == self.is_suitable_for_children
|
Добавлены основные тесты для следующих классов: 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
|
|
|
|
|
2020-04-17 04:27:48 +09:00
|
|
|
|
def test_equality(self):
|
|
|
|
|
a = Track(self.id)
|
|
|
|
|
b = Track(10)
|
|
|
|
|
c = Track(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
|