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
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
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)
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)
def test_de_list_none(self, client): assert DownloadInfo.de_list({}, client) == []
def test_de_json_none(self, client): assert DownloadInfo.de_json({}, client) is None