def test_ytm_analyze_title_artist_duplicate_library_library(self): library = { "songs": [{ "videoId": "a", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ]}, { "videoId": "b", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ] }], "playlists": [] } issues = {"library": {"totalDuplicateCount": 2, "titleArtistDuplicates": [{ "type": DuplicateIssueType.TITLE_ARTIST_DUPLICATE, "videoId": "a", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ], "playlist": None, "duplicateVideoId": "b", "duplicateTitle": "Heat Waves", "duplicateArtists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ], "duplicatePlaylist": None, }, { "type": DuplicateIssueType.TITLE_ARTIST_DUPLICATE, "videoId": "b", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ], "playlist": None, "duplicateVideoId": "a", "duplicateTitle": "Heat Waves", "duplicateArtists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ], "duplicatePlaylist": None, }], "simpleTitleDuplicates": [], "idDuplicates": [], "titleDuplicates": []}, "playlists": {"totalDuplicateCount": 0, "idDuplicates": [], "simpleTitleDuplicates": [], "titleArtistDuplicates": [], "titleDuplicates": []}} analysis = {"duplicates": issues} self.assertEqual(ytm_analyze(library), analysis)
async def read_ytm_library(body: YtmLibRequest): library = get_library(body.cookie, body.x_goog_user) return { 'library': library, 'analysis': ytm_analyze(library, body.excludeAllPlaylist, body.excludeForeignPlaylists, body.username) }
def test_ytm_analyze_id_duplicate_paylist_playlists(self): library = { "songs": [], "playlists": [{ "id": "d", "title": "Best", "tracks": [{ "videoId": "a", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ] }] }, { "id": "e", "title": "f", "tracks": [{ "videoId": "a", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ] }] }] } issues = {"library": {"totalDuplicateCount": 0, "idDuplicates": [], "simpleTitleDuplicates": [], "titleArtistDuplicates": [], "titleDuplicates": []}, "playlists": {"totalDuplicateCount": 1, "idDuplicates": [{ "type": DuplicateIssueType.ID_DUPLICATE, "videoId": "a", "title": "Heat Waves", "artists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ], "playlist": {"id": "e", "title": "f"}, "duplicateVideoId": "a", "duplicateTitle": "Heat Waves", "duplicateArtists": [ {"name": "Glass animals", "id": "b"}, {"name": "iann dior", "id": "c"} ], "duplicatePlaylist": {"id": "d", "title": "Best"}, }], "simpleTitleDuplicates": [], "titleArtistDuplicates": [], "titleDuplicates": []}} analysis = {"duplicates": issues} self.assertEqual(ytm_analyze(library), analysis)