Merge pull request #200 from MarshalX/bugfix/issue-182

Поле product_id класса AutoRenewable теперь опционально
このコミットが含まれているのは:
Il'ya 2020-01-26 03:51:57 +03:00 committed by GitHub
コミット d6da8f63ce
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: 4AEE18F83AFDEB23
3個のファイルの変更11行の追加11行の削除

ファイルの表示

@ -328,7 +328,7 @@ def permissions():
@pytest.fixture(scope='session')
def auto_renewable(product):
return AutoRenewable(TestAutoRenewable.expires, TestAutoRenewable.vendor, TestAutoRenewable.vendor_help_url,
TestAutoRenewable.product_id, product, TestAutoRenewable.finished, TestAutoRenewable.order_id)
product, TestAutoRenewable.finished, TestAutoRenewable.product_id, TestAutoRenewable.order_id)
@pytest.fixture(scope='session')

ファイルの表示

@ -26,13 +26,12 @@ class TestAutoRenewable:
def test_de_json_required(self, client, product):
json_dict = {'expires': self.expires, 'vendor': self.vendor, 'vendor_help_url': self.vendor_help_url,
'product_id': self.product_id, 'product': product.to_dict(), 'finished': self.finished}
'product': product.to_dict(), 'finished': self.finished}
auto_renewable = AutoRenewable.de_json(json_dict, client)
assert auto_renewable.expires == self.expires
assert auto_renewable.vendor == self.vendor
assert auto_renewable.vendor_help_url == self.vendor_help_url
assert auto_renewable.product_id == self.product_id
assert auto_renewable.product == product
assert auto_renewable.finished == self.finished
@ -51,9 +50,9 @@ class TestAutoRenewable:
assert auto_renewable.order_id == self.order_id
def test_equality(self, product):
a = AutoRenewable(self.expires, self.vendor, self.vendor_help_url, self.product_id, product, self.finished)
b = AutoRenewable(self.expires, '', self.vendor_help_url, '', product, self.finished)
c = AutoRenewable(self.expires, self.vendor, self.vendor_help_url, self.product_id, product, self.finished)
a = AutoRenewable(self.expires, self.vendor, self.vendor_help_url, product, self.finished)
b = AutoRenewable(self.expires, '', self.vendor_help_url, None, self.finished)
c = AutoRenewable(self.expires, self.vendor, self.vendor_help_url, product, self.finished)
assert a != b
assert hash(a) != hash(b)

ファイルの表示

@ -25,9 +25,10 @@ class AutoRenewable(YandexMusicObject):
vendor (:obj:`str`): Продавец.
vendor_help_url (:obj:`str`): Ссылка на страницу помощи продавца.
product_id (:obj:`str`): Уникальный идентификатор продукта.
product (:obj:`yandex_music.Product`): Объект класса :class:`yandex_music.Product` представляющий продукт.
order_id (:obj:`int`): Уникальный идентификатор заказа.
finished (:obj:`bool`): Завершенность автопродления.
product (:obj:`yandex_music.Product`, optional): Объект класса :class:`yandex_music.Product` представляющий
продукт.
order_id (:obj:`int`): Уникальный идентификатор заказа.
client (:obj:`yandex_music.Client`, optional): Объект класса :class:`yandex_music.Client` представляющий клиент
Yandex Music.
**kwargs: Произвольные ключевые аргументы полученные от API.
@ -37,23 +38,23 @@ class AutoRenewable(YandexMusicObject):
expires: str,
vendor: str,
vendor_help_url: str,
product_id: str,
product: Optional['Product'],
finished: bool,
product_id: Optional[str] = None,
order_id: Optional[int] = None,
client: Optional['Client'] = None,
**kwargs) -> None:
self.expires = expires
self.vendor = vendor
self.vendor_help_url = vendor_help_url
self.product_id = product_id
self.product = product
self.finished = finished
self.product_id = product_id
self.order_id = order_id
self.client = client
self._id_attrs = (self.expires, self.vendor, self.vendor_help_url, self.product_id, self.product, self.finished)
self._id_attrs = (self.expires, self.vendor, self.vendor_help_url, self.product, self.finished)
@classmethod
def de_json(cls, data: dict, client: 'Client') -> Optional['AutoRenewable']: