# import collections # import logging # from operator import itemgetter # # import pandas # import pytest # from parameterized import parameterized # from ui_automation_framework.utils import logger as cl # from ui_automation_framework.utils import CoreConfig # # from app.api_client import ApiClient # # log = cl.Logger(logging.DEBUG) # # new_env = 'https://test-proxy.apollo.stream' # old_env = 'https://proxy.apollo.stream' # api_client_old = ApiClient(host_endpoint=old_env) # api_client_new = ApiClient(host_endpoint=new_env) # token_new = api_client_new.authorize() # prod_user = 'anna.sheremet@dataart.com' # # # # log.info('New token:' + token_new) # # def f(dat, c='red'): # colors = [] # for i in dat: # if i: # c = 'green' # elif i == '': # c = 'white' # else: # c = 'red' # colors.append(f'background-color: {c}') # return colors # # # tsa_keys = ['currentPosition', 'previousPosition', 'entryDate', 'entryPosition', 'peakLatestDate', 'peakPosition', 'latestPosition', 'latestUpdateDate', 'latestDate'] # tss_keys = tsa_keys + ['listType', 'timeWindow'] # tsa_keys_delphi = ['currentPosition', 'previousPosition', 'entryDate', 'entryPosition', 'peakDate', 'peakPosition', 'latestPosition', 'latestUpdateDate', 'latestDate'] # tss_keys_delphi = tsa_keys_delphi + ['listType', 'timeWindow'] # # request_url = 'Request URL' # # # @parameterized.expand( # [ # ('global', 'USSM12105970'), # ('au', 'USSM12105970'), # ] # ) # def test_spotify_charts_track_summary_e_1(market, isrc): # old_endpoint = f'/spotifycharts/tracksummary/{isrc}' # new_endpoint = f'/gate-api/charts/tracks/{isrc}/summary/?dsp=spotify' # # get old response # old_resp = api_client_old.get_response(endpoint=old_endpoint, user=prod_user, env=old_env, token=token_old)['body'] # old_resp_charts = old_resp[market] # log.info("Old response: " + str(old_resp_charts)) # new_resp = api_client_old.get_response(endpoint=new_endpoint, user=CoreConfig.USER_EMAIL, env=new_env)['body'] # if market == 'global': # new_resp_charts = new_resp['worldwide'] # else: # new_resp_charts = new_resp[market] # log.info("New response: " + str(new_resp_charts)) # # indexes_all = [request_url] + tss_keys * len(new_resp_charts) # #indexes_all = tss_keys * len(old_resp_charts) # log.info(f'indexes all: {indexes_all}') # old_endpoint_values = [] # new_endpoint_values = [] # diffs = [] # # old_endpoint_values.append(old_endpoint) # new_endpoint_values.append(new_endpoint) # diffs.append('') # # # for t in old_resp_charts: # # old_endpoint_values.extend([t[k] for k in tss_keys]) # # new_resp_charts = sorted(new_resp_charts, key=lambda d: (d['listType'], d['timeWindow'])) # old_resp_charts = sorted(old_resp_charts, key=lambda d: (d['listType'], d['timeWindow'])) # # for o in old_resp_charts: # old_endpoint_values.extend([o[k] for k in tss_keys]) # log.info("Old response with less data: " + str(old_endpoint_values)) # for t in new_resp_charts: # # new_endpoint_values.extend([t[k] for k in tss_keys_delphi]) # log.info("New response with data: " + str(new_endpoint_values)) # # for to, tn in zip(old_resp_charts, new_resp_charts): # diffs.extend([to[k] == tn[kd] for k, kd in zip(tss_keys, tss_keys_delphi)]) # # df = pandas.DataFrame({ # 'IS CORRECT': diffs, # 'OLD API VALUE': old_endpoint_values, # 'NEW API VALUE': new_endpoint_values, # }, # index=indexes_all) # # df.reset_index().style.apply(f, subset=['IS CORRECT']) \ # .to_excel(f'spotify_charts_track_summary_{market}.xlsx') # # # @parameterized.expand( # [ # ('global', 'USSM12103949'), # ('au', 'USSM12103949'), # ] # ) # def test_applemusic_charts_track_summary_e_2(market, isrc): # old_endpoint = f'/applemusic/charts/tracksummary?isrc={isrc}' # new_endpoint = f'/gate-api/charts/tracks/{isrc}/summary/?dsp=apple' # # get old response # old_resp = api_client_old.get_response(endpoint=old_endpoint, user=prod_user, env=old_env, token=token_old)['body'] # old_resp_charts = old_resp[market] # log.info("Old response: " + str(old_resp_charts)) # new_resp = api_client_old.get_response(endpoint=new_endpoint, user=CoreConfig.USER_EMAIL, env=new_env)['body'] # if market == 'global': # new_resp_charts = new_resp['worldwide'] # else: # new_resp_charts = new_resp[market] # log.info("New response: " + str(new_resp_charts)) # # indexes_all = [request_url] + tsa_keys * len(new_resp_charts) # #indexes_all = tsa_keys * len(old_resp_charts) # log.info(f'indexes all: {indexes_all}') # old_endpoint_values = [] # new_endpoint_values = [] # diffs = [] # # old_endpoint_values.append(old_endpoint) # new_endpoint_values.append(new_endpoint) # diffs.append('') # # for to, tn in zip(old_resp_charts, new_resp_charts): # old_endpoint_values.extend([to[k] for k in tsa_keys]) # log.info("Old response with less data: " + str(old_endpoint_values)) # new_endpoint_values.extend([tn[k] for k in tsa_keys_delphi]) # log.info("New response with data: " + str(new_endpoint_values)) # diffs.extend([to[k] == tn[kd] for k, kd in zip(tsa_keys, tsa_keys_delphi)]) # # df = pandas.DataFrame({ # 'IS CORRECT': diffs, # 'OLD API VALUE': old_endpoint_values, # 'NEW API VALUE': new_endpoint_values, # }, # index=indexes_all) # # df.reset_index().style.apply(f, subset=['IS CORRECT']) \ # .to_excel(f'applemusic_charts_track_summary_{market}.xlsx')