Добавлено поле advertisement классу Status

このコミットが含まれているのは:
Il`ya Semyonov 2020-04-16 22:21:26 +03:00
コミット 2758197c83
3個のファイルの変更20行の追加10行の削除

ファイルの表示

@ -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')

ファイルの表示

@ -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)

ファイルの表示

@ -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']: