65 行
2.8 KiB
Python
65 行
2.8 KiB
Python
|
import pytest
|
||
|
|
||
|
from yandex_music import LandingList
|
||
|
|
||
|
|
||
|
@pytest.fixture(scope='class')
|
||
|
def landing_list(playlist_id):
|
||
|
return LandingList(TestLandingList.type, TestLandingList.type_for_from, TestLandingList.title, TestLandingList.id,
|
||
|
TestLandingList.new_releases, [playlist_id], TestLandingList.podcasts)
|
||
|
|
||
|
|
||
|
class TestLandingList:
|
||
|
id = 'fNdCYuAs'
|
||
|
title = 'Новые треки, альбомы и сборники'
|
||
|
type = 'new-releases'
|
||
|
type_for_from = 'new-releases'
|
||
|
new_releases = [10704986, 10527291, 9479589]
|
||
|
podcasts = [10532030, 8693523, 10509632]
|
||
|
|
||
|
def test_expected_values(self, landing_list, playlist_id):
|
||
|
assert landing_list.id == self.id
|
||
|
assert landing_list.title == self.title
|
||
|
assert landing_list.type == self.type
|
||
|
assert landing_list.type_for_from == self.type_for_from
|
||
|
assert landing_list.new_releases == self.new_releases
|
||
|
assert landing_list.podcasts == self.podcasts
|
||
|
assert landing_list.new_playlists == [playlist_id]
|
||
|
|
||
|
def test_de_json_none(self, client):
|
||
|
assert LandingList.de_json({}, client) is None
|
||
|
|
||
|
def test_de_json_required(self, client):
|
||
|
json_dict = {'title': self.title, 'type_': self.type, 'type_for_from': self.type_for_from}
|
||
|
landing_list = LandingList.de_json(json_dict, client)
|
||
|
|
||
|
assert landing_list.title == self.title
|
||
|
assert landing_list.type == self.type
|
||
|
assert landing_list.type_for_from == self.type_for_from
|
||
|
|
||
|
def test_de_json_all(self, client, playlist_id):
|
||
|
json_dict = {'title': self.title, 'type_': self.type, 'type_for_from': self.type_for_from, 'id_': self.id,
|
||
|
'new_releases': self.new_releases, 'podcasts': self.podcasts,
|
||
|
'new_playlists': [playlist_id.to_dict()]}
|
||
|
landing_list = LandingList.de_json(json_dict, client)
|
||
|
|
||
|
assert landing_list.id == self.id
|
||
|
assert landing_list.title == self.title
|
||
|
assert landing_list.type == self.type
|
||
|
assert landing_list.type_for_from == self.type_for_from
|
||
|
assert landing_list.new_releases == self.new_releases
|
||
|
assert landing_list.podcasts == self.podcasts
|
||
|
assert landing_list.new_playlists == [playlist_id]
|
||
|
|
||
|
def test_equality(self, playlist_id):
|
||
|
a = LandingList(self.type, self.type_for_from, self.title, self.id, self.new_releases, [playlist_id], [])
|
||
|
b = LandingList(self.type, self.type_for_from, self.title, self.id, self.new_releases, [], [])
|
||
|
c = LandingList(self.type, self.type_for_from, self.title, '', self.new_releases, [playlist_id], [])
|
||
|
d = LandingList(self.type, self.type_for_from, self.title, self.id, self.new_releases, [playlist_id], [])
|
||
|
|
||
|
assert a != b != c
|
||
|
assert hash(a) != hash(b) != hash(c)
|
||
|
assert a is not b is not c
|
||
|
|
||
|
assert a == d
|