diff --git a/tests/conftest.py b/tests/conftest.py index b3e50dd..3279795 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -406,9 +406,9 @@ def track_position(): @pytest.fixture(scope='session') def status(account, permissions, subscription, plus): - return Status(account, permissions, subscription, TestStatus.cache_limit, TestStatus.subeditor, - TestStatus.subeditor_level, plus, TestStatus.default_email, TestStatus.skips_per_hour, - TestStatus.station_exists, TestStatus.premium_region) + return Status(account, permissions, TestStatus.advertisement, subscription, TestStatus.cache_limit, + TestStatus.subeditor, TestStatus.subeditor_level, plus, TestStatus.default_email, + TestStatus.skips_per_hour, TestStatus.station_exists, TestStatus.premium_region) @pytest.fixture(scope='session') diff --git a/tests/test_status.py b/tests/test_status.py index f19c306..ea43c80 100644 --- a/tests/test_status.py +++ b/tests/test_status.py @@ -2,6 +2,7 @@ from yandex_music import Status class TestStatus: + advertisement = 'Оформите постоянную подписку – первый месяц бесплатно!' cache_limit = 99 subeditor = False subeditor_level = 0 @@ -14,6 +15,7 @@ class TestStatus: assert status.account == account assert status.permissions == permissions assert status.subscription == subscription + assert status.advertisement == self.advertisement assert status.cache_limit == self.cache_limit assert status.subeditor == self.subeditor assert status.subeditor_level == self.subeditor_level @@ -27,23 +29,27 @@ class TestStatus: assert Status.de_json({}, client) is None def test_de_json_required(self, client, account, permissions): - json_dict = {'account': account.to_dict(), 'permissions': permissions.to_dict()} + json_dict = {'account': account.to_dict(), 'permissions': permissions.to_dict(), + 'advertisement': self.advertisement} status = Status.de_json(json_dict, client) assert status.account == account assert status.permissions == permissions + assert status.advertisement == self.advertisement def test_de_json_all(self, client, account, permissions, subscription, plus): json_dict = {'account': account.to_dict(), 'permissions': permissions.to_dict(), 'subscription': subscription.to_dict(), 'cache_limit': self.cache_limit, 'subeditor': self.subeditor, 'subeditor_level': self.subeditor_level, 'plus': plus.to_dict(), 'default_email': self.default_email, 'skips_per_hour': self.skips_per_hour, - 'station_exists': self.station_exists, 'premium_region': self.premium_region} + 'station_exists': self.station_exists, 'premium_region': self.premium_region, + 'advertisement': self.advertisement} status = Status.de_json(json_dict, client) assert status.account == account assert status.permissions == permissions assert status.subscription == subscription + assert status.advertisement == self.advertisement assert status.cache_limit == self.cache_limit assert status.subeditor == self.subeditor assert status.subeditor_level == self.subeditor_level @@ -54,9 +60,9 @@ class TestStatus: assert status.premium_region == self.premium_region def test_equality(self, account, permissions, subscription): - a = Status(account, permissions) - b = Status(None, permissions, subscription, self.cache_limit) - c = Status(account, permissions) + a = Status(account, permissions, self.advertisement) + b = Status(None, permissions, '') + c = Status(account, permissions, self.advertisement) assert a != b assert hash(a) != hash(b) diff --git a/yandex_music/account/status.py b/yandex_music/account/status.py index 387fb6f..e5b5732 100644 --- a/yandex_music/account/status.py +++ b/yandex_music/account/status.py @@ -12,6 +12,7 @@ class Status(YandexMusicObject): Attributes: account (:obj:`yandex_music.Account`): Основная информация об аккаунте. permissions (:obj:`yandex_music.Permissions`): Информация о правах пользователя. + advertisement (:obj:`str`): Рекламное объявление. subscription (:obj:`yandex_music.Subscription`): Информация о подписках. cache_limit (:obj:`int`): Максимальное количество загруженных треков. subeditor (:obj:`bool`): Наличие статуса модератора проверки корректности информации. @@ -26,7 +27,8 @@ class Status(YandexMusicObject): Args: account (:obj:`yandex_music.Account`): Основная информация об аккаунте permissions (:obj:`yandex_music.Permissions`): Информация о правах пользователя. - subscription (:obj:`yandex_music.Subscription`): Информация о подписках. + advertisement (:obj:`str`): Рекламное объявление. + subscription (:obj:`yandex_music.Subscription`, optional): Информация о подписках. cache_limit (:obj:`int`, optional): Максимальное количество загруженных треков. subeditor (:obj:`bool`, optional): Наличие статуса модератора проверки корректности информации. subeditor_level (:obj:`int`, optional): Уровень статуса модератора. @@ -42,6 +44,7 @@ class Status(YandexMusicObject): def __init__(self, account: Optional['Account'], permissions: Optional['Permissions'], + advertisement: str, subscription: Optional['Subscription'] = None, cache_limit: Optional[int] = None, subeditor: Optional[bool] = None, @@ -57,6 +60,7 @@ class Status(YandexMusicObject): self.account = account self.permissions = permissions + self.advertisement = advertisement self.subscription = subscription self.cache_limit = cache_limit @@ -69,7 +73,7 @@ class Status(YandexMusicObject): self.premium_region = premium_region self.client = client - self._id_attrs = (self.account, self.permissions) + self._id_attrs = (self.account, self.permissions, self.advertisement) @classmethod def de_json(cls, data: dict, client: 'Client') -> Optional['Status']: