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 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-6661") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6432] Track. By Markets. TikTok Deep Linking") @allure.description("""TC verifies that user can share the link with selected TikTok DSP on Track Page → 'KPI by Markets' tab""") def test_tiktok_tp_kpi_by_markets_dl(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")["global"]["url"]) # step 1 self.tp.switch_to_streams_by_markets_tab() self.tp.select_dsp(AppConfig.get("dsp")["tiktok"]) self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.verify_params_in_url({self.tp.str_gr_dsp: 7}) # step 2 self.tp.tp_select_type_tiktok(self.tp.TIKTOK_BY_VIEWS) self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.verify_params_in_url({self.tp.str_gr_tt: "video_views"}) # step 3 self.tp.tp_select_type_tiktok(self.tp.TIKTOK_BY_CREATIONS) self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.verify_params_in_url({self.tp.str_gr_tt: "creations"}) # step 4 self.tp.choose_graph_view_bar_chart() self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.verify_params_in_url({self.tp.str_gr_dsp: 7, self.tp.str_gr_tt: "creations", self.tp.str_gr_view: 4}) # step 5 self.tp.tp_select_type_tiktok(self.tp.TIKTOK_BY_VIEWS) self.tp.is_graph_period_displayed() self.tp.refresh() self.tp.verify_params_in_url({self.tp.str_gr_dsp: 7, self.tp.str_gr_tt: "video_views", self.tp.str_gr_view: 4}) # step 6 self.tp.go_back() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_CREATIONS) self.tp.go_back() self.tp.verify_graph_view_chosen("Line Graph") self.tp.go_back() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_VIEWS) self.tp.go_back() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_CREATIONS) self.tp.verify_graph_view_chosen("Line Graph") dsp_ui = self.tp.get_current_dsp() assert_that(dsp_ui).is_equal_to(AppConfig.get("dsp")["tiktok"]) self.tp.go_back() dsp_ui = self.tp.get_current_dsp() assert_that(dsp_ui).is_equal_to(AppConfig.get("dsp")["spotify"]) # step 7 self.tp.go_forward() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_CREATIONS) self.tp.verify_graph_view_chosen("Line Graph") dsp_ui = self.tp.get_current_dsp() assert_that(dsp_ui).is_equal_to(AppConfig.get("dsp")["tiktok"]) self.tp.go_forward() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_VIEWS) self.tp.go_forward() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_CREATIONS) self.tp.go_forward() self.tp.verify_graph_view_chosen("Bar Chart") self.tp.go_forward() self.tp.graph_tiktok_verify_content_type(self.tp.TIKTOK_BY_VIEWS)