Example #1
0
    def test_equality(self):
        a = DownloadInfo(self.codec, self.bitrate_in_kbps, self.gain, self.preview, self.download_info_url, self.direct)
        b = DownloadInfo(self.codec, 128, self.gain, True, self.download_info_url, True)
        c = DownloadInfo(self.codec, self.bitrate_in_kbps, self.gain, self.preview, self.download_info_url, self.direct)

        assert a != b
        assert hash(a) != hash(b)
        assert a is not b

        assert a == c
Example #2
0
def download_info():
    return DownloadInfo(
        TestDownloadInfo.codec,
        TestDownloadInfo.bitrate_in_kbps,
        TestDownloadInfo.gain,
        TestDownloadInfo.preview,
        TestDownloadInfo.download_info_url,
        TestDownloadInfo.direct,
    )
    def test_de_json_all(self, client):
        json_dict = {'codec': self.codec, 'bitrate_in_kbps': self.bitrate_in_kbps, 'gain': self.gain,
                     'preview': self.preview, 'download_info_url': self.download_info_url}
        download_info = DownloadInfo.de_json(json_dict, client)

        assert download_info.codec == self.codec
        assert download_info.bitrate_in_kbps == self.bitrate_in_kbps
        assert download_info.gain == self.gain
        assert download_info.preview == self.preview
        assert download_info.download_info_url == self.download_info_url
Example #4
0
    def tracks_download_info(self,
                             track_id: str or int,
                             get_direct_links=False,
                             timeout=None,
                             *args,
                             **kwargs):
        url = f'{self.base_url}/tracks/{track_id}/download-info'

        result = self._request.get(url, timeout=timeout, *args, **kwargs)

        return DownloadInfo.de_list(result, self, get_direct_links)
Example #5
0
    def tracks_download_info(self, track_id: str or int, get_direct_links: bool = False, timeout=None, *args, **kwargs):
        """Получение информации о доступных вариантах загрузки трека.

        Args:
            track_id (:obj:`str` | :obj:`list` из :obj:`str`): Уникальный идентификатор трека или треков.
            get_direct_links (:obj:`bool`, optional): Получить ли при вызове метода прямую ссылку на загрузку.
            timeout (:obj:`int` | :obj:`float`, optional): Если это значение указано, используется как время ожидания
                ответа от сервера вместо указанного при создании пула.
            **kwargs (:obj:`dict`, optional): Произвольные аргументы (будут переданы в запрос).

        Returns:
            :obj:`list` из :obj:`yandex_music.DownloadInfo`: Список объектов класса :class:`yandex_music.DownloadInfo`
            представляющих варианты загрузки трека, иначе :obj:`None`.

        Raises:
            :class:`yandex_music.YandexMusicError`
        """

        url = f'{self.base_url}/tracks/{track_id}/download-info'

        result = self._request.get(url, timeout=timeout, *args, **kwargs)

        return DownloadInfo.de_list(result, self, get_direct_links)
Example #6
0
 def test_de_list_none(self, client):
     assert DownloadInfo.de_list({}, client) == []
Example #7
0
 def test_de_json_none(self, client):
     assert DownloadInfo.de_json({}, client) is None