import unittest import allure import pytest from assertpy import assert_that from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from app.src.pages.login_page import LoginPage from app.src.pages.track_page import TrackPage @pytest.mark.usefixtures("set_up", "one_time_set_up") class DeepLinkingTrackPageTest(unittest.TestCase): @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.tp = TrackPage(self.driver) self.ts = TestStatus(self.driver) @allure.story("AP-6681") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6504] [Track Page> Details> TikTok] Deeplinking verification. STEPS 1-11, 14") @allure.description("""DL for TikTok tab in Details section on Track Page. STEPS 1-11, 14""") def test_tiktok_dl_steps_1_11(self): self.loginPage.login_with_worker() self.tp.open_spotify_track_page_with_market_id(track_id=AppConfig.get("track50")["id"], market_id=AppConfig.get("market")["us"]["url"]) # steps 1, 14 self.tp.td_switch_to_tiktok_tab() self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_tab: 6, self.tp.str_gr_tab: 6}) step_1_url = self.tp.get_url() # step 2 self.tp.td_filter_by_creations_tiktok([self.tp.pgc]) self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_tc: self.tp.pgc}) step_2_url = self.tp.get_url() # step 3 self.tp.go_back() self.tp.refresh() self.tp.td_tiktok_verify_content_type(self.tp.TIKTOK_ALL_CONTENTS) self.tp.verify_params_not_in_url([self.tp.tr_det_tc]) assert_that(step_1_url).is_equal_to(self.tp.get_url()) # step 4 self.tp.go_forward() self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_tc: self.tp.pgc}) self.tp.td_tiktok_verify_content_type(self.tp.TIKTOK_PREMIUM_GENERATED) assert_that(step_2_url).is_equal_to(self.tp.get_url()) # step 5 self.tp.td_filter_by_creations_tiktok([self.tp.ugc]) self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_tc: self.tp.ugc}) # step 6 self.tp.td_filter_by_creations_tiktok([self.tp.ugc, self.tp.pgc]) self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_tc: ",".join([self.tp.ugc, self.tp.pgc])}) # step 7 self.tp.go_back() self.tp.refresh() self.tp.td_tiktok_verify_content_type(self.tp.TIKTOK_USER_GENERATED) self.tp.verify_params_in_url({self.tp.tr_det_tc: self.tp.ugc}) # step 8 self.tp.go_back() self.tp.refresh() self.tp.td_tiktok_verify_content_type(self.tp.TIKTOK_PREMIUM_GENERATED) self.tp.verify_params_in_url({self.tp.tr_det_tc: self.tp.pgc}) # step 9 self.tp.market_dd_choose_few_countries([self.tp.all_markets], "td_tiktok") self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_country: 0}) # step 10 self.tp.market_dd_choose_few_countries([AppConfig.get("market")["canada"]["name"]], "td_tiktok") self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_country: "ca"}) # step 11 self.tp.market_dd_choose_few_countries([AppConfig.get("market")["canada"]["name"], AppConfig.get("market")["us"]["name"]], "td_tiktok") self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_country: "ca,us"}) @parameterized.expand([("Middle East", "rme"), ("Africa", "raf"), ("CIS", "rcs"), ("Asia", "ras"), ("Europe", "reu"), ("Latin-Iberia", "ril"), ("Oceania", "roc"), ("UK", "ruk"), ("Sony Offices", "rso"), ("Ex–US Only", "reo"), ("North America", "rna")]) @allure.story("AP-6681") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6504] [Track Page> Details> TikTok] Deeplinking verification. STEPS 12") @allure.description("""DL for TikTok tab in Details section on Track Page. STEPS 12""") def test_tiktok_dl_steps_12(self, region, r_url): self.loginPage.login_with_worker() self.tp.open_spotify_track_page_with_market_id(track_id=AppConfig.get("track50")["id"], market_id=AppConfig.get("market")["us"]["url"]) # steps 12, 14 self.tp.td_switch_to_tiktok_tab() self.tp.stream_and_source_choose_region(region, "td_tiktok") self.tp.refresh() self.tp.verify_params_in_url({self.tp.tr_det_region: r_url}) self.tp.verify_params_not_in_url([self.tp.tr_det_country]) @allure.story("AP-6681") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6504] [Track Page> Details> TikTok] Deeplinking verification. STEPS 13, 17") @allure.description("""DL for TikTok tab in Details section on Track Page. STEPS 13, 17""") def test_tiktok_dl_steps_13_17(self): self.loginPage.login_with_worker() self.tp.open_spotify_track_page_with_market_id(track_id=AppConfig.get("track50")["id"], market_id=AppConfig.get("market")["us"]["url"]) # step 13 self.tp.td_switch_to_tiktok_tab() self.tp.stream_and_source_choose_region("Oceania", "td_tiktok") self.tp.stream_and_source_deselect_countries(market_name=[AppConfig.get("market")["australia"]["name"]], dd="td_tiktok") self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.is_graph_period_displayed() self.tp.verify_params_not_in_url([self.tp.tr_det_region]) self.tp.verify_params_in_url({self.tp.tr_det_country: "fm,nz"}) # step 17 self.tp.td_filter_by_creations_tiktok([self.tp.pgc]) self.tp.select_market(AppConfig.get("market")["australia"]["name"]) self.tp.is_tab_selected("track-performance-streams") @allure.story("AP-6681") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6504] [Track Page> Details> TikTok] Deeplinking verification. STEPS 15-16") @allure.description("""DL for TikTok tab in Details section on Track Page. STEPS 15-16""") def test_tiktok_dl_steps_15_16(self): self.loginPage.login_with_worker() self.tp.open_spotify_track_page_with_market_id(track_id=AppConfig.get("track50")["id"], market_id=AppConfig.get("market")["us"]["url"]) default_url = self.tp.get_url() # steps 15, 16 # tr_det_tc self.tp.td_switch_to_tiktok_tab() self.tp.td_filter_by_creations_tiktok([self.tp.pgc]) self.tp.change_param_in_url_new(self.tp.tr_det_tc, self.tp.ugc) self.tp.td_tiktok_verify_content_type(self.tp.TIKTOK_USER_GENERATED) self.tp.change_param_in_url_new(self.tp.tr_det_tc, "$%#") self.tp.is_tab_selected("track-performance-streams") assert_that(default_url).is_equal_to(self.tp.get_url()) # tr_det_country self.tp.td_switch_to_tiktok_tab() self.tp.market_dd_choose_few_countries([self.tp.all_markets], "td_tiktok") self.tp.change_param_in_url_new(self.tp.tr_det_country, AppConfig.get("market")["australia"]["market"]) market_td_tiktok_ui = self.tp.graph_get_selected_market("td_tiktok") assert_that(market_td_tiktok_ui).is_equal_to(AppConfig.get("market")["australia"]["name"]) self.tp.change_param_in_url_new(self.tp.tr_det_country, "unkn") self.tp.is_tab_selected("track-performance-streams") assert_that(default_url).is_equal_to(self.tp.get_url()) # tr_det_region self.tp.td_switch_to_tiktok_tab() self.tp.stream_and_source_choose_region("Oceania", "td_tiktok") self.tp.change_param_in_url_new(self.tp.tr_det_region, "reu") market_td_tiktok_ui = self.tp.graph_get_selected_market("td_tiktok") assert_that(market_td_tiktok_ui).is_equal_to("Europe") self.tp.change_param_in_url_new(self.tp.tr_det_country, "new") self.tp.is_tab_selected("track-performance-streams") assert_that(default_url).is_equal_to(self.tp.get_url())