import unittest import allure import pytest from assertpy import assert_that from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig, CoreConfig from app.src.pages.global_track_priorities_page import GlobalTrackPrioritiesPage 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): melbourne = "Melbourne" @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.topChartsPage = TopChartsPage(self.driver) self.trackPage = TrackPage(self.driver) self.gtp = GlobalTrackPrioritiesPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-7628") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-7448][Shazam] Deeplinking verification. STEPS 1-7, 10-11") @allure.description("DL on Shazam Chart STEPS 1-7, 10-11") def test_top_shazam_tab_deep_linking_steps_1_7(self): self.loginPage.login_with_worker() self.trackPage.select_market(AppConfig.get("market")["global"]["name"]) self.topChartsPage.open_top_chart_page() # step 1 self.topChartsPage.switch_tab(self.topChartsPage.SHAZAM_TYPE) date_ui_step1 = self.topChartsPage.get_shazam_date_ui() self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, self.topChartsPage.market: "_gl", self.topChartsPage.date: date_ui_step1}) # step 2 self.trackPage.change_param_in_url_new(self.topChartsPage.date, "2022-01-16") self.topChartsPage.wait_for_table_load() self.trackPage.refresh() date_ui_step2 = self.topChartsPage.get_shazam_date_ui() assert_that(date_ui_step2).is_equal_to("2022-01-16") # step 3 self.topChartsPage.select_shazam_market(AppConfig.get("market")["australia"]["name"]) self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, self.topChartsPage.market: AppConfig.get("market")["australia"]["market"], self.topChartsPage.city: "all", self.topChartsPage.date: date_ui_step2}) # step 4 self.trackPage.refresh() date_ui_step_4 = self.topChartsPage.get_shazam_date_ui() market_ui = self.topChartsPage.get_shazam_market() assert_that(date_ui_step2).is_equal_to(date_ui_step_4) assert_that(market_ui).is_equal_to(AppConfig.get("market")["australia"]["name"]) # step 5 self.topChartsPage.select_shazam_city(self.melbourne) self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, self.topChartsPage.market: AppConfig.get("market")["australia"]["market"], self.topChartsPage.city: 594, self.topChartsPage.date: date_ui_step2}) # step 6 self.topChartsPage.refresh() self.topChartsPage.wait_for_table_load() url_step_6 = self.topChartsPage.get_url() date_ui_step_6 = self.topChartsPage.get_shazam_date_ui() market_ui = self.topChartsPage.get_shazam_market() self.trackPage.verify_params_in_url({self.topChartsPage.city: 594}) assert_that(date_ui_step2).is_equal_to(date_ui_step_6) assert_that(market_ui).is_equal_to(AppConfig.get("market")["australia"]["name"]) # step 7 self.topChartsPage.shazam_filter_by("#$%^") assert_that(self.topChartsPage.get_url()).is_equal_to(url_step_6) # step 10 self.trackPage.select_market(AppConfig.get("market")["us"]["name"]) self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, self.topChartsPage.market: AppConfig.get("market")["us"]["market"], self.topChartsPage.city: "all"}) date_ui_step10 = self.topChartsPage.get_shazam_date_ui() assert_that(date_ui_step10).is_not_equal_to(date_ui_step2) # step 11 self.trackPage.open_url(f"{CoreConfig.ENV_BASE_URL}/top-carts?tab=shazam") self.gtp.verify_404_page_present() # @allure.story("AP-7628") # @allure.severity(allure.severity_level.NORMAL) # @allure.title("[AP-7448][Shazam] Deeplinking verification. STEPS 8-9") # @allure.description("DL on Shazam Chart STEPS 8-9") # def test_top_shazam_tab_deep_linking_steps_8_9(self): # self.loginPage.login_with_worker() # self.trackPage.select_market(AppConfig.get('market')['global']['name']) # self.topChartsPage.open_top_chart_page() # self.topChartsPage.switch_tab(self.topChartsPage.SHAZAM_TYPE) # date_ui_step1 = self.topChartsPage.get_shazam_date_ui() # self.trackPage.change_param_in_url_new(self.topChartsPage.date, '2022-01-16') # date_ui_step2 = self.topChartsPage.get_shazam_date_ui() # self.topChartsPage.wait_for_table_load() # self.trackPage.refresh() # self.topChartsPage.select_shazam_market(AppConfig.get('market')['australia']['name']) # self.trackPage.refresh() # self.topChartsPage.select_shazam_city(self.melbourne) # # step 8 # self.trackPage.go_back() # self.topChartsPage.wait_for_table_load() # self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, # self.topChartsPage.market: AppConfig.get('market')['australia']['market'], # self.topChartsPage.city: 'all', # self.topChartsPage.date: date_ui_step2}) # self.trackPage.go_back() # self.topChartsPage.wait_for_table_load() # self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, # self.topChartsPage.market: '_gl', # self.topChartsPage.date: date_ui_step2}) # self.trackPage.go_back() # self.topChartsPage.wait_for_table_load() # self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, # self.topChartsPage.market: '_gl', # self.topChartsPage.date: date_ui_step1}) # # step 9 # self.trackPage.go_forward() # self.topChartsPage.wait_for_table_load() # self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, # self.topChartsPage.market: '_gl', # self.topChartsPage.date: date_ui_step1}) # self.trackPage.go_forward() # self.topChartsPage.wait_for_table_load() # self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, # self.topChartsPage.market: AppConfig.get('market')['australia']['market'], # self.topChartsPage.date: date_ui_step2}) # self.trackPage.go_forward() # self.topChartsPage.wait_for_table_load() # self.trackPage.verify_params_in_url({self.topChartsPage.tab: self.topChartsPage.SHAZAM_TYPE, # self.topChartsPage.market: AppConfig.get('market')['australia']['market'], # self.topChartsPage.city: 594, # self.topChartsPage.date: date_ui_step2}) # NOT AUTOMATED - STEPS 7(partially - not implemented SONY/NON SONY), 8-9