yandex-music-api/tests/test_track.py

120 行
5.2 KiB
Python

from yandex_music import Track
class TestTrack:
id = '10994777'
title = 'Sapphire'
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'
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
regions = None
available_as_rbt = None
content_warning = None
explicit = None
preview_duration_ms = 30000
available_full_without_permission = False
version = 'Radio Edit'
remember_position = False
def test_expected_values(self, track, artist, album, major, normalization):
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
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
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
assert track.normalization == normalization
assert track.error == self.error
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
assert track.version == self.version
assert track.remember_position == self.remember_position
def test_de_json_none(self, client):
assert Track.de_json({}, client) is None
def test_de_list_none(self, client):
assert Track.de_list({}, client) == []
def test_de_json_required(self, client, artist, album):
json_dict = {'id_': self.id}
track = Track.de_json(json_dict, client)
assert track.id == self.id
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, '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}
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
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
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
assert track.normalization == normalization
assert track.error == self.error
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
assert track.version == self.version
assert track.remember_position == self.remember_position
def test_equality(self):
a = Track(self.id)
b = Track(10)
c = Track(self.id)
assert a != b
assert hash(a) != hash(b)
assert a is not b
assert a == c