import pytest from yandex_music import Genre @pytest.fixture(scope='class') def genre(title, images, icon, genre_without_sub_genre): return Genre(TestGenre.id, TestGenre.weight, TestGenre.composer_top, TestGenre.title, {'uz': title}, images, TestGenre.show_in_menu, TestGenre.full_title, TestGenre.url_part, TestGenre.color, icon, [genre_without_sub_genre], TestGenre.hide_in_regions) @pytest.fixture(scope='class') def genre_without_sub_genre(title, images, icon): return Genre(TestGenre.id, TestGenre.weight, TestGenre.composer_top, TestGenre.title, {'uz': title}, images, TestGenre.show_in_menu) class TestGenre: id = 'all' weight = 2 composer_top = False title = None show_in_menu = True full_title = 'Музыка всех жанров' url_part = None color = None hide_in_regions = None def test_expected_values(self, genre, title, images, icon, genre_without_sub_genre): assert genre.id == self.id assert genre.weight == self.weight assert genre.composer_top == self.composer_top assert genre.title == self.title assert genre.titles == {"uz": title} assert genre.images == images assert genre.show_in_menu == self.show_in_menu assert genre.full_title == self.full_title assert genre.url_part == self.url_part assert genre.color == self.color assert genre.radio_icon == icon assert genre.sub_genres == [genre_without_sub_genre] assert genre.hide_in_regions == self.hide_in_regions def test_de_json_required(self, client, title, images): json_dict = {'id': self.id, 'weight': self.weight, 'composer_top': self.composer_top, 'title': self.title, 'titles': {'uz': title.to_dict()}, 'images': images.to_dict(), 'show_in_menu': self.show_in_menu} genre = Genre.de_json(json_dict, client) assert genre.id == self.id assert genre.weight == self.weight assert genre.composer_top == self.composer_top assert genre.title == self.title assert genre.titles == {'uz': title} assert genre.images == images assert genre.show_in_menu == self.show_in_menu def test_de_json_all(self, client, title, images, icon, genre_without_sub_genre): json_dict = {'id': self.id, 'weight': self.weight, 'composer_top': self.composer_top, 'title': self.title, 'titles': {'uz': title.to_dict()}, 'images': images.to_dict(), 'show_in_menu': self.show_in_menu, 'full_title': self.full_title, 'url_part': self.url_part, 'color': self.color, 'radio_icon': icon.to_dict(), 'sub_genres': [genre_without_sub_genre.to_dict()], 'hide_in_regions': self.hide_in_regions} genre = Genre.de_json(json_dict, client) assert genre.id == self.id assert genre.weight == self.weight assert genre.composer_top == self.composer_top assert genre.title == self.title assert genre.titles == {'uz': title} assert genre.images == images assert genre.show_in_menu == self.show_in_menu assert genre.full_title == self.full_title assert genre.url_part == self.url_part assert genre.color == self.color assert genre.radio_icon == icon assert genre.sub_genres == [genre_without_sub_genre] assert genre.hide_in_regions == self.hide_in_regions def test_equality(self): pass