import datetime import logging import pandas import pytest from parameterized import parameterized from ui_automation_framework.utils import logger as cl import app.src.tests.decomission.api_init as api_init API = api_init.APIOverride() log = cl.Logger(logging.DEBUG) playlist_dates_apollo = "/applemusic/playlists/{id}/tracklisthistory/countrydates?datetimeFormat=MM%2Fdd%2Fyy%2C+h%3Amm+tt" playlist_dates_delphi = "/v3/public/track-positions/playlists/dates?playlist_id=apple_{id}&country_code={market}&sort_order=desc" def f(dat): colors = [] for i in dat: if i == "time is diff": c = "orange" elif i: c = "green" else: c = "red" colors.append(f"background-color: {c}") return colors @parameterized.expand( [ # 'pl.f4d106fed2bd41149aaacabb233eb5eb', # 'pl.0b36ea82865d4adeb9d1d62207aab172', # 'pl.1fa57a04cd794a8aa482a3492f26fbcd', # 'pl.2b0e6e332fdf4b7a91164da3162127b5', "pl.b7ae3e0a28e84c5c96c4284b6a6c70af", # 'pl.f4d106fed2bd41149aaacabb233eb5eb', # 'pl.063367c856704ee7951f906da3affc2e', ] ) @pytest.mark.skip() def test_playlist_dates(playlist_id): apollo_response = API.get_apollo_response(playlist_dates_apollo.format(id=playlist_id)) delphi_values_all, change_values, apollo_values, apollo_dates, markets = [], [], [], [], [] apollo_markets = apollo_response.keys() for market in apollo_markets: markets.extend([market] * len(apollo_response[market])) apollo_values.extend([datetime.datetime.strptime(str(a).split(", ")[0], "%m/%d/%y").strftime("%Y-%m-%d") for a in apollo_response[market]]) apollo_dates_market = [datetime.datetime.strptime(str(date).split(", ")[0], "%m/%d/%y").date() for date in apollo_response[market]] apollo_dates.extend(apollo_dates_market) delphi_response = API.get_delphi_response(playlist_dates_delphi.format(id=playlist_id, market=market))["items"] if len(delphi_response) > 0: delphi_values = delphi_response[0]["dsp_sync_date_time"] delphi_dates = [datetime.datetime.strptime(str(date).split("T")[0], "%Y-%m-%d").date() for date in delphi_values] for date in apollo_dates_market: apollo_value = apollo_values[apollo_dates_market.index(date)][:19] if date not in delphi_dates: delphi_value = 0 else: delphi_value = delphi_values[delphi_dates.index(date)].split("T")[0] delphi_values_all.append(delphi_value) if delphi_value == 0: change_values.append(False) elif delphi_value != apollo_value: change_values.append("time is diff") else: change_values.append(True) markets = [m.upper() for m in markets] df = pandas.DataFrame( { "market": markets, # 'dates': apollo_dates, "apollo": apollo_values, "delphi": delphi_values_all, "change": change_values, } ) df.style.apply(f, subset=["change"]).to_excel(f"decomission/apple_playlist_dates/playlist_dates_{playlist_id}_apollo_{len(apollo_values)}_delphi_{len([v for v in delphi_values_all if v !=0])}.xlsx", columns=["market", "apollo", "delphi", "change"], index=False)