示例#1
0
    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
示例#2
0
    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
示例#3
0
    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)
示例#4
0
    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)
示例#5
0
def promo_code_status(status):
    return PromoCodeStatus(TestPromoCodeStatus.status,
                           TestPromoCodeStatus.status_desc, status)
示例#6
0
 def test_de_json_none(self, client):
     assert PromoCodeStatus.de_json({}, client) is None