import logging import pandas from jsonbender import S as GetField from parameterized import parameterized from ui_automation_framework.utils import logger as cl import app.src.tests.decomission.api_init as api_init from app.src.tests.decomission.compare_helper import format_color, generate_provider, get_field_with_diff_the_same, merge_arrays, transform_json API = api_init.APIOverride() log = cl.Logger(logging.DEBUG) delphi_to_delphi_curr_keys = { # playlist object "playlist_id": GetField("playlist_id"), "name": GetField("playlist", "name"), "track_count": GetField("playlist", "num_tracks"), "is_personalized": GetField("playlist", "is_personalised"), "country_code": GetField("playlist", "country_code"), } delphi_limit = 10000 delphi_current_playlist = "/v3/public/track-positions/playlists?dsp=spotify&isrc={0}&limit={1}&include=playlists" delphi_prev_playlist = "/v3/public/track-positions/previous/playlists?isrc={0}&dsp=spotify&include=playlists&limit={1}" @parameterized.expand([("USRC12204647"), ("USSM12200612"), ("USSM12209777"), ("USJI10800160"), ("GBARL1300107"), ("GBARL1300522"), ("USSM12300722"), ("USSM10804556"), ("USSM12210918")]) # as it was # floawers def test_current_vs_prev_playlists_spotify(isrc): delphi_current_response = API.get_delphi_response(delphi_current_playlist.format(isrc, delphi_limit)) delphi_current_transformed_response = transform_json(delphi_to_delphi_curr_keys, delphi_current_response["items"]) delphi_prev_response = API.get_delphi_response(delphi_prev_playlist.format(isrc, delphi_limit)) delphi_prev_transformed_response = transform_json(delphi_to_delphi_curr_keys, delphi_prev_response["items"]) aggregated_matrix = merge_arrays(delphi_current_transformed_response, delphi_prev_transformed_response, "playlist_id") aggregated_matrix_new = list(aggregated_matrix) for item in aggregated_matrix: if not aggregated_matrix[item][0] or not aggregated_matrix[item][1]: aggregated_matrix_new.pop(aggregated_matrix_new.index(item)) index_for_all_fields = list(range(1, len(generate_provider(aggregated_matrix_new)) + 1)) subset_to_mark = range(3, len(aggregated_matrix_new) * 5, 5) pandas.DataFrame( {"provider": generate_provider(aggregated_matrix_new), "playlist_id": get_field_with_diff_the_same("playlist_id", aggregated_matrix_new)}, index=index_for_all_fields, ).style.apply( format_color, subset=(subset_to_mark, slice(None)) ).to_excel(f"decomission/spotify_track_current_playlists/{isrc}_spotify_cur_vs_prev_playlist_total_apollo.xlsx")