import pytest from yandex_music import Supplement @pytest.fixture(scope='class') def supplement(lyrics, video_supplement): return Supplement(TestSupplement.id, lyrics, [video_supplement], TestSupplement.radio_is_available) class TestSupplement: id = 103844 radio_is_available = False def test_expected_values(self, supplement, lyrics, video_supplement): assert supplement.id == self.id assert supplement.lyrics == lyrics assert supplement.videos == [video_supplement] assert supplement.radio_is_available == self.radio_is_available def test_de_json_none(self, client): assert Supplement.de_json({}, client) is None def test_de_json_required(self, client, lyrics, video_supplement): json_dict = {'id_': self.id, 'lyrics': lyrics.to_dict(), 'videos': [video_supplement.to_dict()], 'radio_is_available': self.radio_is_available} supplement = Supplement.de_json(json_dict, client) assert supplement.id == self.id assert supplement.lyrics == lyrics assert supplement.videos == [video_supplement] assert supplement.radio_is_available == self.radio_is_available def test_de_json_all(self, client, lyrics, video_supplement): json_dict = {'id_': self.id, 'lyrics': lyrics.to_dict(), 'videos': [video_supplement.to_dict()], 'radio_is_available': self.radio_is_available} supplement = Supplement.de_json(json_dict, client) assert supplement.id == self.id assert supplement.lyrics == lyrics assert supplement.videos == [video_supplement] assert supplement.radio_is_available == self.radio_is_available def test_equality(self, lyrics, video_supplement): a = Supplement(self.id, lyrics, [video_supplement], self.radio_is_available) b = Supplement(self.id, None, [video_supplement], True) c = Supplement(self.id, lyrics, [video_supplement], self.radio_is_available) assert a != b assert hash(a) != hash(b) assert a is not b assert a == c