def _call_parse_valid_deezer_playlist(self, playlist): playlist_name, songs = parse_deezer_playlist(playlist) self.assertEqual(playlist_name, "test-playlist") self.assertIsInstance(songs, list) self.assertEqual(len(songs), 2) for song in songs: song_keys = list(song.keys()) for key in known_song_keys: self.assertIn(key, song_keys) self.assertEqual(songs[0]["SNG_ID"], "113951680") self.assertEqual(songs[0]["ART_NAME"], 'Fredrika Stahl') self.assertEqual(songs[0]["SNG_TITLE"], 'Make a Change') self.assertEqual(songs[0]["MD5_ORIGIN"], '57250623592ef44c8caeead79917f7e5')
def _call_parse_valid_deezer_playlist(self, playlist): playlist_name, songs = parse_deezer_playlist(playlist) self.assertEqual(playlist_name, "Gitarre") self.assertIsInstance(songs, list) self.assertEqual(len(songs), 13) for song in songs: song_keys = list(song.keys()) for key in known_song_keys: self.assertIn(key, song_keys) self.assertEqual(songs[0]["SNG_ID"], "725274") self.assertEqual(songs[0]["ART_NAME"], "Red Hot Chili Peppers") self.assertEqual(songs[0]["SNG_TITLE"], "Californication") self.assertEqual(songs[0]["MD5_ORIGIN"], "0f951cee0984919d5453cad7e763cc04")
def download_deezer_playlist_and_queue_and_zip(playlist_id, add_to_playlist, create_zip): playlist_name, songs = parse_deezer_playlist(playlist_id) songs_absolute_location = [] for i, song in enumerate(songs): report_progress(i, len(songs)) absolute_filename = download_song_and_get_absolute_filename( TYPE_PLAYLIST, song, playlist_name) songs_absolute_location.append(absolute_filename) update_mpd_db(songs_absolute_location, add_to_playlist) songs_with_m3u8_file = create_m3u8_file(songs_absolute_location) if create_zip: return [create_zip_file(songs_with_m3u8_file)] return make_song_paths_relative_to_mpd_root(songs_absolute_location)
def test_parse_invalid_deezer_playlist_with_url(self): invalid_playlist_url = "https://www.heise.de" with self.assertRaises(DeezerApiException): playlist_name, songs = parse_deezer_playlist(invalid_playlist_url)
def test_parse_invalid_input_for_deezer_playlist_with_id(self): invalid_playlist_id = "!\"§$%&/((;-';k(()=+ü\\?" with self.assertRaises(DeezerApiException): playlist_name, songs = parse_deezer_playlist(invalid_playlist_id)
def test_parse_invalid_deezer_playlist_with_id(self): invalid_playlist_id = "999999999999999999999999999" with self.assertRaises(DeezerApiException): playlist_name, songs = parse_deezer_playlist(invalid_playlist_id)