import logging import unittest import allure import pytest from parameterized import parameterized from ui_automation_framework.core import TestStatus from ui_automation_framework.utils import AppConfig from ui_automation_framework.utils import logger as cl from app.api_client import ApiClient 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): log = cl.Logger(logging.DEBUG) @pytest.fixture(autouse=True) def classSetup(self): self.loginPage = LoginPage(self.driver) self.track_page = TrackPage(self.driver) self.api_client = ApiClient() self.ts = TestStatus(self.driver) @parameterized.expand( [ ("All Markets", "all_markets", "By Creations", "Line Graph"), ("Sony Offices", "sony_markets", "By Creations", "Line Graph"), ("Europe", "europe", "By Creations", "Line Graph"), ("Ex–US Only", "ex_us", "By Creations", "Line Graph"), (["United States", "Australia"], ["us", "au"], "By Creations", "Line Graph"), ("All Markets", "all_markets", "By Creations", "Bar Chart"), ("Sony Offices", "sony_markets", "By Creations", "Bar Chart"), ("Europe", "europe", "By Creations", "Bar Chart"), ("Ex–US Only", "ex_us", "By Creations", "Bar Chart"), (["United States", "Australia"], ["us", "au"], "By Creations", "Bar Chart"), ("All Markets", "all_markets", "By Views", "Line Graph"), ("Sony Offices", "sony_markets", "By Views", "Line Graph"), ("Europe", "europe", "By Views", "Line Graph"), ("Ex–US Only", "ex_us", "By Views", "Line Graph"), (["United States", "Australia"], ["us", "au"], "By Views", "Line Graph"), ("All Markets", "all_markets", "By Views", "Bar Chart"), ("Sony Offices", "sony_markets", "By Views", "Bar Chart"), ("Europe", "europe", "By Views", "Bar Chart"), ("Ex–US Only", "ex_us", "By Views", "Bar Chart"), (["United States", "Australia"], ["us", "au"], "By Views", "Bar Chart"), ] ) @allure.story("AP-6660") @allure.severity(allure.severity_level.NORMAL) @allure.title("[AP-6432] Track. By Markets. TikTok Export") @allure.description("TC verifies that user can export data from TikTok DSP on Track Page → 'KPI by Markets' tab") def test_tiktok_export(self, predefined_list, markets_api, tt_type, graph_view): self.loginPage.login_with_worker() self.track_page.select_market(AppConfig.get("market")["us"]["name"]) self.track_page.open_spotify_track_page(AppConfig.get("track49")["id"]) self.track_page.switch_to_streams_by_markets_tab() self.track_page.select_dsp(AppConfig.get("dsp")["tiktok"]) self.track_page.tp_select_type_tiktok(tt_type) if tt_type == "By Views": self.track_page.calendar_select_date_range(["May 22 2021", "May 27 2021"]) self.track_page.select_graph_view(graph_view) if predefined_list == self.track_page.all_markets: self.track_page.market_dd_choose_few_countries([predefined_list], "tp_sbm") self.track_page.by_markets_tiktok_export_verification(tt_type="By Creations", isrc=AppConfig.get("track49")["isrc"], markets_api=AppConfig.get("market")[markets_api]) elif predefined_list == ["United States", "Australia"]: self.track_page.market_dd_choose_few_countries(predefined_list, "tp_sbm") self.track_page.by_markets_tiktok_export_verification(tt_type="By Creations", isrc=AppConfig.get("track49")["isrc"], markets_api=markets_api) elif predefined_list == self.track_page.sony_offices: self.track_page.stream_and_source_choose_region(predefined_list, "tp_sbm") self.track_page.by_markets_tiktok_export_verification(tt_type="By Creations", isrc=AppConfig.get("track49")["isrc"], markets_api=AppConfig.get("market")[markets_api]) else: self.track_page.stream_and_source_choose_region(predefined_list, "tp_sbm") self.track_page.by_markets_tiktok_export_verification(tt_type="By Creations", isrc=AppConfig.get("track49")["isrc"], markets_api=AppConfig.get("regions")[markets_api]["api"]) # STEP 1 is NOT automated