# import unittest # # import allure # import pytest # from ui_automation_framework.core import TestStatus # from ui_automation_framework.utils import AppConfig, CoreConfig # # from app.api_client import ApiClient # from app.src.pages.login_page import LoginPage # from app.src.pages.top_charts_page import TopChartsPage # from app.src.pages.track_page import TrackPage # # # @pytest.mark.usefixtures("set_up", "one_time_set_up") # class TopChartsPageTest(unittest.TestCase): # MARKET = "Chile" # TRACK_ID_1 = "3WG3goVRrVz0maPXCXdpCW" # TRACK_ID_2 = "3NJRgHeqBfHW8EI7ZYpg0z" # TRACK_NAME = "Estrechez De Corazón" # # @pytest.fixture(autouse=True) # def classSetup(self): # self.loginPage = LoginPage(self.driver) # self.topChartsPage = TopChartsPage(self.driver) # self.trackPage = TrackPage(self.driver) # self.api_client = ApiClient() # self.ts = TestStatus(self.driver) # # @allure.story("AP-2659") # @allure.severity(allure.severity_level.NORMAL) # @allure.title("Spotify Сhart with duplicated tracks. Chart changes and position trend calculation") # @allure.description( # """TC verifies position trend calculation and chart changes (entries and exits) for Spotify Daily chart with two tracks that have the same ISRC but different ID (duplications).""" # ) # def test_spotify_duplicate_isrc(self): # user = self.loginPage.get_user_email_with_worker() # token = self.api_client.authorize(user=user) # self.loginPage.login_with_worker() # self.topChartsPage.open_top_chart_page() # self.topChartsPage.wait_for_table_load() # self.topChartsPage.select_market(self.MARKET) # self.topChartsPage.wait_for_table_load() # self.topChartsPage.switch_tab(self.topChartsPage.SPOTIFY_TYPE) # # self.topChartsPage.open_spotify_chart_for_date("10/25/19") # is_table_empty = self.topChartsPage.table_is_empty() # self.ts.markFinal(not is_table_empty, "Step 1: Succesfully switched the 10/25/19 date") # # self.topChartsPage.change_filter_value(self.TRACK_NAME, self.topChartsPage.SPOTIFY_TYPE) # track_present_on_position = self.topChartsPage.check_track_for_position( # self.TRACK_ID_1, 170, self.topChartsPage.UP_MORE_5, 11 # ) # check for positions # self.ts.markFinal(track_present_on_position, "Step 2: Track #1 on its 170 position") # # self.topChartsPage.open_spotify_chart_for_date("10/26/19") # is_table_empty = self.topChartsPage.table_is_empty() # self.ts.markFinal(not is_table_empty, "Step 3: Succesfully switched the 10/26/19 date") # # self.topChartsPage.change_filter_value(self.TRACK_NAME, self.topChartsPage.SPOTIFY_TYPE) # track_present_on_position = self.topChartsPage.check_track_for_position( # self.TRACK_ID_1, 105, self.topChartsPage.UP_MORE_5, 65 # ) # check for positions # self.ts.markFinal(track_present_on_position, "Step 4.1: Track #1 on its 105 position") # # self.topChartsPage.change_filter_value(self.TRACK_NAME, self.topChartsPage.SPOTIFY_TYPE) # track_present_on_position = self.topChartsPage.check_track_for_position( # self.TRACK_ID_2, 151, self.topChartsPage.ZERO, 0 # ) # check for positions # self.ts.markFinal(track_present_on_position, "Step 4.2: Track #2 on its 151 position") # # # check track is not in entry # is_present_in_entries = self.topChartsPage.find_in_entries( # self.TRACK_ID_1, self.topChartsPage.SPOTIFY_TYPE, "CL", "10/26/19" # ) # self.ts.markFinal(not is_present_in_entries, "Step 5: Track is not in entry") # # self.topChartsPage.open_spotify_chart_for_date("10/28/19") # is_table_empty = self.topChartsPage.table_is_empty() # self.ts.markFinal(not is_table_empty, "Step 9: Succesfully switched the 10/28/19 date") # # # Verify whether removed track is in the list of exits # # Just removed duplicate isn’t present in the list of exits. # is_present_in_exists = self.topChartsPage.find_in_exists( # self.TRACK_ID_2, self.topChartsPage.SPOTIFY_TYPE, "cl", "10/28/19" # ) # self.ts.markFinal(not is_present_in_exists, "Step 10: Track are not in exists") # # self.topChartsPage.change_filter_value(self.TRACK_NAME, self.topChartsPage.SPOTIFY_TYPE) # track_present_on_position = self.topChartsPage.check_track_for_position( # self.TRACK_ID_1, 143, self.topChartsPage.DOWN_MORE_5, 33 # ) # check for positions # self.ts.markFinal(track_present_on_position, "Step 11: Track #1 is on 143 position") # # self.topChartsPage.open_spotify_chart_for_date("10/27/19") # is_table_empty = self.topChartsPage.table_is_empty() # self.ts.markFinal(not is_table_empty, "Step 6: Succesfully switched the 10/27/19 date") # # self.topChartsPage.change_filter_value(self.TRACK_NAME, self.topChartsPage.SPOTIFY_TYPE) # track_present_on_position = self.topChartsPage.check_track_for_position( # self.TRACK_ID_1, 110, self.topChartsPage.DOWN_MORE_5, 5 # ) # check for positions # self.ts.markFinal(track_present_on_position, "Step 7.1: Track #1 on its 105 position") # # self.topChartsPage.change_filter_value(self.TRACK_NAME, self.topChartsPage.SPOTIFY_TYPE) # track_present_on_position = self.topChartsPage.check_track_for_position( # self.TRACK_ID_2, 176, self.topChartsPage.ZERO, 0 # ) # check for positions # self.ts.markFinal(track_present_on_position, "Step 7.2: Track #2 on its 151 position") # # csv_tracks = self.topChartsPage.export_file(market=AppConfig.get("market")["chile"], token=token)[ # "Track Name" # ].to_list() # self.ts.markFinal( # self.TRACK_NAME == csv_tracks[109] == csv_tracks[175], # "track is present in csv: {}, {}".format(csv_tracks[109], csv_tracks[175]), # ) # test is no longer relevant due to Delphi logic, skip until fixes are available