def test_equality(self, status): a = PromoCodeStatus(self.status, self.status_desc, status) b = PromoCodeStatus(self.status, '', status) c = PromoCodeStatus(self.status, self.status_desc, status) assert a != b assert hash(a) != hash(b) assert a is not b assert a == c
def test_de_json_all(self, client, status): json_dict = { 'status': self.status, 'status_desc': self.status_desc, 'account_status': status.to_dict() } promo_code_status = PromoCodeStatus.de_json(json_dict, client) assert promo_code_status.status == self.status assert promo_code_status.status_desc == self.status_desc assert promo_code_status.account_status == status
def consume_promo_code(self, code: str, language='en', timeout=None, *args, **kwargs): url = f'{self.base_url}/account/consume-promo-code' result = self._request.post(url, { 'code': code, 'language': language }, timeout=timeout, *args, **kwargs) return PromoCodeStatus.de_json(result, self)
def consume_promo_code(self, code: str, language: str = 'en', timeout=None, *args, **kwargs): """Активация промо-кода. Args: code (:obj:`str`): Промо-код. language (:obj:`str`, optional): Язык ответа API в ISO 639-1. timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания ответа от сервера вместо указанного при создании пула. **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос). Returns: :obj:`yandex_music.PromoCodeStatus`: Объекта класса :class:`yandex_music.PromoCodeStatus` представляющий информацию об активации промо-кода, иначе :obj:`None`. Raises: :class:`yandex_music.YandexMusicError` """ url = f'{self.base_url}/account/consume-promo-code' result = self._request.post(url, {'code': code, 'language': language}, timeout=timeout, *args, **kwargs) return PromoCodeStatus.de_json(result, self)
def promo_code_status(status): return PromoCodeStatus(TestPromoCodeStatus.status, TestPromoCodeStatus.status_desc, status)
def test_de_json_none(self, client): assert PromoCodeStatus.de_json({}, client) is None